Benchmarks
Plugin footprint 46% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
Install script ran successfully
Server metrics [RAM: ▲11.25MB] [CPU: ▲230.05ms] 25% from 4 tests
Analyzing server-side resources used by Appointment & Event Booking Calendar Plugin - Webba Booking
Please have a look at the following items
- RAM: You should keep total memory usage under 10MB (currently 14.70MB on /wp-admin/admin.php?page=freemius)
- Extra RAM: The extra memory usage must be under 5MB (currently 11.25MB on /wp-admin/admin.php?page=freemius)
- Extra CPU: Extra CPU usage must be kept under 200.00ms (currently 230.05ms on /wp-admin/admin.php?page=freemius)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 14.59 ▲11.13 | 274.00 ▲234.56 |
Dashboard /wp-admin | 14.59 ▲11.29 | 287.41 ▲240.41 |
Posts /wp-admin/edit.php | 14.65 ▲11.29 | 293.45 ▲248.13 |
Add New Post /wp-admin/post-new.php | 17.17 ▲11.29 | 300.06 ▲199.79 |
Media Library /wp-admin/upload.php | 14.54 ▲11.31 | 279.81 ▲245.43 |
Freemius Debug [v.2.6.0] /wp-admin/admin.php?page=freemius | 14.70 | 255.50 |
Server storage [IO: ▲23.19MB] [DB: ▲0.03MB] Passed 3 tests
Filesystem and database footprint
There were no storage issued detected upon installing this plugin
Filesystem: 1,093 new files
Database: 10 new tables, 237 new options
New tables |
---|
wp_wbk_locked_time_slots |
wp_wbk_email_templates |
wp_wbk_appointments |
wp_wbk_cancelled_appointments |
wp_wbk_services |
wp_wbk_coupons |
wp_wbk_days_on_off |
wp_wbk_service_categories |
wp_wbk_gg_calendars |
wp_wbk_pricing_rules |
New WordPress options |
---|
wbk_form_label |
wbk_bank_transfer_message |
wbk_email_customer_paymentrcvd_subject |
wbk_do_not_tax_deposit |
wbk_payment_total_title |
wbk_email_customer_bycustomer_appointment_cancel_message |
wbk_allow_coupons |
wbk_3_2_2_upd |
wbk_appointments_allow_payments |
wbk_csv_delimiter |
... |
Browser metrics Passed 4 tests
An overview of browser requirements for Appointment & Event Booking Calendar Plugin - Webba Booking
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,954 ▲192 | 14.89 ▲0.75 | 38.38 ▲36.53 | 31.50 ▼13.13 |
Dashboard /wp-admin | 2,217 ▲36 | 5.55 ▼0.16 | 95.52 ▼14.18 | 75.48 ▲33.60 |
Posts /wp-admin/edit.php | 2,135 ▲35 | 1.98 ▲0.04 | 40.89 ▲1.16 | 34.96 ▼0.49 |
Add New Post /wp-admin/post-new.php | 1,545 ▲19 | 20.87 ▼2.43 | 680.43 ▼15.44 | 179.50 ▲111.42 |
Media Library /wp-admin/upload.php | 1,425 ▲28 | 4.16 ▼0.02 | 94.05 ▼11.30 | 82.24 ▲36.20 |
Freemius Debug [v.2.6.0] /wp-admin/admin.php?page=freemius | 1,089 | 1.80 | 22.58 | 24.83 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.03MB] 25% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
You still need to fix the following
- The plugin did not uninstall gracefully
- > Notice in wp-content/plugins/webba-booking-lite/freemius/includes/class-freemius.php+8546
Undefined property: stdClass::$plugins
- This plugin does not fully uninstall, leaving 10 tables in the database
- wp_wbk_gg_calendars
- wp_wbk_appointments
- wp_wbk_days_on_off
- wp_wbk_services
- wp_wbk_pricing_rules
- wp_wbk_cancelled_appointments
- wp_wbk_email_templates
- wp_wbk_service_categories
- wp_wbk_coupons
- wp_wbk_locked_time_slots
- This plugin does not fully uninstall, leaving 237 options in the database
- wbk_step_separator
- wbk_3_3_18_upd
- wbk_email_adimn_appointment_cancel_subject
- wbk_pickadate_load
- wbk_appointments_delete_not_paid_mode
- wbk_allow_coupons
- wbk_3_2_21_upd
- wbk_woo_button_text
- wbk_email_customer_manual_book_subject
- wbk_date_format_backend
- ...
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)
Even though everything seems fine, this is not an exhaustive test
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
- 1× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/webba-booking-lite/templates/frontend/single_timeslot_detailed.php
- 7× PHP files trigger server errors when accessed directly:
- > PHP Parse error
syntax error, unexpected '|', expecting variable (T_VARIABLE) in wp-content/plugins/webba-booking-lite/vendor/symfony/polyfill-mbstring/bootstrap80.php on line 15
- > PHP Fatal error
Uncaught Error: Class 'voku\\helper\\Bootup' not found in wp-content/plugins/webba-booking-lite/vendor/voku/portable-utf8/bootstrap.php:6
- > PHP Parse error
syntax error, unexpected '|', expecting '{' in wp-content/plugins/webba-booking-lite/vendor/symfony/polyfill-iconv/bootstrap80.php on line 28
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html() in wp-content/plugins/webba-booking-lite/templates/frontend_v5/local_time_checkbox.php:8
- > PHP Parse error
syntax error, unexpected '|', expecting '{' in wp-content/plugins/webba-booking-lite/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php on line 18
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Polyfill\\Intl\ormalizer\ormalizer' not found in wp-content/plugins/webba-booking-lite/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php:3
- > PHP Parse error
syntax error, unexpected '|', expecting '{' in wp-content/plugins/webba-booking-lite/vendor/symfony/polyfill-intl-grapheme/bootstrap80.php on line 25
- > PHP Parse error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
There were no browser issues found
Optimizations
Plugin configuration 96% from 29 tests
readme.txt Passed 16 tests
Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
5 plugin tags: service reservations, booking calendar, online scheduling, event booking, appointment booking
webba-booking-lite/webba-booking-lite.php 92% from 13 tests
Analyzing the main PHP file in "Appointment & Event Booking Calendar Plugin - Webba Booking" version 5.0.25
You should first fix the following items:
- Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 183 characters long)
Code Analysis 95% 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
There were no executable files found in this plugin276,321 lines of code in 794 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 581 | 14,405 | 26,984 | 122,920 |
JavaScript | 104 | 5,370 | 10,054 | 63,080 |
PO File | 18 | 19,682 | 30,419 | 43,947 |
CSS | 53 | 3,052 | 336 | 38,303 |
Markdown | 16 | 2,054 | 3 | 5,608 |
JSON | 11 | 0 | 0 | 1,381 |
Sass | 4 | 46 | 12 | 591 |
HTML | 2 | 72 | 0 | 380 |
XML | 1 | 0 | 0 | 73 |
SVG | 4 | 0 | 1 | 38 |
PHP code 0% from 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
The following items need your attention
- Please reduce cyclomatic complexity of classes to less than 1000 (currently 3,096)
- Cyclomatic complexity of methods has to be reduced to less than 100 (currently 119)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.51 |
Average class complexity | 76.08 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 3,096.00 |
Average method complexity | 4.66 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 119.00 |
Code structure | ||
---|---|---|
Namespaces | 9 | |
Interfaces | 1 | |
Traits | 0 | |
Classes | 131 | |
▷ Abstract classes | 2 | 1.53% |
▷ Concrete classes | 129 | 98.47% |
▷ Final classes | 9 | 6.98% |
Methods | 2,690 | |
▷ Static methods | 939 | 34.91% |
▷ Public methods | 2,205 | 81.97% |
▷ Protected methods | 32 | 1.19% |
▷ Private methods | 453 | 16.84% |
Functions | 394 | |
▷ Named functions | 342 | 86.80% |
▷ Anonymous functions | 52 | 13.20% |
Constants | 268 | |
▷ Global constants | 129 | 48.13% |
▷ Class constants | 139 | 51.87% |
▷ Public constants | 137 | 98.56% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
127 PNG files occupy 1.07MB with 0.28MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
public/images/group-default-icon.png | 0.43KB | 0.34KB | ▼ 21.10% |
public/images/clock_white.png | 4.15KB | 2.18KB | ▼ 47.43% |
public/images/new-category-icon.png | 0.57KB | 0.37KB | ▼ 34.48% |
public/images/stripe-icon.png | 0.60KB | 0.42KB | ▼ 30.26% |
plugion/vendor/DataTables/DataTables-1.10.18/images/sort_both.png | 0.20KB | 0.29KB | 0.00% |