87% sermone-online-sermons-management

Code Review | Sermon'e - Sermons Online

WordPress plugin Sermon'e - Sermons Online scored 87% from 54 tests.

About plugin

  • Plugin page: sermone-online-se...
  • Plugin version: 1.0.0
  • PHP compatiblity: 7.2+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.1-5.7
  • WordPress version: 5.9.2
  • First release: Apr 28, 2021
  • Latest release: Apr 28, 2021
  • Number of updates: 2
  • Update frequency: every 1.0 days
  • Top authors: bearsthemes (100%)

Code review

54 tests

User reviews

1 review

Install metrics

1,000+ active / 1,953 total downloads

Benchmarks

Plugin footprint Passed 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
Install script ran successfully

Server metrics [RAM: ▲2.19MB] [CPU: ▼310.13ms] Passed 4 tests

An overview of server-side resources used by Sermon'e - Sermons Online
This plugin has minimal impact on server resources
PageMemory (MB)CPU Time (ms)
Home /5.72 ▲2.2070.64 ▲20.01
Dashboard /wp-admin5.65 ▲2.2455.32 ▲20.59
Posts /wp-admin/edit.php5.87 ▲2.2358.78 ▲20.30
Add New Post /wp-admin/post-new.php9.11 ▲2.14108.05 ▼1,281.73
Media Library /wp-admin/upload.php5.51 ▲2.2034.77 ▲0.89
Preachers /wp-admin/edit-tags.php?taxonomy=sermone_preacher&post_type=sermone5.5549.01
Add New /wp-admin/post-new.php?post_type=sermone5.8969.54
All Sermon /wp-admin/edit.php?post_type=sermone5.6462.03
Books /wp-admin/edit-tags.php?taxonomy=sermone_books&post_type=sermone5.5448.76
Topics /wp-admin/edit-tags.php?taxonomy=sermone_topics&post_type=sermone5.5440.13
Series /wp-admin/edit-tags.php?taxonomy=sermone_series&post_type=sermone5.5440.06
Settings /wp-admin/edit.php?post_type=sermone&page=sermone-settings-panel5.5445.08

Server storage [IO: ▲9.10MB] [DB: ▲0.00MB] Passed 3 tests

Filesystem and database footprint
No storage issues were detected
Filesystem: 518 new files
Database: no new tables, no new options

Browser metrics Passed 4 tests

This is an overview of browser requirements for Sermon'e - Sermons Online
Normal browser usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /4,383 ▲62921.36 ▲5.7718.26 ▲11.852.24 ▼0.37
Dashboard /wp-admin3,313 ▲45210.53 ▲4.22198.90 ▲64.70154.86 ▼2.97
Posts /wp-admin/edit.php3,174 ▲4837.78 ▲4.53107.12 ▲43.02138.80 ▼6.03
Add New Post /wp-admin/post-new.php1,844 ▲8424.21 ▲7.25424.84 ▼14.69184.33 ▲5.35
Media Library /wp-admin/upload.php1,919 ▲2217.88 ▲2.42154.20 ▲11.06208.95 ▼47.17
Preachers /wp-admin/edit-tags.php?taxonomy=sermone_preacher&post_type=sermone2,2197.87129.91127.43
Add New /wp-admin/post-new.php?post_type=sermone4,45614.56302.20249.19
All Sermon /wp-admin/edit.php?post_type=sermone1,8857.65108.02115.00
Books /wp-admin/edit-tags.php?taxonomy=sermone_books&post_type=sermone2,1077.48104.83115.26
Topics /wp-admin/edit-tags.php?taxonomy=sermone_topics&post_type=sermone2,1077.46106.80109.77
Series /wp-admin/edit-tags.php?taxonomy=sermone_series&post_type=sermone2,1097.53106.47110.26
Settings /wp-admin/edit.php?post_type=sermone&page=sermone-settings-panel1,7628.15136.37157.39

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] Passed 4 tests

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
The plugin uninstalled successfully, without leaving any zombie files or tables

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
Everything seems fine, however this is by no means an exhaustive test

SRP 0% from 2 tests

🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please take a closer look at the following
  • 6× PHP files output text when accessed directly:
    • > /wp-content/plugins/sermone-online-sermons-management/vendor/htmlburger/carbon-fields/templates/Exception/incorrect-syntax.php
    • > /wp-content/plugins/sermone-online-sermons-management/templates/quickview-modal.php
    • > /wp-content/plugins/sermone-online-sermons-management/templates/list-preacher.php
    • > /wp-content/plugins/sermone-online-sermons-management/templates/form-fields/text.php
    • > /wp-content/plugins/sermone-online-sermons-management/templates/form-fields/select.php
    • > /wp-content/plugins/sermone-online-sermons-management/templates/media-nav.php
  • 149× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Call to undefined function do_action() in wp-content/plugins/sermone-online-sermons-management/templates/share.php:12
    • > PHP Fatal error
      Uncaught Error: Class 'Carbon_Fields\\Service\\Service' not found in wp-content/plugins/sermone-online-sermons-management/vendor/htmlburger/carbon-fields/core/Service/Legacy_Storage_Service_v_1_5.php:15
    • > PHP Fatal error
      Uncaught Error: Class 'Carbon_Fields\\Datastore\\Post_Meta_Datastore' not found in wp-content/plugins/sermone-online-sermons-management/vendor/htmlburger/carbon-fields/core/Datastore/Nav_Menu_Item_Datastore.php:7
    • > PHP Warning
      Invalid argument supplied for foreach() in wp-content/plugins/sermone-online-sermons-management/vendor/htmlburger/carbon-fields/templates/Exception/incorrect-syntax.php on line 35
    • > PHP Fatal error
      Uncaught Error: Interface 'Carbon_Fields\\Datastore\\Datastore_Interface' not found in wp-content/plugins/sermone-online-sermons-management/vendor/htmlburger/carbon-fields/core/Datastore/Datastore.php:12
    • > PHP Fatal error
      Uncaught Error: Class 'Carbon_Fields\\Datastore\\Key_Value_Datastore' not found in wp-content/plugins/sermone-online-sermons-management/vendor/htmlburger/carbon-fields/core/Datastore/Theme_Options_Datastore.php:10
    • > PHP Fatal error
      Uncaught Error: Using $this when not in object context in wp-content/plugins/sermone-online-sermons-management/vendor/htmlburger/carbon-fields/templates/Container/user_meta.php:1
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_header() in wp-content/plugins/sermone-online-sermons-management/templates/archive.php:9
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/sermone-online-sermons-management/inc/hooks.php:19
    • > PHP Fatal error
      Uncaught Error: Class 'Carbon_Fields\\Field\\Field' not found in wp-content/plugins/sermone-online-sermons-management/vendor/htmlburger/carbon-fields/core/Field/Separator_Field.php:9

User-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
There were no browser issues found

Optimizations

Plugin configuration 86% from 29 tests

readme.txt 94% from 16 tests

The readme.txt file is an important file in your plugin as it is parsed by WordPress.org to prepare the public listing of your plugin
Please fix the following attributes:
  • Contributors: The plugin contributors field is not present
The official readme.txt is a good inspiration

sermone-online-sermons-management/sermone.php 77% from 13 tests

The entry point to "Sermon'e - Sermons Online" version 1.0.0 is a PHP file that has certain tags in its header comment area
Please take the time to fix the following:
  • Main file name: The principal plugin file should be the same as the plugin slug ("sermone-online-sermons-management.php" instead of "sermone.php")
  • Description: The description should be shorter than 140 characters (currently 162 characters long)
  • Text Domain: You no longer need to specify the text domain since WordPress 4.6; it must be the same as the plugin slug

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
Success! There were no dangerous files found in this plugin33,571 lines of code in 455 files:
LanguageFilesBlank linesComment linesLines of code
JavaScript1805,2788,54013,284
PHP1682,7297,15810,205
JSON6003,408
Sass5751232,548
PO File268191,0202,202
CSS83251,1431,662
SVG722194
Markdown324068

PHP code Passed 2 tests

This plugin's cyclomatic complexity and code structure detailed below
There are no cyclomatic complexity problems detected for this plugin
Cyclomatic complexity
Average complexity per logical line of code0.28
Average class complexity8.32
▷ Minimum class complexity1.00
▷ Maximum class complexity50.00
Average method complexity2.04
▷ Minimum method complexity1.00
▷ Maximum method complexity18.00
Code structure
Namespaces22
Interfaces5
Traits0
Classes121
▷ Abstract classes119.09%
▷ Concrete classes11090.91%
▷ Final classes10.91%
Methods898
▷ Static methods9010.02%
▷ Public methods72981.18%
▷ Protected methods16518.37%
▷ Private methods40.45%
Functions184
▷ Named functions9250.00%
▷ Anonymous functions9250.00%
Constants31
▷ Global constants825.81%
▷ Class constants2374.19%
▷ Public constants23100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
There were not PNG files found in your plugin