Benchmarks
Plugin footprint 64% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
Install script ran successfully
Server metrics [RAM: ▲5.90MB] [CPU: ▲37.79ms] 25% from 4 tests
Analyzing server-side resources used by AweBooking - Hotel Booking System
It is recommended to improve the following
- RAM: Total memory usage should be kept under 10MB (currently 10.55MB on /wp-admin/admin.php?awebooking=/calendar)
- CPU: Total CPU usage should be kept under 500.00ms (currently 829.89ms on /wp-admin/admin.php?awebooking=/about)
- Extra RAM: The extra memory usage should kept under 5MB (currently 5.90MB on /wp-admin/admin.php?awebooking=/tools)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 8.96 ▲5.50 | 73.71 ▲32.60 |
Dashboard /wp-admin | 9.36 ▲6.05 | 156.40 ▲107.65 |
Posts /wp-admin/edit.php | 9.40 ▲6.04 | 87.89 ▲39.63 |
Add New Post /wp-admin/post-new.php | 12.23 ▲6.35 | 134.53 ▲34.34 |
Media Library /wp-admin/upload.php | 9.22 ▲5.99 | 77.08 ▲44.58 |
Bookings /wp-admin/edit.php?post_type=awebooking | 9.63 | 75.46 |
AweBooking /wp-admin/admin.php?page=awebooking | 8.95 | 73.59 |
Amenities /wp-admin/edit-tags.php?taxonomy=hotel_amenity&post_type=room_type | 9.45 | 75.42 |
Settings /wp-admin/admin.php?awebooking=/settings | 10.56 | 84.55 |
Room Types /wp-admin/edit.php?post_type=room_type | 9.59 | 75.69 |
Services /wp-admin/edit.php?post_type=hotel_service | 9.51 | 73.49 |
Hotels /wp-admin/edit.php?post_type=hotel_location | 8.95 | 58.88 |
About /wp-admin/admin.php?awebooking=/about | 9.90 | 829.89 |
Calendar /wp-admin/admin.php?awebooking=/calendar | 10.55 | 95.98 |
Tools /wp-admin/admin.php?awebooking=/tools | 9.90 | 77.35 |
Server storage [IO: ▲14.33MB] [DB: ▲0.03MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
There were no storage issued detected upon installing this plugin
Filesystem: 1,710 new files
Database: 9 new tables, 11 new options
New tables |
---|
wp_awebooking_pricing |
wp_awebooking_booking |
wp_p2p_relationships |
wp_awebooking_rooms |
wp_awebooking_booking_itemmeta |
wp_awebooking_tax_rates |
wp_awebooking_booking_items |
wp_awebooking_availability |
wp_p2p_relationshipmeta |
New WordPress options |
---|
widget_recent-comments |
widget_awebooking_check_availability |
awebooking_db_version |
awebooking_admin_notices |
theysaidso_admin_options |
widget_theysaidso_widget |
can_compress_scripts |
awebooking_settings |
db_upgraded |
awebooking_version |
... |
Browser metrics Passed 4 tests
Checking browser requirements for AweBooking - Hotel Booking System
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,044 ▲309 | 15.65 ▲1.29 | 23.27 ▲21.54 | 38.14 ▼10.91 |
Dashboard /wp-admin | 2,284 ▲96 | 5.80 ▲0.91 | 92.27 ▼17.54 | 38.20 ▲2.67 |
Posts /wp-admin/edit.php | 2,164 ▲75 | 2.01 ▼0.03 | 35.50 ▼2.83 | 30.46 ▼1.60 |
Add New Post /wp-admin/post-new.php | 1,594 ▲73 | 23.02 ▼0.06 | 624.60 ▼14.46 | 64.31 ▼13.92 |
Media Library /wp-admin/upload.php | 1,460 ▲75 | 4.18 ▼0.06 | 101.44 ▼0.48 | 41.50 ▼5.69 |
Bookings /wp-admin/edit.php?post_type=awebooking | 1,335 | 2.68 | 53.96 | 31.92 |
AweBooking /wp-admin/admin.php?page=awebooking | 28 | 0.44 | 0.08 | 3.71 |
Amenities /wp-admin/edit-tags.php?taxonomy=hotel_amenity&post_type=room_type | 1,409 | 2.64 | 38.66 | 29.98 |
Settings /wp-admin/admin.php?awebooking=/settings | 2,421 | 3.39 | 54.02 | 28.88 |
Room Types /wp-admin/edit.php?post_type=room_type | 1,297 | 2.79 | 44.57 | 29.06 |
Services /wp-admin/edit.php?post_type=hotel_service | 1,192 | 2.78 | 42.42 | 30.48 |
Hotels /wp-admin/edit.php?post_type=hotel_location | 28 | 0.44 | 0.08 | 4.12 |
About /wp-admin/admin.php?awebooking=/about | 960 | 2.45 | 35.43 | 51.97 |
Calendar /wp-admin/admin.php?awebooking=/calendar | 1,579 | 3.52 | 59.01 | 37.27 |
Tools /wp-admin/admin.php?awebooking=/tools | 982 | 2.44 | 33.48 | 26.62 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.03MB] 50% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
These items require your attention
- Zombie tables detected upon uninstall: 9 tables
- wp_awebooking_booking_itemmeta
- wp_awebooking_booking
- wp_awebooking_pricing
- wp_p2p_relationships
- wp_p2p_relationshipmeta
- wp_awebooking_tax_rates
- wp_awebooking_availability
- wp_awebooking_booking_items
- wp_awebooking_rooms
- The uninstall procedure has failed, leaving 11 options in the database
- widget_recent-comments
- awebooking_version
- theysaidso_admin_options
- awebooking_settings
- widget_recent-posts
- awebooking_db_version
- awebooking_admin_notices
- widget_awebooking_check_availability
- can_compress_scripts
- db_upgraded
- ...
Smoke tests 25% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
Good news, no errors were detected
SRP 0% from 2 tests
🔹 Tests weight: 20 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
Please take a closer look at the following
- 6× PHP files perform the action of outputting non-empty strings when accessed directly:
- > /wp-content/plugins/awebooking/inc/Admin/Calendar/views/partials/row-divider.php
- > /wp-content/plugins/awebooking/inc/Admin/Calendar/views/partials/row-days.php
- > /wp-content/plugins/awebooking/inc/Admin/Calendar/views/partials/row-events.php
- > /wp-content/plugins/awebooking/inc/Admin/Calendar/views/partials/marker.php
- > /wp-content/plugins/awebooking/templates/_docs.php
- > /wp-content/plugins/awebooking/inc/Admin/Calendar/views/partials/row-heading.php
- 643× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Ruler\\Operator\\VariableOperator' not found in wp-content/plugins/awebooking/vendor/ruler/ruler/src/Ruler/Operator/SymmetricDifference.php:23
- > PHP Fatal error
Uncaught Error: Call to a member function get_id() on null in wp-content/plugins/awebooking/inc/Admin/views/booking/html-service-item.php:4
- > PHP Fatal error
Uncaught Error: Class 'Ruler\\RuleBuilder\\Variable' not found in wp-content/plugins/awebooking/vendor/ruler/ruler/src/Ruler/RuleBuilder/VariableProperty.php:38
- > PHP Fatal error
Uncaught Error: Class 'AweBooking\\Model\\Booking\\Item' not found in wp-content/plugins/awebooking/inc/Model/Booking/Fee_Item.php:5
- > PHP Fatal error
Uncaught Error: Interface 'Monolog\\Formatter\\FormatterInterface' not found in wp-content/plugins/awebooking/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php:21
- > PHP Fatal error
Uncaught Error: Class 'Ruler\\Operator\\VariableOperator' not found in wp-content/plugins/awebooking/vendor/ruler/ruler/src/Ruler/Operator/Floor.php:23
- > PHP Fatal error
require_once(): Failed opening required '/tmp/wordpress-tests-lib/includes/functions.php' (include_path='.:/usr/share/php') in wp-content/plugins/awebooking/awethemes/relationships/tests/bootstrap.php on line 17
- > PHP Fatal error
Uncaught Error: Call to undefined method stdClass::value() in wp-content/plugins/awebooking/vendor/wplibs/form/src/Resources/html/html-group.php:6
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Taxonomy_Base' not found in wp-content/plugins/awebooking/vendor/cmb2/cmb2/includes/types/CMB2_Type_Taxonomy_Select.php:13
- > PHP Fatal error
Uncaught Error: Class 'Roomify\\Bat\\Event\\AbstractEvent' not found in wp-content/plugins/awebooking/vendor/roomify/bat/src/Event/Event.php:13
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
There are user-side issues you should fix
- > GET request to /wp-admin/admin.php?page=awebooking
- > Network (severe)
wp-admin/admin.php?page=awebooking - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
- > GET request to /wp-admin/edit.php?post_type=hotel_location
- > Network (severe)
wp-admin/edit.php?post_type=hotel_location - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
- > GET request to /wp-admin/admin.php?awebooking=/calendar
- > Console-api (severe) in unknown
/wp-content/plugins/awebooking/assets/vendor/flatpickr/flatpickr.min.js?ver=4.5.1 1:44212 TypeError: Cannot read properties of undefined (reading 'push')at Object.onReady (/wp-content/plugins/awebooking/assets/js/admin/admin.min.js?ver=3.2.26:1:16373)at q (/wp-content/plugins/awebooking/assets/vendor/flatpickr/flatpickr.min.js?ver=4.5.1:2:30076)at /wp-content/plugins/awebooking/assets/vendor/flatpickr/flatpickr.min.js?ver=4.5.1:2:43919at r (/wp-content/plugins/awebooking/assets/vendor/flatpickr/flatpickr.min.js?ver=4.5.1:2:43932)at n (/wp-content/plugins/awebooking/assets/vendor/flatpickr/flatpickr.min.js?ver=4.5.1:2:44164)at ve (/wp-content/plugins/awebooking/assets/vendor/flatpickr/flatpickr.min.js?ver=4.5.1:2:44500)at e.value (/wp-content/plugins/awebooking/assets/js/admin/page-calendar.min.js?ver=3.2.26:1:3399)at new e (/wp-content/plugins/awebooking/assets/js/admin/page-calendar.min.js?ver=3.2.26:1:1422)at HTMLDocument. (/wp-content/plugins/awebooking/assets/js/admin/page-calendar.min.js?ver=3.2.26:1:3612)at e (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1:2:26990)
- > GET request to /wp-admin/admin.php?awebooking=/calendar
- > Console-api (warning) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1 1:28609 "jQuery.Deferred exception: Cannot read properties of undefined (reading '_tippy')" "TypeError: Cannot read properties of undefined (reading '_tippy')\n at n.initialize (/wp-content/plugins/awebooking/assets/js/admin/schedule-calendar.min.js?ver=3.2.26:1:2688)\n at h.View (/wp-includes/js/backbone.min.js?ver=1.4.1:2:14648)\n at new n (/wp-includes/js/backbone.min.js?ver=1.4.1:2:23485)\n at new e (/wp-content/plugins/awebooking/assets/js/admin/page-calendar.min.js?ver=3.2.26:1:1454)\n at HTMLDocument.\u003Canonymous> (/wp-content/plugins/awebooking/assets/js/admin/page-calendar.min.js?ver=3.2.26:1:3612)\n at e (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1:2:26990)\n at t (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1:2:27292)" undefined
- > GET request to /wp-admin/admin.php?awebooking=/calendar
- > Javascript (severe) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1 1:28721 Uncaught TypeError: Cannot read properties of undefined (reading '_tippy')
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
These attributes need your attention:
- Screenshots: Screenshot #7 (Plugin settings) image required
awebooking/awebooking.php Passed 13 tests
"AweBooking - Hotel Booking System" version 3.2.26's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
48 characters long description:
A simple hotel reservation system for WordPress.
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short review of files and their extensions; it is not recommended to include executable files
Everything looks great! No dangerous files found in this plugin214,368 lines of code in 1,510 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JavaScript | 112 | 16,647 | 24,457 | 80,370 |
PHP | 1,013 | 19,207 | 52,170 | 72,546 |
PO File | 120 | 14,315 | 18,502 | 32,323 |
CSS | 33 | 1,989 | 1,325 | 14,739 |
Sass | 80 | 1,650 | 176 | 8,364 |
JSON | 28 | 0 | 0 | 2,210 |
SVG | 108 | 0 | 94 | 1,573 |
HTML | 2 | 110 | 0 | 1,147 |
Markdown | 6 | 130 | 0 | 462 |
JSX | 1 | 94 | 17 | 366 |
XML | 4 | 19 | 19 | 115 |
Bourne Shell | 1 | 22 | 8 | 100 |
YAML | 1 | 8 | 1 | 49 |
Dockerfile | 1 | 3 | 3 | 4 |
PHP code Passed 2 tests
This is a short overview of cyclomatic complexity and code structure for this plugin
Although this was not an exhaustive test, there were no cyclomatic complexity issues detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.37 |
Average class complexity | 9.83 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 225.00 |
Average method complexity | 2.26 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 42.00 |
Code structure | ||
---|---|---|
Namespaces | 139 | |
Interfaces | 69 | |
Traits | 45 | |
Classes | 712 | |
▷ Abstract classes | 53 | 7.44% |
▷ Concrete classes | 659 | 92.56% |
▷ Final classes | 4 | 0.61% |
Methods | 6,193 | |
▷ Static methods | 412 | 6.65% |
▷ Public methods | 5,012 | 80.93% |
▷ Protected methods | 1,017 | 16.42% |
▷ Private methods | 164 | 2.65% |
Functions | 615 | |
▷ Named functions | 351 | 57.07% |
▷ Anonymous functions | 264 | 42.93% |
Constants | 321 | |
▷ Global constants | 26 | 8.10% |
▷ Class constants | 295 | 91.90% |
▷ Public constants | 295 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
16 compressed PNG files occupy 0.03MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
vendor/cmb2/cmb2/images/ui-bg_glass_65_ffffff_1x400.png | 0.10KB | 0.10KB | ▼ 5.71% |
vendor/cmb2/cmb2/images/ui-bg_glass_95_fef1ec_1x400.png | 0.12KB | 0.14KB | 0.00% |
vendor/cmb2/cmb2/images/ui-icons_888888_256x240.png | 5.23KB | 4.11KB | ▼ 21.49% |
vendor/cmb2/cmb2/images/ui-icons_222222_256x240.png | 4.27KB | 4.11KB | ▼ 3.78% |
vendor/cmb2/cmb2/images/ui-bg_glass_75_dadada_1x400.png | 0.11KB | 0.16KB | 0.00% |