Benchmarks
Plugin footprint 64% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲10.56MB] [CPU: ▲65.52ms] 50% from 4 tests
This is a short check of server-side resources used by Ninja Shop - The Quickest Way to Start Selling
Please fix the following
- RAM: Total memory usage should be kept under 10MB (currently 14.16MB on /wp-admin/admin.php?page=it-exchange-help)
- Extra RAM: The extra memory usage must be under 5MB (currently 10.56MB on /wp-admin/admin.php?page=it-exchange-help)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 14.36 ▲10.90 | 111.23 ▲73.22 |
Dashboard /wp-admin | 14.46 ▲11.11 | 209.97 ▲143.90 |
Posts /wp-admin/edit.php | 14.34 ▲10.98 | 127.50 ▲82.49 |
Add New Post /wp-admin/post-new.php | 15.29 ▲9.40 | 110.34 ▲11.62 |
Media Library /wp-admin/upload.php | 14.21 ▲10.97 | 125.96 ▲94.75 |
Settings /wp-admin/admin.php?page=it-exchange-settings | 14.58 | 112.99 |
Payments /wp-admin/edit.php?post_type=it_exchange_tran | 14.28 | 105.85 |
Tools /wp-admin/admin.php?page=it-exchange-tools | 14.41 | 95.59 |
Features /wp-admin/admin.php?page=it-exchange-addons | 14.43 | 109.22 |
Help /wp-admin/admin.php?page=it-exchange-help | 14.16 | 97.02 |
Server storage [IO: ▲7.99MB] [DB: ▲0.03MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
This plugin installed successfully
Filesystem: 1,201 new files
Database: 10 new tables, 24 new options
New tables |
---|
wp_ninja_shop_refunds |
wp_ninja_shop_sessions |
wp_ninja_shop_address |
wp_ninja_shop_logs |
wp_ninja_shop_payment_tokens |
wp_ninja_shop_line_items |
wp_ninja_shop_payment_tokensmeta |
wp_ninja_shop_refundsmeta |
wp_ninja_shop_line_itemsmeta |
wp_ninja_shop_transactions |
New WordPress options |
---|
widget_recent-posts |
theysaidso_admin_options |
can_compress_scripts |
it-exchange-versions |
wp_ninja_shop_line_items_version |
wp_ninja_shop_logs_version |
db_upgraded |
wp_ninja_shop_address_version |
wp_ninja_shop_transactions_version |
it-storage-exchange_emails |
... |
Browser metrics Passed 4 tests
Ninja Shop - The Quickest Way to Start Selling: an overview of browser usage
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,963 ▲217 | 13.67 ▼0.71 | 1.62 ▼0.12 | 27.72 ▼14.08 |
Dashboard /wp-admin | 2,359 ▲168 | 5.89 ▲1.01 | 114.13 ▼10.71 | 52.84 ▲9.65 |
Posts /wp-admin/edit.php | 2,156 ▲67 | 2.05 ▲0.02 | 40.57 ▲3.64 | 40.88 ▲6.35 |
Add New Post /wp-admin/post-new.php | 1,613 ▲94 | 19.64 ▼3.61 | 701.10 ▲4.94 | 57.96 ▲13.05 |
Media Library /wp-admin/upload.php | 1,457 ▲69 | 4.27 ▲0.10 | 110.83 ▲12.31 | 51.09 ▲10.68 |
Settings /wp-admin/admin.php?page=it-exchange-settings | 4,463 | 7.31 | 164.79 | 92.61 |
Payments /wp-admin/edit.php?post_type=it_exchange_tran | 1,177 | 2.04 | 40.40 | 34.48 |
Tools /wp-admin/admin.php?page=it-exchange-tools | 888 | 1.86 | 35.43 | 28.49 |
Features /wp-admin/admin.php?page=it-exchange-addons | 1,399 | 1.90 | 35.97 | 57.03 |
Help /wp-admin/admin.php?page=it-exchange-help | 883 | 1.87 | 38.74 | 31.81 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.03MB] 50% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
Please fix the following items
- Zombie tables were found after uninstall: 10 tables
- wp_ninja_shop_refunds
- wp_ninja_shop_line_itemsmeta
- wp_ninja_shop_payment_tokensmeta
- wp_ninja_shop_line_items
- wp_ninja_shop_address
- wp_ninja_shop_transactions
- wp_ninja_shop_refundsmeta
- wp_ninja_shop_sessions
- wp_ninja_shop_logs
- wp_ninja_shop_payment_tokens
- This plugin does not fully uninstall, leaving 24 options in the database
- it-storage-exchange_settings_general
- wp_ninja_shop_line_items_version
- widget_recent-comments
- wp_ninja_shop_logs_version
- can_compress_scripts
- db_upgraded
- theysaidso_admin_options
- it-exchange-hide-template-update-nag
- it-exchange-versions
- wp_ninja_shop_refundsmeta_version
- ...
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
These errors were triggered by the plugin
- > GET request to /wp-admin/admin.php?page=it-exchange-settings
- > Deprecated in wp-content/plugins/ninja-shop/lib/admin/views/settings/general.php+235
implode(): Passing glue string after array is deprecated. Swap the parameters
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please fix the following items
- 1× PHP files perform the action of outputting non-empty strings when accessed directly:
- > /wp-content/plugins/ninja-shop/lib/super-widget/ajax.php
- 1039× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/ninja-shop/core-addons/transaction-methods/paypal-standard/init.php:20
- > PHP Fatal error
Uncaught Error: Class 'IronBound\\DB\\Builder' not found in wp-content/plugins/ninja-shop/vendor/ironbound/db/tests/Stub/builder.php:20
- > PHP Fatal error
Uncaught Error: Interface 'IT_Theme_API' not found in wp-content/plugins/ninja-shop/api/theme/billing.php:8
- > PHP Fatal error
Uncaught Error: Call to undefined function do_action() in wp-content/plugins/ninja-shop/lib/templates/content-registration.php:20
- > PHP Fatal error
Uncaught Error: Interface 'IT_Exchange_Email_Middleware' not found in wp-content/plugins/ninja-shop/lib/email-notifications/middleware/class.style-links.php:12
- > PHP Fatal error
Uncaught Error: Class 'IronBound\\DB\\Tests\\TestCase' not found in wp-content/plugins/ninja-shop/vendor/ironbound/db/tests/unit/query/tag/test-order.php:19
- > PHP Fatal error
Uncaught Error: Class 'IronBound\\DB\\Tests\\TestCase' not found in wp-content/plugins/ninja-shop/vendor/ironbound/db/tests/integration/test-trash.php:23
- > PHP Fatal error
Uncaught Error: Class 'Doctrine\\Tests\\DoctrineTestCase' not found in wp-content/plugins/ninja-shop/vendor/doctrine/inflector/tests/Doctrine/Tests/Common/Inflector/InflectorTest.php:8
- > PHP Fatal error
Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/ninja-shop/core-addons/taxes/taxes-canada/lib/addon-settings.php:145
- > PHP Fatal error
Uncaught Error: Class 'JsonSchema\\Constraints\\Constraint' not found in wp-content/plugins/ninja-shop/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/EnumConstraint.php:20
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
No browser issues were found
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
5 plugin tags: store, e-commerce, sales, sell, ecommerce
ninja-shop/init.php 85% from 13 tests
The main file in "Ninja Shop - The Quickest Way to Start Selling" v. 1.1.11 serves as a complement to information provided in readme.txt and as the entry point to the plugin
The following require your attention:
- Main file name: The principal plugin file should be the same as the plugin slug ("ninja-shop.php" instead of "init.php")
- Text Domain: The text domain is optional since WordPress version 4.6; if you do specify it, it must be the same as the plugin slug
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
There were no executable files found in this plugin115,176 lines of code in 1,468 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 1,298 | 26,456 | 57,630 | 87,259 |
JavaScript | 62 | 2,427 | 2,389 | 7,877 |
PO File | 2 | 3,171 | 3,844 | 7,690 |
SVG | 5 | 0 | 3 | 3,902 |
Sass | 6 | 245 | 8 | 2,748 |
CSS | 43 | 387 | 196 | 2,677 |
Markdown | 14 | 437 | 0 | 1,326 |
JSON | 14 | 0 | 0 | 911 |
HTML | 8 | 69 | 0 | 353 |
XML | 9 | 12 | 4 | 248 |
YAML | 6 | 42 | 8 | 181 |
Bourne Shell | 1 | 3 | 0 | 4 |
PHP code Passed 2 tests
This is a short overview of cyclomatic complexity and code structure for this plugin
This plugin has no cyclomatic complexity problems
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.35 |
Average class complexity | 13.42 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 378.00 |
Average method complexity | 2.60 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 74.00 |
Code structure | ||
---|---|---|
Namespaces | 86 | |
Interfaces | 89 | |
Traits | 6 | |
Classes | 633 | |
▷ Abstract classes | 42 | 6.64% |
▷ Concrete classes | 591 | 93.36% |
▷ Final classes | 8 | 1.35% |
Methods | 5,857 | |
▷ Static methods | 502 | 8.57% |
▷ Public methods | 5,288 | 90.29% |
▷ Protected methods | 517 | 8.83% |
▷ Private methods | 52 | 0.89% |
Functions | 1,049 | |
▷ Named functions | 785 | 74.83% |
▷ Anonymous functions | 264 | 25.17% |
Constants | 109 | |
▷ Global constants | 6 | 5.50% |
▷ Class constants | 103 | 94.50% |
▷ Public constants | 103 | 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
47 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 |
lib/admin/images/addons64.png | 0.84KB | 0.71KB | ▼ 15.62% |
lib/admin/images/failed.png | 17.64KB | 2.37KB | ▼ 86.56% |
lib/assets/styles/images/amex.png | 1.52KB | 1.47KB | ▼ 2.71% |
lib/admin/images/achievement.png | 5.62KB | 1.72KB | ▼ 69.44% |
lib/admin/images/wizard-membership.png | 3.58KB | 0.80KB | ▼ 77.75% |