67% wp-webinarsystem

Code Review | Wordpress Webinar Plugin - WebinarPress

WordPress plugin Wordpress Webinar Plugin - WebinarPress scored67%from 54 tests.

About plugin

  • Plugin page: wp-webinarsystem
  • Plugin version: 1.33.8
  • PHP compatiblity: 5.6+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.4.2-6.2.2
  • WordPress version: 6.3.1
  • First release: Aug 13, 2015
  • Latest release: Oct 5, 2023
  • Number of updates: 169
  • Update frequency: every 17.8 days
  • Top authors: Lucyproductionz (50.3%)WPWebinarSystem (26.63%)webinarpress (21.89%)ceylonsystems (2.96%)

Code review

54 tests

User reviews

35 reviews

Install metrics

1,000+ active /132,539 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
The plugin installed successfully, without throwing any errors or notices

Server metrics [RAM: ▲3.49MB] [CPU: ▲23.04ms] Passed 4 tests

This is a short check of server-side resources used by Wordpress Webinar Plugin - WebinarPress
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /6.94 ▲3.4759.39 ▲18.67
Dashboard /wp-admin6.81 ▲3.5070.23 ▲15.48
Posts /wp-admin/edit.php6.93 ▲3.5780.12 ▲32.14
Add New Post /wp-admin/post-new.php9.39 ▲3.50120.35 ▲26.23
Media Library /wp-admin/upload.php6.73 ▲3.5066.90 ▲31.76
Questions /wp-admin/admin.php?page=wswbn-questions6.7460.15
Upgrade to PRO /wp-admin/admin.php?page=wswbn-upgrade6.7464.28
Webinars /wp-admin/admin.php?page=wswbn-webinars6.7461.17
Settings /wp-admin/admin.php?page=wswbn-settings6.7764.32
Attendees /wp-admin/admin.php?page=wswbn-attendees6.7455.76
New Webinar /wp-admin/admin.php?page=wswbn-webinar-editor6.7761.13

Server storage [IO: ▲19.66MB] [DB: ▲0.02MB] Passed 3 tests

Analyzing filesystem and database footprints of this plugin
There were no storage issued detected upon installing this plugin
Filesystem: 316 new files
Database: 8 new tables, 22 new options
New tables
wp_wswebinars_email_queue
wp_wswebinars_chats
wp_wswebinars_unsubscribe
wp_wswebinars_questions
wp_wswebinars_polls
wp_wswebinars_subscribers
wp_wswebinars_poll_votes
wp_wswebinars_notifications
New WordPress options
_wswebinar_webinarsettings_wpws_webinar_moderator
can_compress_scripts
widget_theysaidso_widget
_wswebinar_unsubscribe
_wswebnar_db_version
widget_recent-posts
theysaidso_admin_options
db_upgraded
_wswebinar_managesubscribers_wpws_webinar_moderator
_wswebinar_managechatlogs_wpws_webinar_moderator
...

Browser metrics Passed 4 tests

Checking browser requirements for Wordpress Webinar Plugin - WebinarPress
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,886 ▲14014.29 ▼0.1016.97 ▲15.1242.89 ▲1.20
Dashboard /wp-admin2,259 ▲714.82 ▼0.05110.46 ▲9.2844.97 ▼1.00
Posts /wp-admin/edit.php2,142 ▲532.00 ▲0.0140.89 ▲0.3137.90 ▲4.33
Add New Post /wp-admin/post-new.php1,568 ▲3518.04 ▼0.45650.72 ▼29.6165.48 ▼6.38
Media Library /wp-admin/upload.php1,444 ▲534.22 ▼0.0196.42 ▼8.0645.36 ▼1.75
Questions /wp-admin/admin.php?page=wswbn-questions1,57112.46344.7382.21
Upgrade to PRO /wp-admin/admin.php?page=wswbn-upgrade1,39110.79297.6570.39
Webinars /wp-admin/admin.php?page=wswbn-webinars1,77911.74129.5350.18
Settings /wp-admin/admin.php?page=wswbn-settings1,22810.32147.1556.27
Attendees /wp-admin/admin.php?page=wswbn-attendees1,1749.21122.3861.60
New Webinar /wp-admin/admin.php?page=wswbn-webinar-editor1,80119.31203.8168.83

Uninstaller [IO: ▲0.00MB] [DB: ▲0.02MB] 50% from 4 tests

🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
These items require your attention
  • Zombie tables were found after uninstall: 8 tables
    • wp_wswebinars_unsubscribe
    • wp_wswebinars_chats
    • wp_wswebinars_poll_votes
    • wp_wswebinars_subscribers
    • wp_wswebinars_email_queue
    • wp_wswebinars_polls
    • wp_wswebinars_questions
    • wp_wswebinars_notifications
  • This plugin did not uninstall successfully, leaving 22 options in the database
    • _wswebinar_settings
    • widget_webinarsysteemupcomingwebinars
    • can_compress_scripts
    • _wswebinar_has_run_once
    • _wswebnar_db_version
    • _wswebinar_unsubscribe
    • _wswebinar_overview
    • widget_webinarsysteempastwebinars
    • _wswebinar-has-shown-drip-pointer
    • theysaidso_admin_options
    • ...

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
Good news, no errors were detected

