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
Installer ran successfully
Server metrics [RAM: ▲1.28MB] [CPU: ▲5.69ms] Passed 4 tests
A check of server-side resources used by Bookme - Free Online Appointment Booking and Scheduling Plugin
This plugin does not affect your website's performance
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.20 ▲0.73 | 41.43 ▲3.12 |
Dashboard /wp-admin | 4.78 ▲1.47 | 52.11 ▲5.71 |
Posts /wp-admin/edit.php | 4.83 ▲1.47 | 55.43 ▲17.34 |
Add New Post /wp-admin/post-new.php | 7.46 ▲1.57 | 98.20 ▼1.89 |
Media Library /wp-admin/upload.php | 4.70 ▲1.47 | 51.37 ▲15.81 |
All Bookings /wp-admin/admin.php?page=bookme-bookings | 5.19 | 48.57 |
Customers /wp-admin/admin.php?page=bookme-customers | 4.80 | 40.86 |
Payments /wp-admin/admin.php?page=bookme-payments | 4.94 | 41.40 |
Settings /wp-admin/admin.php?page=bookme-settings | 5.20 | 91.06 |
Staff Members /wp-admin/admin.php?page=bookme-staff | 4.93 | 46.95 |
Services /wp-admin/admin.php?page=bookme-services | 4.92 | 42.24 |
Appearance /wp-admin/admin.php?page=bookme-appearance | 4.92 | 42.00 |
Notifications /wp-admin/admin.php?page=bookme-notifications | 5.22 | 63.98 |
Server storage [IO: ▲3.83MB] [DB: ▲0.03MB] Passed 3 tests
How much does this plugin use your filesystem and database?
There were no storage issued detected upon installing this plugin
Filesystem: 258 new files
Database: 16 new tables, 121 new options
New tables |
---|
wp_bm_holidays |
wp_bm_customer_bookings |
wp_bm_customers |
wp_bm_sent_notifications |
wp_bm_employee_preference_orders |
wp_bm_employees |
wp_bm_payments |
wp_bm_services |
wp_bm_notifications |
wp_bm_coupons_to_services |
... |
New WordPress options |
---|
bookme_reject_success_url |
bookme_form_custom_css |
bookme_company_website |
bookme_default_country_code |
bookme_gc_event_title |
bookme_paypal_api_password |
bookme_authorize_net_sandbox |
bookme_twillio_phone_number |
bookme_lang_title_service |
bookme_wh_thursday_end |
... |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Bookme - Free Online Appointment Booking and Scheduling Plugin
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,963 ▲217 | 13.72 ▼0.68 | 9.93 ▲8.25 | 38.17 ▼6.14 |
Dashboard /wp-admin | 2,241 ▲61 | 5.55 ▼0.11 | 82.91 ▼16.34 | 78.78 ▲37.54 |
Posts /wp-admin/edit.php | 2,128 ▲28 | 1.98 ▲0.04 | 36.43 ▼4.09 | 33.67 ▼4.73 |
Add New Post /wp-admin/post-new.php | 1,859 ▲331 | 22.20 ▼0.86 | 658.45 ▲58.51 | 53.09 ▼4.88 |
Media Library /wp-admin/upload.php | 1,449 ▲49 | 4.13 ▼0.23 | 94.69 ▼7.41 | 73.00 ▲29.45 |
All Bookings /wp-admin/admin.php?page=bookme-bookings | 5,510 | 5.53 | 147.31 | 252.72 |
Customers /wp-admin/admin.php?page=bookme-customers | 4,135 | 4.03 | 105.65 | 102.55 |
Payments /wp-admin/admin.php?page=bookme-payments | 2,654 | 5.28 | 110.36 | 138.69 |
Settings /wp-admin/admin.php?page=bookme-settings | 15,751 | 3.64 | 124.89 | 369.59 |
Staff Members /wp-admin/admin.php?page=bookme-staff | 2,390 | 3.75 | 56.07 | 360.87 |
Services /wp-admin/admin.php?page=bookme-services | 2,046 | 2.66 | 44.58 | 115.33 |
Appearance /wp-admin/admin.php?page=bookme-appearance | 2,787 | 3.41 | 73.71 | 466.68 |
Notifications /wp-admin/admin.php?page=bookme-notifications | 6,459 | 12.34 | 328.82 | 125.32 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.03MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
It is recommended to fix the following
- This plugin does not fully uninstall, leaving 16 tables in the database
- wp_bm_coupons
- wp_bm_customers
- wp_bm_services
- wp_bm_employee_schedules
- wp_bm_categories
- wp_bm_employee_preference_orders
- wp_bm_payments
- wp_bm_notifications
- wp_bm_employee_schedule_breaks
- wp_bm_customer_bookings
- ...
- Zombie WordPress options detected upon uninstall: 121 options
- bookme_paypal_enabled
- bookme_company_phone
- bookme_authorize_net_api_login_id
- bookme_lang_wc_cart_data_name
- bookme_customer_first_last_name
- bookme_form_layout
- bookme_mollie_enabled
- bookme_secondary_color
- bookme_local_enabled
- bookme_wh_saturday_end
- ...
Smoke tests 25% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Even though no errors were found, this is by no means an exhaustive test
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 take a closer look at the following
- 54× PHP files perform the task of outputting text when accessed with GET requests (only 10 are shown):
- > /wp-content/plugins/bookme-free-appointment-booking-system/templates/admin/settings/labels-tab.php
- > /wp-content/plugins/bookme-free-appointment-booking-system/templates/admin/settings/holidays-tab.php
- > /wp-content/plugins/bookme-free-appointment-booking-system/templates/admin/settings/company-tab.php
- > /wp-content/plugins/bookme-free-appointment-booking-system/templates/admin/fragments/limitation.php
- > /wp-content/plugins/bookme-free-appointment-booking-system/templates/admin/settings/payments-tab.php
- > /wp-content/plugins/bookme-free-appointment-booking-system/templates/admin/settings/page.php
- > /wp-content/plugins/bookme-free-appointment-booking-system/templates/admin/employees/edit-employee-panel.php
- > /wp-content/plugins/bookme-free-appointment-booking-system/templates/admin/notifications/page.php
- > /wp-content/plugins/bookme-free-appointment-booking-system/templates/admin/services/service-panel.php
- > /wp-content/plugins/bookme-free-appointment-booking-system/templates/admin/appearance/page.php
- 34× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Bookme\\Inc\\Core\\App' not found in wp-content/plugins/bookme-free-appointment-booking-system/app/admin/Calendar.php:11
- > PHP Fatal error
Uncaught Error: Class 'Bookme\\Inc\\Core\\App' not found in wp-content/plugins/bookme-free-appointment-booking-system/app/admin/Notifications.php:11
- > PHP Fatal error
Uncaught Error: Class 'Bookme\\Inc\\Core\\App' not found in wp-content/plugins/bookme-free-appointment-booking-system/app/admin/Services.php:11
- > PHP Fatal error
Uncaught Error: Class 'Bookme\\Inc\\Core\\Table' not found in wp-content/plugins/bookme-free-appointment-booking-system/inc/mains/tables/Category.php:10
- > PHP Fatal error
Uncaught Error: Class 'Bookme\\Inc\\Core\\App' not found in wp-content/plugins/bookme-free-appointment-booking-system/app/admin/Appearance.php:10
- > PHP Fatal error
Uncaught Error: Class 'Bookme\\Inc\\Core\\Schema' not found in wp-content/plugins/bookme-free-appointment-booking-system/inc/core/Installer.php:7
- > PHP Fatal error
Uncaught Error: Class 'Google_Service' not found in wp-content/plugins/bookme-free-appointment-booking-system/inc/external/google/Service/Calendar.php:29
- > PHP Fatal error
Uncaught Error: Class 'Bookme\\Inc\\Core\\App' not found in wp-content/plugins/bookme-free-appointment-booking-system/app/admin/Bookings.php:11
- > PHP Fatal error
Uncaught Error: Class 'Bookme\\Inc\\Core\\Table' not found in wp-content/plugins/bookme-free-appointment-booking-system/inc/mains/tables/EmployeeScheduleBreak.php:10
- > PHP Fatal error
Uncaught Error: Class 'Bookme\\Inc\\Core\\Table' not found in wp-content/plugins/bookme-free-appointment-booking-system/inc/mains/tables/CouponService.php:10
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
There are user-side issues you should fix
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=bookme-payments
- > Console-api (warning) in wp-includes/js/dist/vendor/moment.min.js?ver=2.29.4+0:2827
Deprecation warning: use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.
Optimizations
Plugin configuration 86% from 29 tests
readme.txt 94% from 16 tests
Often overlooked, readme.txt is one of the most important files in your plugin
Please fix the following attributes:
- Tags: You are using too many tags: 13 tag instead of maximum 10
bookme-free-appointment-booking-system/init.php 77% from 13 tests
The principal PHP file in "Bookme - Free Online Appointment Booking and Scheduling Plugin" v. 4.2 is loaded by WordPress automatically on each request
Please make the necessary changes and fix the following:
- Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 170 characters long)
- Text Domain: The text domain is optional since WordPress version 4.6; if you do specify it, it must be the same as the plugin slug
- Main file name: The principal plugin file should be the same as the plugin slug ("bookme-free-appointment-booking-system.php" instead of "init.php")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short check of programming languages and file extensions; no executable files are allowed
There were no executable files found in this plugin37,360 lines of code in 223 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 174 | 3,115 | 8,435 | 23,153 |
JavaScript | 31 | 1,188 | 802 | 9,941 |
CSS | 17 | 654 | 39 | 3,990 |
SVG | 1 | 0 | 0 | 276 |
PHP code Passed 2 tests
A short review of cyclomatic complexity and code structure
Although this was not an exhaustive test, there were no cyclomatic complexity issues detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.32 |
Average class complexity | 12.68 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 135.00 |
Average method complexity | 2.17 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 87.00 |
Code structure | ||
---|---|---|
Namespaces | 13 | |
Interfaces | 1 | |
Traits | 0 | |
Classes | 156 | |
▷ Abstract classes | 20 | 12.82% |
▷ Concrete classes | 136 | 87.18% |
▷ Final classes | 0 | 0.00% |
Methods | 1,528 | |
▷ Static methods | 169 | 11.06% |
▷ Public methods | 1,397 | 91.43% |
▷ Protected methods | 58 | 3.80% |
▷ Private methods | 73 | 4.78% |
Functions | 24 | |
▷ Named functions | 3 | 12.50% |
▷ Anonymous functions | 21 | 87.50% |
Constants | 96 | |
▷ Global constants | 7 | 7.29% |
▷ Class constants | 89 | 92.71% |
▷ Public constants | 89 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
29 PNG files occupy 0.28MB with 0.07MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/admin/images/payment/2checkout.png | 1.83KB | 2.27KB | 0.00% |
assets/admin/images/payment/stripe.png | 1.96KB | 1.70KB | ▼ 13.45% |
assets/admin/images/sort_asc_disabled.png | 0.09KB | 0.09KB | 0.00% |
assets/admin/css/jquery-ui-theme/images/ui-icons_454545_256x240.png | 6.83KB | 4.17KB | ▼ 38.86% |
assets/front/images/flags.png | 64.41KB | 23.38KB | ▼ 63.70% |