Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
This plugin's installer ran successfully
Server metrics [RAM: ▲0.93MB] [CPU: ▲10.23ms] Passed 4 tests
Analyzing server-side resources used by Appointment Booking Calendar — Simply Schedule Appointments Booking Plugin
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.38 ▲0.91 | 52.45 ▲12.79 |
Dashboard /wp-admin | 4.28 ▲0.93 | 57.93 ▼1.55 |
Posts /wp-admin/edit.php | 4.33 ▲0.97 | 64.26 ▲21.39 |
Add New Post /wp-admin/post-new.php | 7.06 ▲1.17 | 104.14 ▲8.30 |
Media Library /wp-admin/upload.php | 4.14 ▲0.91 | 53.56 ▲22.12 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 4.31 | 68.33 |
Server storage [IO: ▲20.88MB] [DB: ▲0.04MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
No storage issues were detected
Filesystem: 869 new files
Database: 13 new tables, 21 new options
New tables |
---|
wp_ssa_appointment_type_labels |
wp_ssa_availability |
wp_ssa_revision_meta |
wp_actionscheduler_claims |
wp_ssa_appointments |
wp_ssa_async_actions |
wp_actionscheduler_actions |
wp_ssa_appointment_types |
wp_actionscheduler_groups |
wp_ssa_availability_external |
... |
New WordPress options |
---|
wp_ssa_revisions_db_version |
wp_ssa_availability_db_version |
widget_recent-posts |
wp_ssa_appointment_meta_db_version |
action_scheduler_hybrid_store_demarkation |
wp_ssa_appointment_type_labels_db_version |
wp_ssa_async_actions_db_version |
schema-ActionScheduler_LoggerSchema |
DRA_route_whitelist |
wp_ssa_availability_external_db_version |
... |
Browser metrics Passed 4 tests
A check of browser resources used by Appointment Booking Calendar — Simply Schedule Appointments Booking Plugin
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,855 ▲108 | 14.37 ▼0.43 | 1.73 ▲0.05 | 42.67 ▼1.70 |
Dashboard /wp-admin | 2,258 ▲77 | 5.64 ▼0.01 | 94.49 ▼12.48 | 40.80 ▼1.56 |
Posts /wp-admin/edit.php | 2,124 ▲21 | 1.94 ▼0.05 | 40.85 ▲3.07 | 39.68 ▲7.10 |
Add New Post /wp-admin/post-new.php | 6,389 ▲4,863 | 27.87 ▲4.41 | 885.61 ▲281.73 | 38.00 ▼13.65 |
Media Library /wp-admin/upload.php | 1,427 ▲27 | 4.18 ▼0.03 | 94.39 ▼1.04 | 41.79 ▼1.25 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 1,533 | 1.80 | 25.43 | 36.38 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.04MB] 50% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
Please fix the following items
- Zombie tables detected upon uninstall: 13 tables
- wp_actionscheduler_actions
- wp_ssa_revision_meta
- wp_actionscheduler_logs
- wp_ssa_availability_external
- wp_ssa_appointments
- wp_ssa_appointment_types
- wp_actionscheduler_groups
- wp_ssa_appointment_meta
- wp_ssa_availability
- wp_ssa_async_actions
- ...
- The uninstall procedure has failed, leaving 22 options in the database
- widget_recent-comments
- DRA_route_whitelist
- wp_ssa_availability_db_version
- theysaidso_admin_options
- db_upgraded
- wp_ssa_appointments_db_version
- wp_ssa_appointment_meta_db_version
- wp_ssa_availability_external_db_version
- wp_ssa_async_actions_db_version
- wp_ssa_appointment_types_db_version
- ...
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
The smoke test was a success, however most plugin functionality was not tested
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
The following issues need your attention
- 13× PHP files output non-empty strings when accessed directly via GET requests (only 10 are shown):
- > /wp-content/plugins/simply-schedule-appointments/includes/lib/td-health-check/modals/diff.php
- > /wp-content/plugins/simply-schedule-appointments/includes/lib/td-health-check/assets/mu-plugin/health-check-troubleshooting-mode.php
- > /wp-content/plugins/simply-schedule-appointments/includes/lib/td-health-check/health-check.php
- > /wp-content/plugins/simply-schedule-appointments/templates/ssa-logs/revisions.php
- > /wp-content/plugins/simply-schedule-appointments/includes/lib/td-health-check/pages/phpinfo.php
- > /wp-content/plugins/simply-schedule-appointments/templates/ssa-logs/revisions-meta.php
- > /wp-content/plugins/simply-schedule-appointments/includes/lib/td-health-check/pages/site-status.php
- > /wp-content/plugins/simply-schedule-appointments/external/asana/mark-tasks-released.php
- > /wp-content/plugins/simply-schedule-appointments/includes/lib/td-health-check/pages/debug-data.php
- > /wp-content/plugins/simply-schedule-appointments/external/actions-scripts/format-changelog.php
- 342× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Twig\ode\\Expression\\Binary\\AbstractBinary' not found in wp-content/plugins/simply-schedule-appointments/vendor/twig/twig/src/Node/Expression/Binary/NotInBinary.php:16
- > PHP Fatal error
Uncaught Error: Class 'Twig\\Extension\\AbstractExtension' not found in wp-content/plugins/simply-schedule-appointments/vendor/twig/twig/src/Extension/CoreExtension.php:75
- > PHP Fatal error
Uncaught Error: Class 'CronExpression_AbstractField' not found in wp-content/plugins/simply-schedule-appointments/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfMonthField.php:21
- > PHP Fatal error
Uncaught Error: Class 'Twig\ode\\Expression\\AbstractExpression' not found in wp-content/plugins/simply-schedule-appointments/vendor/twig/twig/src/Node/Expression/ParentExpression.php:22
- > PHP Warning
Invalid argument supplied for foreach() in wp-content/plugins/simply-schedule-appointments/templates/ssa-logs/revisions-meta.php on line 55
- > PHP Fatal error
Uncaught Error: Class 'SSA_Settings_Schema' not found in wp-content/plugins/simply-schedule-appointments/includes/class-styles-settings.php:14
- > PHP Fatal error
Uncaught Error: Class 'TD_DB_Model' not found in wp-content/plugins/simply-schedule-appointments/includes/lib/td-util/class-td-async-action-model.php:2
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_FinishedAction' not found in wp-content/plugins/simply-schedule-appointments/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_CanceledAction.php:9
- > PHP Fatal error
require_once(): Failed opening required 'ABSPATHwp-admin/includes/class-wp-list-table.php' (include_path='.:/usr/share/php') in wp-content/plugins/simply-schedule-appointments/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php on line 4
- > PHP Fatal error
Uncaught Error: Call to undefined function ssa() in wp-content/plugins/simply-schedule-appointments/templates/customer/past-appointments.php:5
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
No browser issues were found
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
These attributes need to be fixed:
- Tags: Too many tags (12 tag instead of maximum 10); only the first 5 tags are used in your directory listing
simply-schedule-appointments/simply-schedule-appointments.php Passed 13 tests
The primary PHP file in "Appointment Booking Calendar — Simply Schedule Appointments Booking Plugin" version 1.6.6.1 is used by WordPress to initiate all plugin functionality
27 characters long description:
Easy appointment scheduling
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Success! There were no dangerous files found in this plugin79,924 lines of code in 712 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 588 | 14,248 | 26,388 | 68,574 |
Markdown | 16 | 1,462 | 0 | 3,951 |
JavaScript | 26 | 374 | 1,347 | 2,811 |
SVG | 47 | 0 | 0 | 2,407 |
JSON | 10 | 0 | 0 | 1,457 |
CSS | 17 | 110 | 15 | 544 |
JSX | 1 | 10 | 9 | 87 |
HTML | 6 | 1 | 6 | 83 |
reStructuredText | 1 | 8 | 5 | 10 |
PHP code 50% from 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
It is recommended to fix the following
- Cyclomatic complexity of methods should be reduced to less than 100 (currently 120)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.40 |
Average class complexity | 15.64 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 181.00 |
Average method complexity | 2.96 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 120.00 |
Code structure | ||
---|---|---|
Namespaces | 39 | |
Interfaces | 44 | |
Traits | 3 | |
Classes | 477 | |
▷ Abstract classes | 39 | 8.18% |
▷ Concrete classes | 438 | 91.82% |
▷ Final classes | 106 | 24.20% |
Methods | 3,956 | |
▷ Static methods | 486 | 12.29% |
▷ Public methods | 3,478 | 87.92% |
▷ Protected methods | 217 | 5.49% |
▷ Private methods | 261 | 6.60% |
Functions | 402 | |
▷ Named functions | 243 | 60.45% |
▷ Anonymous functions | 159 | 39.55% |
Constants | 235 | |
▷ Global constants | 29 | 12.34% |
▷ Class constants | 206 | 87.66% |
▷ Public constants | 182 | 88.35% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
4 PNG files occupy 0.01MB with 0.00MB in potential savings
Potential savings
Compression of 4 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
booking-app-new/public/static/images/payments/stripe.png | 1.48KB | 0.86KB | ▼ 41.56% |
booking-app/public/static/images/payments/stripe.png | 1.48KB | 0.86KB | ▼ 41.56% |
booking-app/dist/static/images/payments/stripe.png | 1.48KB | 0.86KB | ▼ 41.56% |
booking-app-new/dist/static/images/payments/stripe.png | 1.48KB | 0.86KB | ▼ 41.56% |