SRP 0% from 2 tests

🔹 Tests weight: 20 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
Please fix the following items
  • 3× PHP files output non-empty strings when accessed directly via GET requests:
    • > /wp-content/plugins/wp-webinarsystem/includes/templates/template-email-layout.php
    • > /wp-content/plugins/wp-webinarsystem/tests/bootstrap.php
    • > /wp-content/plugins/wp-webinarsystem/includes/templates/template-email-cta.php
  • 76× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'WebinarSysteem' not found in wp-content/plugins/wp-webinarsystem/includes/class-webinarsysteem-js.php:3
    • > PHP Fatal error
      Uncaught Error: Class 'WebinarSysteem' not found in wp-content/plugins/wp-webinarsystem/includes/class-webinarsysteem-questions.php:3
    • > PHP Fatal error
      Uncaught Error: Class 'calderawp\\convertKit\\base' not found in wp-content/plugins/wp-webinarsystem/includes/libs/ConvertKit/forms.php:15
    • > PHP Notice
      Undefined property: stdClass::$include_unsubscribe_link in wp-content/plugins/wp-webinarsystem/includes/templates/template-email-layout.php on line 138
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/wp-webinarsystem/includes/class-woocommerce-custom-webinar-product.php:20
    • > PHP Fatal error
      Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/wp-webinarsystem/includes/widgets/class-webinarsysteem-upcoming-widget.php:3
    • > PHP Fatal error
      Uncaught Error: Class 'WSAWeberResponse' not found in wp-content/plugins/wp-webinarsystem/includes/libs/aweber_api/aweber_entry.php:3
    • > PHP Fatal error
      Uncaught Error: Class 'WebinarSysteemAttendees' not found in wp-content/plugins/wp-webinarsystem/includes/templates/webinar-live-wpwsjs.php:6
    • > PHP Fatal error
      Uncaught Error: Class 'EM_Base' not found in wp-content/plugins/wp-webinarsystem/includes/libs/enormail/account.php:9
    • > PHP Fatal error
      Uncaught Error: Class 'WPWS_ActiveCampaign' not found in wp-content/plugins/wp-webinarsystem/includes/libs/activecampaign/Message.classWPWS.php:5

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Everything seems fine, but this is not an exhaustive test

Optimizations

Plugin configuration 86% from 29 tests

readme.txt 94% from 16 tests

The readme.txt file uses markdown syntax to describe your plugin to the world
These attributes need your attention:
  • Tags: There are too many tags (13 tag instead of maximum 10)
You can look at the official readme.txt

wp-webinarsystem/wpwebinarsystem.php 77% from 13 tests

"Wordpress Webinar Plugin - WebinarPress" version 1.33.8's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
It is important to fix the following:
  • Main file name: The principal plugin file should be the same as the plugin slug ("wp-webinarsystem.php" instead of "wpwebinarsystem.php")
  • Domain Path: The domain path should use only dashes and lowercase characters ("./localization/")
  • Text Domain: The text domain follows the same naming rules as the plugin slug: lowercase characters and dashes

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
No dangerous file extensions were detected84,414 lines of code in 214 files:
LanguageFilesBlank linesComment linesLines of code
PO File2816,78827,71937,874
PHP1254,3062,69118,048
JavaScript254,9317,80417,750
CSS224951309,751
SVG1410991

PHP code Passed 2 tests

This is a very shot review of cyclomatic complexity and code structure
This plugin has no cyclomatic complexity issues
Cyclomatic complexity
Average complexity per logical line of code0.30
Average class complexity15.49
▷ Minimum class complexity1.00
▷ Maximum class complexity317.00
Average method complexity2.21
▷ Minimum method complexity1.00
▷ Maximum method complexity41.00
Code structure
Namespaces2
Interfaces4
Traits0
Classes114
▷ Abstract classes21.75%
▷ Concrete classes11298.25%
▷ Final classes00.00%
Methods1,420
▷ Static methods41229.01%
▷ Public methods1,31692.68%
▷ Protected methods433.03%
▷ Private methods614.30%
Functions36
▷ Named functions822.22%
▷ Anonymous functions2877.78%
Constants25
▷ Global constants1976.00%
▷ Class constants624.00%
▷ Public constants6100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
34 PNG files occupy 0.32MB with 0.24MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
includes/images/ui/gp.png21.19KB1.77KB▼ 91.63%
includes/libs/mediaelement/bigplay.fw.png77.56KB6.59KB▼ 91.51%
includes/images/ui/ui-bg_glass_95_fef1ec_1x400.png0.32KB0.15KB▼ 54.82%
includes/images/email_verf_error.PNG3.71KB1.05KB▼ 71.59%
includes/images/ui/ui-bg_flat_0_aaaaaa_40x100.png0.21KB0.08KB▼ 58.96%