Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
The plugin installed gracefully, with no errors
Server metrics [RAM: ▲0.09MB] [CPU: ▼10.27ms] Passed 4 tests
Server-side resources used by AfterShip Tracking - All-In-One WooCommerce Order Tracking (Free plan available)
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.56 ▲0.10 | 37.48 ▼7.56 |
Dashboard /wp-admin | 3.40 ▲0.10 | 47.58 ▼4.04 |
Posts /wp-admin/edit.php | 3.51 ▲0.16 | 47.13 ▼8.95 |
Add New Post /wp-admin/post-new.php | 5.98 ▲0.09 | 85.91 ▼20.51 |
Media Library /wp-admin/upload.php | 3.32 ▲0.09 | 41.46 ▲4.97 |
Server storage [IO: ▲3.51MB] [DB: ▲0.00MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
There were no storage issued detected upon installing this plugin
Filesystem: 138 new files
Database: no new tables, 6 new options
New WordPress options |
---|
can_compress_scripts |
widget_recent-posts |
widget_theysaidso_widget |
theysaidso_admin_options |
widget_recent-comments |
db_upgraded |
Browser metrics Passed 4 tests
AfterShip Tracking - All-In-One WooCommerce Order Tracking (Free plan available): an overview of browser usage
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,790 ▲54 | 14.24 ▼0.17 | 1.65 ▼0.00 | 37.99 ▼5.40 |
Dashboard /wp-admin | 2,198 ▲24 | 5.63 ▲0.09 | 92.95 ▼12.78 | 42.89 ▼5.51 |
Posts /wp-admin/edit.php | 2,100 ▼3 | 1.95 ▼0.06 | 39.10 ▼5.50 | 36.22 ▼5.99 |
Add New Post /wp-admin/post-new.php | 1,531 ▼3 | 23.38 ▼1.74 | 650.93 ▼25.89 | 54.23 ▼8.69 |
Media Library /wp-admin/upload.php | 1,400 ▲3 | 4.19 ▼0.05 | 110.96 ▲12.21 | 47.94 ▲6.02 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
Please fix the following items
- This plugin does not fully uninstall, leaving 6 options in the database
- theysaidso_admin_options
- db_upgraded
- widget_recent-comments
- can_compress_scripts
- widget_recent-posts
- widget_theysaidso_widget
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
The smoke test was a success, however most plugin functionality was not tested
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 items
- 6× PHP files trigger errors when accessed directly with GET requests:
- > PHP Warning
Use of undefined constant AFTERSHIP_PATH - assumed 'AFTERSHIP_PATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/aftership-woocommerce-tracking/includes/api/aftership/v1/class-am-rest-settings-controller.php on line 5
- > PHP Fatal error
Uncaught Error: Class 'WP_REST_Controller' not found in wp-content/plugins/aftership-woocommerce-tracking/includes/api/class-am-rest-controller.php:5
- > PHP Warning
include(): Failed opening 'AFTERSHIP_PATH/includes/api/class-am-rest-controller.php' for inclusion (include_path='.:/usr/share/php') in wp-content/plugins/aftership-woocommerce-tracking/includes/api/aftership/v1/class-am-rest-settings-controller.php on line 5
- > PHP Fatal error
Uncaught Error: Class 'AM_REST_Controller' not found in wp-content/plugins/aftership-woocommerce-tracking/includes/api/aftership/v1/class-am-rest-settings-controller.php:10
- > PHP Fatal error
Uncaught Error: Class 'WP_REST_Controller' not found in wp-content/plugins/aftership-woocommerce-tracking/includes/api/class-am-rest-controller.php:5
- > PHP Warning
include(AFTERSHIP_PATH/includes/api/class-am-rest-controller.php): failed to open stream: No such file or directory in wp-content/plugins/aftership-woocommerce-tracking/includes/api/aftership/v1/class-am-rest-settings-controller.php on line 5
- > PHP Warning
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine, but this is not an exhaustive test
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 88% from 16 tests
The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
These attributes need your attention:
- Screenshots: Screenshot #1 (Shipments dashboard) image not found
- Tags: Please reduce the number of tags, currently 13 tag instead of maximum 10
aftership-woocommerce-tracking/aftership-woocommerce-tracking.php 92% from 13 tests
The primary PHP file in "AfterShip Tracking - All-In-One WooCommerce Order Tracking (Free plan available)" version 1.17.6 is used by WordPress to initiate all plugin functionality
The following require your attention:
- Plugin Name: A shorter plugin name is better (currently 80 characters long instead of max. 70)
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | There should be no dangerous file extensions present in any WordPress plugin
Success! There were no dangerous files found in this plugin26,638 lines of code in 111 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JavaScript | 15 | 57 | 23 | 9,406 |
JSON | 6 | 0 | 0 | 8,978 |
PHP | 35 | 1,042 | 2,016 | 5,698 |
TypeScript | 22 | 66 | 9 | 1,013 |
SVG | 8 | 0 | 0 | 629 |
CSS | 15 | 98 | 198 | 547 |
Sass | 7 | 14 | 0 | 314 |
Markdown | 1 | 13 | 0 | 20 |
XML | 1 | 2 | 0 | 19 |
HTML | 1 | 1 | 1 | 14 |
PHP code Passed 2 tests
Analyzing logical lines of code, cyclomatic complexity, and other code metrics
No complexity issues detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.42 |
Average class complexity | 27.65 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 126.00 |
Average method complexity | 4.17 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 36.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 1 | |
Traits | 0 | |
Classes | 25 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 25 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 225 | |
▷ Static methods | 16 | 7.11% |
▷ Public methods | 185 | 82.22% |
▷ Protected methods | 9 | 4.00% |
▷ Private methods | 31 | 13.78% |
Functions | 11 | |
▷ Named functions | 10 | 90.91% |
▷ Anonymous functions | 1 | 9.09% |
Constants | 29 | |
▷ Global constants | 14 | 48.28% |
▷ Class constants | 15 | 51.72% |
▷ Public constants | 15 | 100.00% |
Plugin size 0% from 2 tests
Image compression 0% from 2 tests
It is recommended to compress PNG files in your plugin to minimize bandwidth usage
16 PNG files occupy 1.46MB with 1.19MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
(invalid) assets/screenshot-6.png | 78.29KB | 0.00KB | ▼ 100.00% |
(invalid) assets/screenshot-1.png | 58.76KB | 0.00KB | ▼ 100.00% |
assets/banner-1544x500.png | 138.88KB | 62.72KB | ▼ 54.84% |
assets/icon-128x128.png | 2.92KB | 1.41KB | ▼ 51.62% |
(invalid) assets/screenshot-5.png | 73.42KB | 0.00KB | ▼ 100.00% |