Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲4.11MB] [CPU: ▼247.68ms] Passed 4 tests
An overview of server-side resources used by Opal Hotel Room Booking
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 7.08 ▲3.96 | 96.35 ▲70.68 |
Dashboard /wp-admin | 7.63 ▲4.23 | 82.26 ▲48.33 |
Posts /wp-admin/edit.php | 7.82 ▲4.19 | 89.89 ▲49.84 |
Add New Post /wp-admin/post-new.php | 11.11 ▲4.11 | 141.32 ▼1,159.58 |
Media Library /wp-admin/upload.php | 7.48 ▲4.19 | 146.81 ▲122.80 |
Settings /wp-admin/admin.php?page=opalhotel-settings | 7.65 | 74.43 |
Add New Offer /wp-admin/post-new.php?post_type=opalhotel_offer | 8.11 | 87.04 |
Offers /wp-admin/edit.php?post_type=opalhotel_offer | 7.62 | 73.06 |
Categories /wp-admin/edit-tags.php?taxonomy=opalhotel_room_cat&post_type=opalhotel_room | 7.51 | 69.85 |
Destinations /wp-admin/edit-tags.php?taxonomy=opalhotel_hotel_des&post_type=opalhotel_hotel | 7.51 | 72.22 |
Packages /wp-admin/edit.php?post_type=opalhotel_package | 7.62 | 77.39 |
Menus /wp-admin/nav-menus.php | 7.45 | 79.93 |
Widgets /wp-admin/widgets.php | 9.34 | 98.61 |
Amenities /wp-admin/edit.php?post_type=opalhotel_amenities | 7.63 | 75.59 |
Catetories /wp-admin/edit-tags.php?taxonomy=opalhotel_hotel_cat&post_type=opalhotel_hotel | 7.51 | 71.89 |
Server storage [IO: ▲10.79MB] [DB: ▲0.04MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
No storage issues were detected
Filesystem: 1,081 new files
Database: 5 new tables, 59 new options
New tables |
---|
wp_opalhotel_pricing |
wp_opalhotel_order_items |
wp_opalhotel_ratings |
wp_opalhotel_rating_item |
wp_opalhotel_order_itemmeta |
New WordPress options |
---|
opalhotel_rooms_page_id |
opalhotel_account_page_id |
opalhotel_max_rooms_number |
widget_opalhotel-hotel-destination |
opalhotel_price_decimals_separator |
widget_opalhotel-rooms |
opalhotel_email_from_name |
opalhotel_enabled_rating |
opalhotel_price_number_of_decimal |
widget_opalhotel-single-book-room |
... |
Browser metrics Passed 4 tests
Checking browser requirements for Opal Hotel Room Booking
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 4,600 ▲846 | 21.35 ▲5.60 | 39.79 ▲33.24 | 3.32 ▲0.88 |
Dashboard /wp-admin | 3,388 ▲527 | 8.73 ▲2.60 | 165.21 ▲25.90 | 158.20 ▲0.42 |
Posts /wp-admin/edit.php | 3,217 ▲532 | 6.18 ▲2.95 | 95.74 ▲29.84 | 138.94 ▼1.61 |
Add New Post /wp-admin/post-new.php | 1,876 ▲215 | 20.65 ▲4.60 | 397.40 ▼4.54 | 143.98 ▼14.36 |
Media Library /wp-admin/upload.php | 2,004 ▲306 | 7.17 ▲1.60 | 123.04 ▼17.33 | 197.27 ▲12.99 |
Settings /wp-admin/admin.php?page=opalhotel-settings | 2,773 | 5.97 | 85.94 | 164.26 |
Add New Offer /wp-admin/post-new.php?post_type=opalhotel_offer | 3,337 | 11.20 | 207.70 | 217.03 |
Offers /wp-admin/edit.php?post_type=opalhotel_offer | 1,900 | 6.26 | 94.60 | 119.74 |
Categories /wp-admin/edit-tags.php?taxonomy=opalhotel_room_cat&post_type=opalhotel_room | 2,160 | 6.03 | 89.36 | 110.68 |
Destinations /wp-admin/edit-tags.php?taxonomy=opalhotel_hotel_des&post_type=opalhotel_hotel | 2,181 | 6.05 | 87.47 | 111.42 |
Packages /wp-admin/edit.php?post_type=opalhotel_package | 1,909 | 6.14 | 92.22 | 118.82 |
Menus /wp-admin/nav-menus.php | 3,542 | 6.74 | 114.10 | 129.09 |
Widgets /wp-admin/widgets.php | 2,804 | 30.32 | 587.87 | 185.54 |
Amenities /wp-admin/edit.php?post_type=opalhotel_amenities | 1,890 | 6.22 | 87.16 | 116.45 |
Catetories /wp-admin/edit-tags.php?taxonomy=opalhotel_hotel_cat&post_type=opalhotel_hotel | 2,157 | 6.08 | 87.35 | 110.40 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.04MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
These items require your attention
- Zombie tables detected upon uninstall: 5 tables
- wp_opalhotel_rating_item
- wp_opalhotel_order_itemmeta
- wp_opalhotel_pricing
- wp_opalhotel_order_items
- wp_opalhotel_ratings
- Zombie WordPress options detected upon uninstall: 59 options
- opalhotel_room_catalog_image_size
- opalhotel_cart_page_id
- opalhotel_hotel_available_page_id
- widget_opalhotel-hotels-lastest-deals
- opalhotel_favorited_page_id
- widget_opalhotel-single-hotel-destination
- opalhotel_meta_box_errors
- widget_opalhotel-single-book-room
- opalhotel_reservation_page_id
- opalhotel_currency
- ...
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
The smoke test was a success, however most plugin functionality was not tested
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
Almost there! Just fix the following items
- 1× PHP files output text when accessed directly:
- > /wp-content/plugins/opal-hotel-room-booking/templates/loop/details.php
- 43× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Text' not found in wp-content/plugins/opal-hotel-room-booking/includes/vendors/cmb2/includes/types/CMB2_Type_Checkbox.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Radio' not found in wp-content/plugins/opal-hotel-room-booking/includes/vendors/cmb2/includes/types/CMB2_Type_Multicheck.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Taxonomy_Multicheck' not found in wp-content/plugins/opal-hotel-room-booking/includes/vendors/cmb2/includes/types/CMB2_Type_Taxonomy_Multicheck_Hierarchical.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Text' not found in wp-content/plugins/opal-hotel-room-booking/includes/vendors/cmb2/includes/types/CMB2_Type_Oembed.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_REST_Controller' not found in wp-content/plugins/opal-hotel-room-booking/includes/vendors/cmb2/includes/rest-api/CMB2_REST_Controller_Boxes.php:17
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Text' not found in wp-content/plugins/opal-hotel-room-booking/includes/vendors/cmb2/includes/types/CMB2_Type_Colorpicker.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Multi_Base' not found in wp-content/plugins/opal-hotel-room-booking/includes/vendors/cmb2/includes/types/CMB2_Type_Select.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Taxonomy_Base' not found in wp-content/plugins/opal-hotel-room-booking/includes/vendors/cmb2/includes/types/CMB2_Type_Taxonomy_Radio.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Base' not found in wp-content/plugins/opal-hotel-room-booking/includes/vendors/cmb2/includes/types/CMB2_Type_Textarea.php:13
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/opal-hotel-room-booking/includes/vendors/cmb2/init.php:126
- > PHP Fatal 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 93% from 29 tests
readme.txt 94% from 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
These attributes need your attention:
- Plugin Name: "Plugin Name" should be replaced with the name of your plugin on the first line (
=== opal-hotel-room-booking ===
)
opal-hotel-room-booking/opal-hotel-room-booking.php 92% from 13 tests
The main PHP script in "Opal Hotel Room Booking" version 1.2.7 is automatically included on every request by WordPress
You should first fix the following items:
- Description: Keep the plugin description shorter than 140 characters (currently 163 characters long)
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
Good job! No executable or dangerous file extensions detected113,984 lines of code in 856 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PO File | 121 | 15,531 | 20,325 | 34,969 |
PHP | 358 | 7,105 | 12,151 | 28,830 |
SVG | 235 | 21 | 35 | 20,805 |
CSS | 39 | 2,144 | 1,468 | 13,695 |
JavaScript | 86 | 2,220 | 1,967 | 10,181 |
Sass | 11 | 555 | 389 | 4,797 |
Markdown | 3 | 228 | 0 | 657 |
JSON | 2 | 0 | 0 | 45 |
Ruby | 1 | 7 | 12 | 5 |
PHP code Passed 2 tests
An overview of cyclomatic complexity and code structure
No cyclomatic complexity issues were detected for this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.42 |
Average class complexity | 15.33 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 197.00 |
Average method complexity | 3.17 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 94.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 180 | |
▷ Abstract classes | 13 | 7.22% |
▷ Concrete classes | 167 | 92.78% |
▷ Final classes | 1 | 0.60% |
Methods | 1,191 | |
▷ Static methods | 263 | 22.08% |
▷ Public methods | 1,066 | 89.50% |
▷ Protected methods | 115 | 9.66% |
▷ Private methods | 10 | 0.84% |
Functions | 292 | |
▷ Named functions | 291 | 99.66% |
▷ Anonymous functions | 1 | 0.34% |
Constants | 14 | |
▷ Global constants | 6 | 42.86% |
▷ Class constants | 8 | 57.14% |
▷ Public constants | 8 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
45 PNG files occupy 0.17MB with 0.05MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/libraries/prettyPhoto/images/prettyPhoto/dark_rounded/sprite.png | 3.98KB | 2.56KB | ▼ 35.79% |
includes/vendors/cmb2/images/ui-bg_glass_95_fef1ec_1x400.png | 0.12KB | 0.14KB | 0.00% |
assets/libraries/prettyPhoto/images/prettyPhoto/default/sprite_next.png | 1.33KB | 0.39KB | ▼ 70.69% |
includes/vendors/cmb2/images/ui-bg_glass_75_dadada_1x400.png | 0.11KB | 0.16KB | 0.00% |
assets/libraries/prettyPhoto/images/prettyPhoto/facebook/sprite.png | 4.13KB | 2.26KB | ▼ 45.33% |