Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
This plugin's installer ran successfully
Server metrics [RAM: ▲2.52MB] [CPU: ▼97.60ms] Passed 4 tests
This is a short check of server-side resources used by Booking Ultra Pro Appointments Booking Calendar Plugin
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.95 ▲2.12 | 61.21 ▲32.96 |
Dashboard /wp-admin | 5.70 ▲2.63 | 79.64 ▲41.08 |
Posts /wp-admin/edit.php | 5.74 ▲2.63 | 77.61 ▲37.39 |
Add New Post /wp-admin/post-new.php | 8.29 ▲2.85 | 160.54 ▼501.21 |
Media Library /wp-admin/upload.php | 5.68 ▲2.68 | 64.02 ▲40.47 |
Settings /wp-admin/admin.php?page=bookingultra-settings | 5.79 | 85.48 |
Maintenance /wp-admin/admin.php?page=bup-maintenance | 5.58 | 63.88 |
Custom Fields /wp-admin/admin.php?page=bookingultra-fields | 5.56 | 66.39 |
Payments /wp-admin/admin.php?page=bookingultra-orders | 5.58 | 64.83 |
Upgrade ➜ /wp-admin/admin.php?page=bookingultra-upgrade | 5.47 | 61.11 |
Appointments /wp-admin/admin.php?page=bookingultra-appointments | 5.60 | 68.14 |
Payment Gateways /wp-admin/admin.php?page=bookingultra-gateway | 5.60 | 63.79 |
Booking Ultra /wp-admin/admin.php?page=bookingultra | 5.63 | 75.65 |
Notifications /wp-admin/admin.php?page=bookingultra-mail | 5.80 | 68.66 |
Staff /wp-admin/admin.php?page=bookingultra-users | 5.58 | 68.21 |
Server storage [IO: ▲7.68MB] [DB: ▲0.02MB] Passed 3 tests
How much does this plugin use your filesystem and database?
This plugin was installed successfully
Filesystem: 341 new files
Database: 12 new tables, 4 new options
New tables |
---|
wp_bup_filter_staff |
wp_bup_categories |
wp_bup_services |
wp_bup_bookings |
wp_bup_orders |
wp_bup_service_rates |
wp_bup_carts |
wp_bup_staff_availability_breaks |
wp_bup_staff_availability |
wp_bup_bookings_meta |
... |
New WordPress options |
---|
bup_pro_active |
bup_options |
bup_business_hours |
bup_profile_fields |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Booking Ultra Pro Appointments Booking Calendar Plugin
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 4,091 ▲490 | 19.53 ▲3.91 | 19.07 ▲13.91 | 77.42 ▲3.82 |
Dashboard /wp-admin | 3,137 ▲244 | 8.48 ▲2.39 | 187.48 ▲52.45 | 207.35 ▲34.75 |
Posts /wp-admin/edit.php | 2,954 ▲214 | 5.74 ▲2.50 | 92.54 ▲30.24 | 165.15 ▲30.41 |
Add New Post /wp-admin/post-new.php | 1,649 ▼2,086 | 22.39 ▲3.85 | 499.01 ▲31.47 | 215.55 ▲50.62 |
Media Library /wp-admin/upload.php | 1,961 ▲209 | 7.19 ▲1.63 | 141.73 ▼5.08 | 223.14 ▲37.17 |
Settings /wp-admin/admin.php?page=bookingultra-settings | 8,197 | 6.12 | 101.43 | 192.85 |
Maintenance /wp-admin/admin.php?page=bup-maintenance | 1,322 | 5.40 | 83.15 | 153.54 |
Custom Fields /wp-admin/admin.php?page=bookingultra-fields | 4,032 | 5.73 | 96.37 | 144.29 |
Payments /wp-admin/admin.php?page=bookingultra-orders | 1,677 | 5.55 | 92.31 | 152.94 |
Upgrade ➜ /wp-admin/admin.php?page=bookingultra-upgrade | 1,382 | 4.90 | 138.11 | 189.79 |
Appointments /wp-admin/admin.php?page=bookingultra-appointments | 2,215 | 6.48 | 128.83 | 162.65 |
Payment Gateways /wp-admin/admin.php?page=bookingultra-gateway | 1,744 | 5.63 | 89.87 | 179.64 |
Booking Ultra /wp-admin/admin.php?page=bookingultra | 2,652 | 10.25 | 178.11 | 292.50 |
Notifications /wp-admin/admin.php?page=bookingultra-mail | 5,977 | 20.99 | 409.06 | 189.00 |
Staff /wp-admin/admin.php?page=bookingultra-users | 1,414 | 6.20 | 106.50 | 136.13 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.02MB] 50% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
These items require your attention
- The plugin did not uninstall successfully, leaving 12 tables in the database
- wp_bup_bookings_meta
- wp_bup_services
- wp_bup_service_variable_pricing
- wp_bup_carts
- wp_bup_filters
- wp_bup_staff_availability
- wp_bup_categories
- wp_bup_filter_staff
- wp_bup_bookings
- wp_bup_staff_availability_breaks
- ...
- This plugin did not uninstall successfully, leaving 4 options in the database
- bup_options
- bup_profile_fields
- bup_pro_active
- bup_business_hours
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Almost there, just fix the following server-side errors
- > GET request to /wp-admin/admin.php?page=bookingultra-fields
- > POST request to /wp-admin/admin-ajax.php
- > Notice in wp-content/plugins/booking-ultra-pro/classes/bookingultra.admin.php+1654
Undefined index: bup_custom_form
- > GET request to /wp-admin/admin.php?page=bookingultra-users
- > POST request to /wp-admin/admin-ajax.php
- > Notice in wp-content/plugins/booking-ultra-pro/classes/bookingultra.user.php+1989
Undefined index: total
SRP 50% 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
- 42× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/booking-ultra-pro/classes/bookingultra.paypal.php:9
- > PHP Fatal error
Uncaught Error: Call to undefined function get_option() in wp-content/plugins/booking-ultra-pro/admin/tabs/fields.php:2
- > PHP Fatal error
Uncaught Error: Call to a member function query() on null in wp-content/plugins/booking-ultra-pro/classes/bookingultra.service.php:97
- > PHP Fatal error
Uncaught Error: Call to undefined function _e() in wp-content/plugins/booking-ultra-pro/admin/tabs/settings.php:1
- > PHP Fatal error
Uncaught Error: Call to undefined function _e() in wp-content/plugins/booking-ultra-pro/admin/tabs/gateway.php:4
- > PHP Warning
require_once(ABSPATHwp-admin/includes/plugin.php): failed to open stream: No such file or directory in wp-content/plugins/booking-ultra-pro/addons/maintenance/admin/admin.php on line 14
- > PHP Fatal error
Uncaught Error: Call to undefined function _e() in wp-content/plugins/booking-ultra-pro/admin/tabs/mail.php:4
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/booking-ultra-pro/classes/bookingultra.adminshortcodes.php:9
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/booking-ultra-pro/classes/bookingultra.shorcodes.php:7
- > PHP Fatal error
Uncaught Error: Call to a member function get_one() on null in wp-content/plugins/booking-ultra-pro/admin/templates/edit_appointment.php:5
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
Please take a look at the following user-side issues
- > GET request to /wp-admin/admin.php?page=bookingultra-upgrade
- > Javascript (severe) in unknown
https://bookingultrapro.com/compare-packages.php?utm_source=free_plugin_sidebar - Access to script at 'https://kit.fontawesome.com/fefce96b21.js' from origin 'https://bookingultrapro.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
- > GET request to /wp-admin/admin.php?page=bookingultra-upgrade
- > Network (severe)
https://kit.fontawesome.com/fefce96b21.js - Failed to load resource: net::ERR_FAILED
- > GET request to /wp-admin/admin.php?page=bookingultra-upgrade
- > Security (severe) in unknown
https://bookingultrapro.com/compare-packages.php?utm_source=free_plugin_sidebar - Refused to execute script from 'https://bookingultrapro.com/template/js/smooth-scroll.min.js.html' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
Optimizations
Plugin configuration 87% from 29 tests
readme.txt 88% from 16 tests
The readme.txt file uses markdown syntax to describe your plugin to the world
Attributes that require attention:
- Screenshots: These screenshots do not have images: #1 (BOOKING STEP 1), #2 (BOOKING STEP 2), #3 (BOOKING STEP 3), #4 (BOOKING STEP 4), #6 (ADVANCED BOOKING CALENDAR), #7 (SERVICES), #8 (STAFF MEMBERS), #9 (CREATE SERVICES), #10 (SERVICES), #11 (PAYMENTS AND NOTES), #12 (SCHEDULE AND SERVICES)
- Tags: There are too many tags (24 tag instead of maximum 10)
booking-ultra-pro/index.php 85% from 13 tests
The main PHP script in "Booking Ultra Pro Appointments Booking Calendar Plugin" version 1.1.3 is automatically included on every request by WordPress
The following require your attention:
- Main file name: Even though not officially enforced, the main plugin file should be the same as the plugin slug ("booking-ultra-pro.php" instead of "index.php")
- Description: Please keep the plugin description shorter than 140 characters (currently 273 characters long)
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
There were no executable files found in this plugin58,980 lines of code in 176 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 41 | 8,935 | 1,252 | 15,748 |
PO File | 6 | 5,158 | 7,328 | 12,505 |
JavaScript | 61 | 2,769 | 2,245 | 12,440 |
CSS | 19 | 1,591 | 433 | 9,685 |
SVG | 3 | 0 | 0 | 3,158 |
Sass | 22 | 49 | 46 | 2,647 |
LESS | 22 | 49 | 62 | 2,633 |
HTML | 1 | 26 | 0 | 153 |
Markdown | 1 | 4 | 0 | 11 |
PHP code 50% from 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
Please fix the following
- Please reduce cyclomatic complexity of methods to less than 100 (currently 136)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.24 |
Average class complexity | 81.44 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 340.00 |
Average method complexity | 4.41 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 136.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 18 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 18 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 425 | |
▷ Static methods | 1 | 0.24% |
▷ Public methods | 420 | 98.82% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 5 | 1.18% |
Functions | 29 | |
▷ Named functions | 29 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 13 | |
▷ Global constants | 13 | 100.00% |
▷ Class constants | 0 | 0.00% |
▷ Public constants | 0 | 0.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
108 PNG files occupy 1.63MB with 0.66MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
screenshot-9.png | 25.03KB | 12.43KB | ▼ 50.32% |
js/lightbox/img/prev.png | 1.33KB | 1.59KB | 0.00% |
admin/images/iconos-panel-booking/staff-icon.png | 5.55KB | 2.94KB | ▼ 47.07% |
screenshot-6.png | 26.30KB | 11.62KB | ▼ 55.82% |
admin/images/iconos-panel-booking/groups-icon.png | 5.32KB | 2.76KB | ▼ 48.18% |