Benchmarks
Plugin footprint 40% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Please fix the following installer errors
- The plugin did not install without errors
- > Notice in wp-content/plugins/book-in-60/include/b60-main.php+57
Trying to access array offset on value of type bool
Server metrics [RAM: ▲3.41MB] [CPU: ▲17.42ms] Passed 4 tests
An overview of server-side resources used by Book in 60
This plugin does not affect your website's performance
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 6.86 ▲3.39 | 62.24 ▲22.91 |
Dashboard /wp-admin | 6.72 ▲3.42 | 62.53 ▲15.28 |
Posts /wp-admin/edit.php | 6.77 ▲3.42 | 64.54 ▲16.00 |
Add New Post /wp-admin/post-new.php | 9.33 ▲3.45 | 114.09 ▲15.49 |
Media Library /wp-admin/upload.php | 6.65 ▲3.42 | 59.69 ▲27.31 |
Bookings /wp-admin/admin.php?page=b60-bookings | 6.73 | 47.67 |
Leads /wp-admin/admin.php?page=b60-leads | 6.74 | 50.09 |
Settings /wp-admin/admin.php?page=b60-settings | 6.70 | 47.27 |
Service Addons /wp-admin/edit.php?post_type=service_addons | 6.67 | 49.59 |
Services /wp-admin/edit.php?post_type=service | 6.67 | 48.01 |
Service Frequency /wp-admin/edit.php?post_type=service_frequencies | 6.67 | 48.94 |
Pricing Parameters /wp-admin/edit.php?post_type=pricing_parameters | 6.67 | 47.10 |
Server storage [IO: ▲4.28MB] [DB: ▲0.01MB] Passed 3 tests
Input-output and database impact of this plugin
This plugin was installed successfully
Filesystem: 367 new files
Database: 3 new tables, 9 new options
New tables |
---|
wp_b60_payments |
wp_b60_lead_entries |
wp_b60_payment_forms |
New WordPress options |
---|
theysaidso_admin_options |
db_upgraded |
b60_settings_option |
b60_lead_formbuilder |
widget_recent-comments |
widget_recent-posts |
can_compress_scripts |
b60_booking_formbuilder |
widget_theysaidso_widget |
Browser metrics Passed 4 tests
An overview of browser requirements for Book in 60
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,005 ▲259 | 13.80 ▼0.73 | 6.19 ▲4.57 | 56.92 ▲20.24 |
Dashboard /wp-admin | 2,282 ▲101 | 5.06 ▼0.63 | 92.94 ▼7.87 | 38.50 ▼2.89 |
Posts /wp-admin/edit.php | 2,187 ▲87 | 2.39 ▲0.38 | 41.43 ▲3.08 | 32.00 ▼3.70 |
Add New Post /wp-admin/post-new.php | 1,602 ▲76 | 21.20 ▼1.96 | 711.42 ▲19.88 | 36.89 ▼15.16 |
Media Library /wp-admin/upload.php | 1,490 ▲90 | 4.67 ▲0.34 | 103.15 ▲7.86 | 40.03 ▼1.11 |
Bookings /wp-admin/admin.php?page=b60-bookings | 1,410 | 6.68 | 228.04 | 26.19 |
Leads /wp-admin/admin.php?page=b60-leads | 1,408 | 6.57 | 124.89 | 24.60 |
Settings /wp-admin/admin.php?page=b60-settings | 2,239 | 6.63 | 99.83 | 39.78 |
Service Addons /wp-admin/edit.php?post_type=service_addons | 1,186 | 2.51 | 36.14 | 25.29 |
Services /wp-admin/edit.php?post_type=service | 1,178 | 2.49 | 42.28 | 25.17 |
Service Frequency /wp-admin/edit.php?post_type=service_frequencies | 1,178 | 2.48 | 34.88 | 25.34 |
Pricing Parameters /wp-admin/edit.php?post_type=pricing_parameters | 1,172 | 2.38 | 34.04 | 25.11 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 50% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
These items require your attention
- This plugin does not fully uninstall, leaving 3 tables in the database
- wp_b60_payments
- wp_b60_payment_forms
- wp_b60_lead_entries
- Zombie WordPress options were found after uninstall: 9 options
- widget_theysaidso_widget
- b60_lead_formbuilder
- widget_recent-posts
- theysaidso_admin_options
- db_upgraded
- b60_settings_option
- b60_booking_formbuilder
- widget_recent-comments
- can_compress_scripts
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
These server-side errors were triggered
- 4 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=b60-leads
- > User notice in wp-includes/functions.php+5905
Function wpdb::prepare was called incorrectly. The query argument of wpdb::prepare() must have a placeholder. Please see Debugging in WordPress for more information. (This message was added in version 3.9.0.)
- 8 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=b60-settings
- > Notice in wp-content/plugins/book-in-60/pages/b60_settings.php+40
Undefined index: industry
- > GET request to /wp-admin/admin.php?page=b60-settings
- > Notice in wp-content/plugins/book-in-60/pages/b60_settings.php+47
Undefined index: business_name
- > GET request to /wp-admin/admin.php?page=b60-settings
- > Notice in wp-content/plugins/book-in-60/pages/b60_settings.php+53
Undefined index: email_from
- > GET request to /wp-admin/admin.php?page=b60-settings
- > Notice in wp-content/plugins/book-in-60/pages/b60_settings.php+62
Undefined index: enable_payment_method
- > GET request to /wp-admin/admin.php?page=b60-settings
- > Notice in wp-content/plugins/book-in-60/pages/b60_settings.php+73
Undefined index: payment_method
- > GET request to /wp-admin/admin.php?page=b60-settings
- > Notice in wp-content/plugins/book-in-60/pages/b60_settings.php+157
Undefined index: enable_sales_tax
- > GET request to /wp-admin/admin.php?page=b60-settings
- > Notice in wp-content/plugins/book-in-60/pages/b60_settings.php+167
Undefined index: sales_tax
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=b60-settings
- > Notice in wp-content/plugins/book-in-60/pages/b60_settings.php+175
Undefined index: sales_tax_applied
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
- 2× PHP files output text when accessed directly:
- > /wp-content/plugins/book-in-60/vendor/stripe/stripe-php/build.php
- > /wp-content/plugins/book-in-60/vendor/stripe/stripe-php/update_certs.php
- 229× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Service\\AbstractService' not found in wp-content/plugins/book-in-60/vendor/stripe/stripe-php/lib/Service/BalanceService.php:7
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/book-in-60/vendor/stripe/stripe-php/lib/Payout.php:40
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/book-in-60/vendor/stripe/stripe-php/lib/Identity/VerificationSession.php:38
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Service\\AbstractService' not found in wp-content/plugins/book-in-60/vendor/stripe/stripe-php/lib/Service/SetupAttemptService.php:7
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/book-in-60/vendor/stripe/stripe-php/lib/SetupIntent.php:65
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Exception\\OAuth\\OAuthErrorException' not found in wp-content/plugins/book-in-60/vendor/stripe/stripe-php/lib/Exception/OAuth/InvalidGrantException.php:11
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/book-in-60/vendor/stripe/stripe-php/lib/Checkout/Session.php:63
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Exception\\ApiErrorException' not found in wp-content/plugins/book-in-60/vendor/stripe/stripe-php/lib/Exception/AuthenticationException.php:9
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Service\\AbstractService' not found in wp-content/plugins/book-in-60/vendor/stripe/stripe-php/lib/Service/EventService.php:7
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/book-in-60/vendor/stripe/stripe-php/lib/Topup.php:32
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Please fix the following browser errors
- 3 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=b60-settings
- > Console-api (warning) in unknown
http://js.stripe.com/v2/?ver=6.3.1 1:748 "It looks like Stripe.js is not being loaded from https://js.stripe.com. Stripe does not support serving Stripe.js from your own domain."
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
Often overlooked, readme.txt is one of the most important files in your plugin
6 plugin tags: cleaning, housekeeping, booking, maid, appointment...
book-in-60/bookin60.php 85% from 13 tests
The entry point to "Book in 60" version 1.2.0 is a PHP file that has certain tags in its header comment area
It is important to fix the following:
- Text Domain: The text domain must be the same as the plugin slug, although optional since WordPress version 4.6
- Main file name: Name the main plugin file the same as the plugin slug ("book-in-60.php" instead of "bookin60.php")
Code Analysis 5% from 3 tests
File types 0% from 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
These items require your attention
- For security reasons, never distribute binary or executable files with your plugin
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
- ☣ wp-content/plugins/book-in-60/vendor/stripe/stripe-php/data/ca-certificates.crt
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JavaScript | 25 | 6,272 | 4,856 | 26,379 |
PHP | 253 | 3,428 | 9,952 | 15,797 |
CSS | 14 | 1,016 | 191 | 6,157 |
Markdown | 3 | 695 | 0 | 1,135 |
JSON | 1 | 0 | 0 | 48 |
XML | 1 | 0 | 0 | 31 |
SVG | 1 | 0 | 1 | 29 |
make | 1 | 9 | 0 | 27 |
YAML | 1 | 0 | 0 | 3 |
PHP code Passed 2 tests
Analyzing cyclomatic complexity and code structure
There were no cyclomatic complexity issued detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.23 |
Average class complexity | 4.97 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 148.00 |
Average method complexity | 2.04 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 41.00 |
Code structure | ||
---|---|---|
Namespaces | 23 | |
Interfaces | 9 | |
Traits | 7 | |
Classes | 218 | |
▷ Abstract classes | 10 | 4.59% |
▷ Concrete classes | 208 | 95.41% |
▷ Final classes | 0 | 0.00% |
Methods | 853 | |
▷ Static methods | 168 | 19.70% |
▷ Public methods | 772 | 90.50% |
▷ Protected methods | 34 | 3.99% |
▷ Private methods | 47 | 5.51% |
Functions | 19 | |
▷ Named functions | 6 | 31.58% |
▷ Anonymous functions | 13 | 68.42% |
Constants | 781 | |
▷ Global constants | 10 | 1.28% |
▷ Class constants | 771 | 98.72% |
▷ Public constants | 771 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
49 PNG files occupy 0.30MB with 0.15MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/css/images/gift-card-template1.png | 92.07KB | 23.08KB | ▼ 74.93% |
assets/img/credit-card.png | 0.40KB | 0.23KB | ▼ 41.73% |
assets/img/safety.png | 1.31KB | 0.63KB | ▼ 52.23% |
assets/img/Date.png | 0.74KB | 0.42KB | ▼ 43.95% |
assets/css/images/ui-icons_454545_256x240.png | 6.83KB | 4.17KB | ▼ 38.86% |