73% quick-event-manager

Code Review | Quick Event Manager

WordPress plugin Quick Event Manager scored73%from 54 tests.

About plugin

  • Plugin page: quick-event-manager
  • Plugin version: 9.8.7
  • PHP compatiblity: 5.6+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.6-6.4
  • WordPress version: 6.3.1
  • First release: Oct 2, 2012
  • Latest release: Nov 14, 2023
  • Number of updates: 292
  • Update frequency: every 13.9 days
  • Top authors: aerin (56.51%)fullworks (43.15%)alanfuller (1.03%)

Code review

54 tests

User reviews

65 reviews

Install metrics

2,000+ active /237,321 total downloads

Benchmarks

Plugin footprint 64% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
Install script ran successfully

Server metrics [RAM: ▲5.69MB] [CPU: ▲51.96ms] 50% from 4 tests

Analyzing server-side resources used by Quick Event Manager
Please fix the following
  • CPU: Total CPU usage must kept under 500.00ms (currently 3,034.93ms on /wp-admin/options-general.php?page=quick-event-manager)
  • Extra RAM: The extra memory usage must be under 5MB (currently 5.69MB on /wp-admin/edit.php?post_type=event)
PageMemory (MB)CPU Time (ms)
Home /9.02 ▲5.5674.92 ▲36.26
Dashboard /wp-admin9.04 ▲5.69112.91 ▲49.33
Posts /wp-admin/edit.php9.06 ▲5.70126.23 ▲81.34
Add New Post /wp-admin/post-new.php11.70 ▲5.81141.37 ▲44.60
Media Library /wp-admin/upload.php9.04 ▲5.81110.43 ▲77.66
Freemius Debug [v.2.6.0] /wp-admin/admin.php?page=freemius9.1797.42
Premium Reports /wp-admin/edit.php?post_type=event&page=qem-premium-reports9.0496.33
Tags /wp-admin/edit-tags.php?taxonomy=post_tag&post_type=event9.0495.44
Add New /wp-admin/post-new.php?post_type=event9.11115.39
Premium Reports /wp-admin/admin.php?page=qem-premium-reports9.04105.63
Email to Attendees /wp-admin/admin.php?page=qem-email-attendees9.0490.90
Registrations /wp-admin/admin.php?page=qem-registration9.0495.26
Event Manager /wp-admin/options-general.php?page=quick-event-manager9.303,034.93
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=event9.04103.83
Events /wp-admin/edit.php?post_type=event9.0499.23

Server storage [IO: ▲5.60MB] [DB: ▲0.08MB] Passed 3 tests

Input-output and database impact of this plugin
This plugin was installed successfully
Filesystem: 396 new files
Database: no new tables, 14 new options
New WordPress options
db_upgraded
can_compress_scripts
category_children
qem_freemius_state
theysaidso_admin_options
fs_debug_mode
widget_qem_widget
qem_version
fs_active_plugins
widget_qem_calendar_widget
...

Browser metrics Passed 4 tests

Quick Event Manager: an overview of browser usage
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,209 ▲46215.49 ▲1.177.86 ▲6.1228.27 ▼15.13
Dashboard /wp-admin2,476 ▲2996.54 ▲0.90124.42 ▲31.4246.30 ▲5.87
Posts /wp-admin/edit.php2,404 ▲3043.70 ▲1.7459.74 ▲25.0239.54 ▲2.81
Add New Post /wp-admin/post-new.php1,805 ▲27924.93 ▲1.68660.11 ▲42.8637.96 ▼13.22
Media Library /wp-admin/upload.php1,543 ▲1494.51 ▲0.3388.52 ▼9.7344.19 ▲3.49
Freemius Debug [v.2.6.0] /wp-admin/admin.php?page=freemius1,3793.3850.8231.13
Premium Reports /wp-admin/edit.php?post_type=event&page=qem-premium-reports1,1713.3644.7236.57
Tags /wp-admin/edit-tags.php?taxonomy=post_tag&post_type=event1,6253.6943.6735.37
Add New /wp-admin/post-new.php?post_type=event4,0779.21238.03134.10
Premium Reports /wp-admin/admin.php?page=qem-premium-reports1,1683.4247.3033.95
Email to Attendees /wp-admin/admin.php?page=qem-email-attendees1,0963.3743.4527.41
Registrations /wp-admin/admin.php?page=qem-registration1,1553.3747.8225.56
Event Manager /wp-admin/options-general.php?page=quick-event-manager1,2723.4444.1994.77
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=event1,7603.5945.8936.51
Events /wp-admin/edit.php?post_type=event1,5793.7054.0332.46

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

🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
These items require your attention
  • Uninstall procedure validation failed for this plugin
    • > Notice in wp-content/plugins/quick-event-manager/vendor/freemius/wordpress-sdk/includes/class-freemius.php+8546
    Undefined property: stdClass::$plugins
  • This plugin does not fully uninstall, leaving 14 options in the database
    • theysaidso_admin_options
    • qem_freemius_state
    • fs_accounts
    • db_upgraded
    • widget_recent-posts
    • fs_debug_mode
    • can_compress_scripts
    • qem_version
    • category_children
    • widget_theysaidso_widget
    • ...

Smoke tests 75% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
Good news, no errors were detected

SRP 50% 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 take a closer look at the following
  • 55× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'PHPUnit_Framework_TestCase' not found in wp-content/plugins/quick-event-manager/vendor/composer/installers/tests/Composer/Installers/Test/TestCase.php:21
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/quick-event-manager/vendor/composer/installers/src/Composer/Installers/HuradInstaller.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Gamajo_Template_Loader' not found in wp-content/plugins/quick-event-manager/control/class-user-template-loader.php:27
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/quick-event-manager/vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/quick-event-manager/vendor/composer/installers/src/Composer/Installers/CraftInstaller.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/quick-event-manager/vendor/composer/installers/src/Composer/Installers/ElggInstaller.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/quick-event-manager/vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/quick-event-manager/vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/quick-event-manager/vendor/composer/installers/src/Composer/Installers/MakoInstaller.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Composer\\Installers\\BaseInstaller' not found in wp-content/plugins/quick-event-manager/vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php:4

User-side errors Passed 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
There were no browser issues found

Optimizations

Plugin configuration 97% from 29 tests

readme.txt 94% from 16 tests

You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
These attributes need your attention:
  • Screenshots: Add images for these screenshots: #1 (This is an example of an event post.), #2 (This is the list of events.), #3 (This the event editor.), #4 (The styling editor.), #5 (Setting up the calendar.)
Please take inspiration from this readme.txt

quick-event-manager/quick-event-manager.php Passed 13 tests

The main file in "Quick Event Manager" v. 9.8.7 serves as a complement to information provided in readme.txt and as the entry point to the plugin
37 characters long description:
A quick and easy to use Event Manager

Code Analysis 97% from 3 tests

File types Passed 1 test

🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
Good job! No executable or dangerous file extensions detected69,673 lines of code in 297 files:
LanguageFilesBlank linesComment linesLines of code
PHP2179,35418,98345,339
PO File87,80310,86618,871
Sass40549923,299
CSS1818466983
JavaScript10183228879
JSON100212
XML3295090

PHP code 50% from 2 tests

Analyzing cyclomatic complexity and code structure
These items need your attention
  • Cyclomatic complexity of classes should be reduced to less than 1000 (currently 3,096)
Cyclomatic complexity
Average complexity per logical line of code0.59
Average class complexity41.82
▷ Minimum class complexity1.00
▷ Maximum class complexity3,096.00
Average method complexity4.33
▷ Minimum method complexity1.00
▷ Maximum method complexity94.00
Code structure
Namespaces10
Interfaces1
Traits0
Classes113
▷ Abstract classes43.54%
▷ Concrete classes10996.46%
▷ Final classes00.00%
Methods1,431
▷ Static methods22215.51%
▷ Public methods1,00670.30%
▷ Protected methods292.03%
▷ Private methods39627.67%
Functions269
▷ Named functions24791.82%
▷ Anonymous functions228.18%
Constants152
▷ Global constants10569.08%
▷ Class constants4730.92%
▷ Public constants47100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

PNG files should be compressed to save space and minimize bandwidth usage
7 PNG files occupy 0.14MB with 0.10MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
vendor/freemius/wordpress-sdk/assets/img/quick-event-manager.png24.71KB7.07KB▼ 71.40%
vendor/freemius/wordpress-sdk/assets/img/theme-icon.png10.97KB5.78KB▼ 47.37%
legacy/images/image_error.png3.75KB0.71KB▼ 80.94%
legacy/images/no_image.png20.23KB6.33KB▼ 68.69%
legacy/images/icon.png24.71KB7.07KB▼ 71.40%