68% explara-events

Code Review | Explara Events

WordPress plugin Explara Events scored 68% from 54 tests.

About plugin

  • Plugin page: explara-events
  • Plugin version: 0.1.3
  • PHP version: 7.4.16
  • WordPress compatibility: 4.6-5.3
  • WordPress version: 6.3.1
  • First release: Oct 31, 2017
  • Latest release: Dec 5, 2019
  • Number of updates: 27
  • Update frequency: every 28.5 days
  • Top authors: explara2017 (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active / 1,131 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

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

Server metrics [RAM: ▲0.10MB] [CPU: ▼3.08ms] Passed 4 tests

This is a short check of server-side resources used by Explara Events
Normal server usage
PageMemory (MB)CPU Time (ms)
Home /3.57 ▲0.1140.34 ▲0.18
Dashboard /wp-admin3.41 ▲0.1050.59 ▼0.56
Posts /wp-admin/edit.php3.53 ▲0.1753.74 ▲3.76
Add New Post /wp-admin/post-new.php5.97 ▲0.0891.65 ▼15.70
Media Library /wp-admin/upload.php3.31 ▲0.0837.70 ▲5.13
Events /wp-admin/admin.php?page=explara-events3.3338.02
Settings /wp-admin/admin.php?page=explara-events-settings3.3638.04

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

How much does this plugin use your filesystem and database?
This plugin was installed successfully
Filesystem: 89 new files
Database: 2 new tables, 11 new options
New tables
wp_explara_events
wp_explara_members
New WordPress options
explara_events_page
explara_member_payment_page
widget_recent-posts
explara_events_version
widget_theysaidso_widget
explara_member_account_page
theysaidso_admin_options
can_compress_scripts
widget_recent-comments
db_upgraded
...

Browser metrics Passed 4 tests

Checking browser requirements for Explara Events
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,135 ▲40016.85 ▲2.1115.43 ▲13.6637.04 ▼2.71
Dashboard /wp-admin2,380 ▲1926.54 ▲1.63135.11 ▲19.3241.94 ▼5.37
Posts /wp-admin/edit.php2,283 ▲1943.41 ▲1.4054.93 ▲17.2834.98 ▼2.27
Add New Post /wp-admin/post-new.php1,562 ▲4823.19 ▲5.66587.74 ▼94.0732.93 ▼32.83
Media Library /wp-admin/upload.php1,419 ▲344.18 ▼0.0982.99 ▼18.5945.70 ▼2.89
Events /wp-admin/admin.php?page=explara-events1,2053.0540.7133.92
Settings /wp-admin/admin.php?page=explara-events-settings1,8353.3139.9437.78

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the following
  • The plugin did not uninstall gracefully
    • > Deprecated in wp-content/plugins/explara-events/includes/install/explara-install.php+25
    Non-static method ExplaraEvents_Install::deleteOptionEntries() should not be called statically
  • Zombie WordPress options were found after uninstall: 6 options
    • can_compress_scripts
    • db_upgraded
    • theysaidso_admin_options
    • widget_recent-comments
    • widget_recent-posts
    • widget_theysaidso_widget

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)
Good news, no errors were detected

SRP 0% from 2 tests

🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please fix the following items
  • 14× PHP files perform the task of outputting text when accessed with GET requests (only 10 are shown):
    • > /wp-content/plugins/explara-events/pages/member/account/signup.php
    • > /wp-content/plugins/explara-events/pages/member/portal/orders.php
    • > /wp-content/plugins/explara-events/pages/member/events/includes/checkout-pricing.php
    • > /wp-content/plugins/explara-events/pages/member/events/includes/checkout-category-steps.php
    • > /wp-content/plugins/explara-events/pages/member/portal/bkorders.php
    • > /wp-content/plugins/explara-events/pages/member/events/event-attendee.php
    • > /wp-content/plugins/explara-events/pages/member/portal/substitute.php
    • > /wp-content/plugins/explara-events/pages/member/events/includes/event-conference-checkout-session.php
    • > /wp-content/plugins/explara-events/pages/member/events/event-checkout.php
    • > /wp-content/plugins/explara-events/pages/member/events/includes/checkout-session-steps.php
  • 127× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'explara\\ExplaraMemberApi' not found in wp-content/plugins/explara-events/pages/member/payment/failed.php:3
    • > PHP Notice
      Trying to get property 'start_fmt_date' of non-object in wp-content/plugins/explara-events/pages/member/events/includes/checkout-top.php on line 18
    • > PHP Notice
      Undefined variable: event in wp-content/plugins/explara-events/pages/member/events/includes/checkout-top.php on line 23
    • > PHP Fatal error
      Uncaught Error: Class 'explara\\AdminEvents' not found in wp-content/plugins/explara-events/pages/admin/admin-single-event.php:2
    • > PHP Notice
      Trying to get property 'currency' of non-object in wp-content/plugins/explara-events/pages/member/events/includes/checkout-pricing.php on line 60
    • > PHP Fatal error
      Uncaught Error: Class 'explara\\AdminEvents' not found in wp-content/plugins/explara-events/pages/admin/admin-single-event-bk.php:3
    • > PHP Notice
      Undefined variable: event in wp-content/plugins/explara-events/pages/member/events/includes/checkout-top.php on line 18
    • > PHP Notice
      Trying to get property 'orderNo' of non-object in wp-content/plugins/explara-events/pages/member/portal/substitute.php on line 10
    • > PHP Fatal error
      Uncaught Error: Class 'explara\\ExplaraMemberPost' not found in wp-content/plugins/explara-events/pages/member/events/events-calendar.php:7
    • > PHP Fatal error
      Uncaught Error: Call to undefined function explara\\add_shortcode() in wp-content/plugins/explara-events/includes/member/explara-payment-shortcodes.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 Passed 29 tests

readme.txt Passed 16 tests

The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
4 plugin tags: ticket registration, events, event listing, explara

explara-events/explara-events.php Passed 13 tests

The entry point to "Explara Events" version 0.1.3 is a PHP file that has certain tags in its header comment area
103 characters long description:
Plugin enables user to integrate their website with Explara for events listing & event booking process.

Code Analysis Passed 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
Everything looks great! No dangerous files found in this plugin38,677 lines of code in 80 files:
LanguageFilesBlank linesComment linesLines of code
JavaScript166,6802,54919,389
CSS23,25622010,953
PHP561,081915,080
SVG64373,255

PHP code Passed 2 tests

This plugin's cyclomatic complexity and code structure detailed below
Great job! No cyclomatic complexity issues were detected in this plugin
Cyclomatic complexity
Average complexity per logical line of code0.25
Average class complexity12.11
▷ Minimum class complexity1.00
▷ Maximum class complexity70.00
Average method complexity2.49
▷ Minimum method complexity1.00
▷ Maximum method complexity28.00
Code structure
Namespaces1
Interfaces0
Traits0
Classes19
▷ Abstract classes00.00%
▷ Concrete classes19100.00%
▷ Final classes00.00%
Methods142
▷ Static methods10775.35%
▷ Public methods11681.69%
▷ Protected methods00.00%
▷ Private methods2618.31%
Functions4
▷ Named functions375.00%
▷ Anonymous functions125.00%
Constants6
▷ Global constants6100.00%
▷ Class constants00.00%
▷ Public constants00.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
No PNG files were detected