78% wp-event-manager

Code Review | WP Event Manager – Events Calendar, Registrations, Sell Tickets with WooCommerce

WordPress plugin WP Event Manager – Events Calendar, Registrations, Sell Tickets with WooCommerce scored78%from 54 tests.

About plugin

  • Plugin page: wp-event-manager
  • Plugin version: 3.1.39
  • PHP compatiblity: 5.6+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.4.1-6.3.1
  • WordPress version: 6.3.1
  • First release: Mar 4, 2017
  • Latest release: Nov 6, 2023
  • Number of updates: 267
  • Update frequency: every 9.1 days
  • Top authors: ashokdudhat (52.81%)hiteshmakvana (28.46%)tamannaahuja27 (9.36%)kikanirita (8.61%)krinay (1.5%)

Code review

54 tests

User reviews

260 reviews

Install metrics

20,000+ active /548,590 total downloads

Benchmarks

Plugin footprint 82% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
The plugin installed successfully, without throwing any errors or notices

Server metrics [RAM: ▲2.40MB] [CPU: ▲12.63ms] 75% from 4 tests

A check of server-side resources used by WP Event Manager – Events Calendar, Registrations, Sell Tickets with WooCommerce
Please take the time to fix the following items
  • CPU: You should keep total CPU usage under 500.00ms (currently 2,110.65ms on /wp-admin/edit.php?post_type=event_listing&page=event-manager-addons)
PageMemory (MB)CPU Time (ms)
Home /5.29 ▲1.8348.48 ▲8.20
Dashboard /wp-admin5.91 ▲2.5668.89 ▲9.05
Posts /wp-admin/edit.php5.97 ▲2.6162.11 ▲13.94
Add New Post /wp-admin/post-new.php8.93 ▲3.04114.25 ▲19.33
Media Library /wp-admin/upload.php5.85 ▲2.6259.50 ▲29.91
Add-ons /wp-admin/edit.php?post_type=event_listing&page=event-manager-addons6.282,110.65
Settings /wp-admin/edit.php?post_type=event_listing&page=event-manager-settings5.8357.01
Shortcodes /wp-admin/edit.php?post_type=event_listing&page=event-manager-shortcodes5.7547.54
Setup /wp-admin/index.php?page=event-manager-setup5.7546.14
Field Editor /wp-admin/edit.php?post_type=event_listing&page=event-manager-form-editor6.5582.36
Add New /wp-admin/post-new.php?post_type=event_listing9.21135.31
All Events /wp-admin/edit.php?post_type=event_listing5.9864.43

Server storage [IO: ▲11.45MB] [DB: ▲0.06MB] Passed 3 tests

Input-output and database impact of this plugin
No storage issues were detected
Filesystem: 337 new files
Database: no new tables, 60 new options
New WordPress options
event_manager_view_date_format
event_manager_hide_expired_content
event_manager_enable_event_ticket_prices
event_manager_hide_cancelled_events
event_manager_timepicker_format
event_manager_date_time_format_separator
event_manager_enable_event_types
event_manager_enable_default_category_multiselect
event_manager_per_page
event_manager_submission_expire_options
...

Browser metrics Passed 4 tests

Checking browser requirements for WP Event Manager – Events Calendar, Registrations, Sell Tickets with WooCommerce
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,995 ▲22313.57 ▼0.789.67 ▲7.5439.33 ▼4.25
Dashboard /wp-admin2,273 ▲965.66 ▲0.0589.42 ▼9.6141.06 ▲0.42
Posts /wp-admin/edit.php2,178 ▲782.05 ▲0.1037.76 ▼0.0435.43 ▲2.68
Add New Post /wp-admin/post-new.php1,589 ▲6323.39 ▲0.28696.91 ▲63.8850.00 ▼0.61
Media Library /wp-admin/upload.php1,475 ▲724.22 ▲0.01103.12 ▲3.8042.91 ▼0.51
Add-ons /wp-admin/edit.php?post_type=event_listing&page=event-manager-addons2,7361.3230.2360.22
Settings /wp-admin/edit.php?post_type=event_listing&page=event-manager-settings1,9641.9332.7340.85
Shortcodes /wp-admin/edit.php?post_type=event_listing&page=event-manager-shortcodes1,0641.8322.8032.93
Setup /wp-admin/index.php?page=event-manager-setup9091.7325.3639.38
Field Editor /wp-admin/edit.php?post_type=event_listing&page=event-manager-form-editor8,1724.36117.3684.33
Add New /wp-admin/post-new.php?post_type=event_listing3,38316.981,223.2262.12
All Events /wp-admin/edit.php?post_type=event_listing1,5472.3040.3537.17

Uninstaller [IO: ▲0.00MB] [DB: ▲0.05MB] 75% from 4 tests

🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
The following items require your attention
  • The uninstall procedure has failed, leaving 15 options in the database
    • widget_theysaidso_widget
    • wpem_email_from_address
    • widget_widget_upcoming_events
    • widget_widget_featured_events
    • widget_recent-comments
    • widget_recent-posts
    • event_manager_enable_event_ticket_prices_filter
    • can_compress_scripts
    • db_upgraded
    • event_listing_category_children
    • ...

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
The smoke test was a success, however most plugin functionality was not tested

SRP 0% from 2 tests

🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please take a closer look at the following
  • 2× PHP files output text when accessed directly:
    • > /wp-content/plugins/wp-event-manager/external/visual-composer/index.php
    • > /wp-content/plugins/wp-event-manager/templates/event-listings-end.php
  • 101× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/wp-event-manager/admin/wp-event-manager-field-editor.php:11
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/wp-event-manager/external/wpml.php:14
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/wp-event-manager/external/jetpack.php:20
    • > PHP Notice
      Undefined variable: field in wp-content/plugins/wp-event-manager/templates/form-fields/radio-field.php on line 17
    • > PHP Notice
      Undefined variable: key in wp-content/plugins/wp-event-manager/templates/form-fields/term-select-field.php on line 15
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_post() in wp-content/plugins/wp-event-manager/templates/venue/content-single-event_venue.php:1
    • > PHP Fatal error
      Uncaught Error: Call to undefined function __() in wp-content/plugins/wp-event-manager/templates/event-dashboard.php:11
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/wp-event-manager/templates/form-fields/repeated-field.php:64
    • > PHP Notice
      Undefined variable: value in wp-content/plugins/wp-event-manager/templates/form-fields/uploaded-file-html.php on line 3
    • > PHP Fatal error
      Uncaught Error: Call to undefined function _e() in wp-content/plugins/wp-event-manager/templates/event-registration-url.php:2

User-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine, but this is not an exhaustive test

Optimizations

Plugin configuration 97% from 29 tests

readme.txt 94% from 16 tests

The readme.txt file uses markdown syntax to describe your plugin to the world
Attributes that need to be fixed:
  • Screenshots: Add descriptions for screenshots #15, #16, #17, #18, #19, #20, #21, #22, #23 in wp-event-manager/assets to your readme.txt
The official readme.txt is a good inspiration

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

The entry point to "WP Event Manager – Events Calendar, Registrations, Sell Tickets with WooCommerce" version 3.1.39 is a PHP file that has certain tags in its header comment area
133 characters long description:
Lightweight, scalable and full-featured event listings & management plugin for managing event listings from the Frontend and Backend.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is an overview of file extensions present in this plugin and a short test that no dangerous files are bundled with this plugin
No dangerous file extensions were detected96,911 lines of code in 266 files:
LanguageFilesBlank linesComment linesLines of code
PO File3526,45136,21656,516
PHP1322,6185,75419,656
JavaScript524,5301,2399,661
CSS21179949,406
SVG13191,004
Sass2275262
LESS1115152
JSON800143
XML170103
Ruby1208

PHP code Passed 2 tests

Analyzing logical lines of code, cyclomatic complexity, and other code metrics
There were no cyclomatic complexity issued detected
Cyclomatic complexity
Average complexity per logical line of code0.46
Average class complexity34.69
▷ Minimum class complexity1.00
▷ Maximum class complexity283.00
Average method complexity4.62
▷ Minimum method complexity1.00
▷ Maximum method complexity69.00
Code structure
Namespaces7
Interfaces0
Traits0
Classes59
▷ Abstract classes11.69%
▷ Concrete classes5898.31%
▷ Final classes00.00%
Methods549
▷ Static methods9116.58%
▷ Public methods42577.41%
▷ Protected methods9717.67%
▷ Private methods274.92%
Functions188
▷ Named functions18598.40%
▷ Anonymous functions31.60%
Constants16
▷ Global constants1381.25%
▷ Class constants318.75%
▷ Public constants3100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Using a strong compression for your PNG files is a great way to speed-up your plugin
16 PNG files occupy 0.42MB with 0.16MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
assets/js/jquery-ui/images/ui-icons_555555_256x240.png6.82KB4.17KB▼ 38.82%
assets/js/jquery-ui/images/ui-icons_444444_256x240.png6.83KB4.17KB▼ 38.86%
assets/images/chosen-sprite@2x.png0.85KB0.83KB▼ 3.10%
external/visual-composer/eventDashboard/eventDashboard/public/event-dashboard-preview.png49.87KB12.77KB▼ 74.38%
assets/js/jquery-ui/images/ui-icons_ffffff_256x240.png6.15KB4.17KB▼ 32.13%