Benchmarks
Plugin footprint 81% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
The plugin installed gracefully, with no errors
Server metrics [RAM: ▲18.28MB] [CPU: ▲238.81ms] 25% from 4 tests
A check of server-side resources used by Shopping Cart & eCommerce Store
Please fix the following
- RAM: You should keep total memory usage under 10MB (currently 23.32MB on /wp-admin/admin.php?page=wp-easycart-settings)
- Extra RAM: The extra memory usage must be under 5MB (currently 18.28MB on /wp-admin/admin.php?page=wp-easycart-settings)
- Extra CPU: Extra CPU usage must be kept under 200.00ms (currently 238.81ms on /wp-admin/admin.php?page=wp-easycart-settings)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 17.26 ▲13.79 | 135.23 ▲91.89 |
Dashboard /wp-admin | 23.32 ▲19.97 | 328.80 ▲267.53 |
Posts /wp-admin/edit.php | 23.32 ▲19.96 | 367.28 ▲319.67 |
Add New Post /wp-admin/post-new.php | 25.28 ▲19.39 | 378.82 ▲280.33 |
Media Library /wp-admin/upload.php | 23.32 ▲20.09 | 348.61 ▲315.48 |
Upgrade to Premium /wp-admin/admin.php?page=wp-easycart-premium | 23.32 | 311.69 |
Orders 0 /wp-admin/admin.php?page=wp-easycart-orders | 23.32 | 354.42 |
Marketing /wp-admin/admin.php?page=wp-easycart-rates | 23.32 | 398.54 |
Products /wp-admin/admin.php?page=wp-easycart-products | 23.32 | 305.79 |
Diagnostics /wp-admin/admin.php?page=wp-easycart-status | 23.32 | 424.97 |
Registration 0 /wp-admin/admin.php?page=wp-easycart-registration | 23.32 | 319.08 |
Reports /wp-admin/admin.php?page=wp-easycart-dashboard | 23.32 | 345.83 |
Store Status /wp-admin/admin.php?page=wp-easycart-license-status | 23.32 | 387.43 |
Users /wp-admin/admin.php?page=wp-easycart-users | 23.32 | 341.35 |
Settings /wp-admin/admin.php?page=wp-easycart-settings | 23.32 | 355.95 |
Server storage [IO: ▲22.43MB] [DB: ▲0.26MB] 67% from 3 tests
How much does this plugin use your filesystem and database?
These are issues you should consider
- Illegal file modification detected: 25 files (20.99KB) outside of "wp-content/plugins/wp-easycart/" and "wp-content/uploads/"
- (new file) wp-content/plugins/wp-easycart-data/products/.htaccess
- (new file) wp-content/plugins/wp-easycart-data/products/banners/.empty
- (new file) wp-content/plugins/wp-easycart-data/products/pics1/images.php
- (new file) wp-content/plugins/wp-easycart-data/products/categories/.empty
- (new file) wp-content/plugins/wp-easycart-data/design/layout/custom-layout/.empty
- (new file) wp-content/plugins/wp-easycart-data/products/pics2/.htaccess
- (new file) wp-content/plugins/wp-easycart-data/products/pics1/.htaccess
- (new file) wp-content/plugins/wp-easycart-data/design/theme/custom-theme/.empty
- (new file) wp-content/plugins/wp-easycart-data/products/pics1/cache/.empty
- (new file) wp-content/plugins/wp-easycart-data/products/downloads/.empty
- ...
Filesystem: 1,131 new files
Database: 62 new tables, 764 new options
New tables |
---|
ec_giftcard |
ec_affiliate_rule_to_affiliate |
ec_review |
ec_address |
ec_tempcart_data |
ec_pricetier |
ec_order |
ec_zone |
ec_optionitem |
ec_option |
... |
New WordPress options |
---|
ec_option_payfort_response_phrase |
ec_option_disable_easycart_ad |
ec_option_use_delicious_icon |
ec_option_privacy_link |
ec_option_2checkout_thirdparty_secret_word |
ec_option_ship_to_billing_global |
ec_option_stripe_connect_use_sandbox |
ec_option_show_coupons |
ec_option_sagepay_simulator |
ec_option_checklist_tax_choice |
... |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Shopping Cart & eCommerce Store
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,085 ▲323 | 14.19 ▼0.19 | 15.90 ▲14.18 | 40.91 ▼2.39 |
Dashboard /wp-admin | 2,339 ▲161 | 5.65 ▼0.07 | 91.12 ▼14.14 | 86.39 ▲42.36 |
Posts /wp-admin/edit.php | 2,977 ▲877 | 1.98 ▼0.05 | 35.81 ▼0.43 | 33.14 ▼4.19 |
Add New Post /wp-admin/post-new.php | 2,436 ▲910 | 18.32 ▼4.85 | 741.32 ▲113.95 | 42.78 ▼11.92 |
Media Library /wp-admin/upload.php | 1,490 ▲96 | 4.28 ▲0.01 | 97.97 ▲2.80 | 41.97 ▼0.12 |
Upgrade to Premium /wp-admin/admin.php?page=wp-easycart-premium | 1,915 | 3.67 | 71.17 | 21.51 |
Orders 0 /wp-admin/admin.php?page=wp-easycart-orders | 4,360 | 14.47 | 385.50 | 102.38 |
Marketing /wp-admin/admin.php?page=wp-easycart-rates | 3,405 | 4.30 | 79.22 | 109.01 |
Products /wp-admin/admin.php?page=wp-easycart-products | 5,773 | 13.88 | 397.23 | 82.96 |
Diagnostics /wp-admin/admin.php?page=wp-easycart-status | 3,489 | 4.33 | 82.08 | 124.80 |
Registration 0 /wp-admin/admin.php?page=wp-easycart-registration | 3,834 | 12.72 | 308.33 | 98.87 |
Reports /wp-admin/admin.php?page=wp-easycart-dashboard | 5,994 | 6.20 | 204.24 | 86.61 |
Store Status /wp-admin/admin.php?page=wp-easycart-license-status | 3,622 | 4.25 | 79.82 | 113.31 |
Users /wp-admin/admin.php?page=wp-easycart-users | 3,735 | 11.21 | 319.97 | 90.26 |
Settings /wp-admin/admin.php?page=wp-easycart-settings | 3,297 | 4.25 | 81.62 | 95.69 |
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
- The uninstall procedure has failed, leaving 21 options in the database
- can_compress_scripts
- widget_ec_pricepointwidget
- widget_ec_loginwidget
- widget_recent-posts
- widget_ec_searchwidget
- widget_ec_manufacturerwidget
- widget_ec_groupwidget
- widget_ec_colorwidget
- widget_ec_categorywidget
- widget_ec_currencywidget
- ...
Smoke tests 25% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Even though no errors were found, this is by no means an exhaustive test
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 take a closer look at the following
- 12× PHP files perform the task of outputting text when accessed with GET requests (only 10 are shown):
- > /wp-content/plugins/wp-easycart/admin/template/extensions.php
- > /wp-content/plugins/wp-easycart/design/layout/base-responsive-v3/ec_color_widget.php
- > /wp-content/plugins/wp-easycart/design/layout/base-responsive-v3/ec_product_details_page_price.php
- > /wp-content/plugins/wp-easycart/design/layout/base-responsive-v3/ec_store_table_display.php
- > /wp-content/plugins/wp-easycart/admin/template/registration.php
- > /wp-content/plugins/wp-easycart/design/layout/base-responsive-v3/ec_manufacturer_widget.php
- > /wp-content/plugins/wp-easycart/design/layout/base-responsive-v3/ec_pricepoint_widget.php
- > /wp-content/plugins/wp-easycart/design/layout/base-responsive-v3/ec_category_widget.php
- > /wp-content/plugins/wp-easycart/admin/template/settings.php
- > /wp-content/plugins/wp-easycart/design/layout/base-responsive-v3/ec_product_details_page_short_description.php
- 637× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Notice
Undefined index: ec_categories in wp-content/plugins/wp-easycart/design/layout/base-responsive-v3/ec_group_widget.php on line 3
- > PHP Fatal error
Uncaught Error: Call to a member function get_row() on null in wp-content/plugins/wp-easycart/admin/template/settings/taxes/vat-setup.php:3
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/wp-easycart/inc/aws/GuzzleHttp/Psr7/LimitStream.php:12
- > PHP Fatal error
Uncaught Error: Interface 'Aws\\Signature\\SignatureInterface' not found in wp-content/plugins/wp-easycart/inc/aws/Aws/Signature/SignatureV4.php:21
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Promise\\RejectionException' not found in wp-content/plugins/wp-easycart/inc/aws/GuzzleHttp/Promise/AggregateException.php:8
- > PHP Notice
Undefined variable: product in wp-content/plugins/wp-easycart/design/layout/base-responsive-v3/ec_optionitem_low_stock_email.php on line 9
- > PHP Fatal error
Uncaught Error: Using $this when not in object context in wp-content/plugins/wp-easycart/design/layout/base-responsive-v3/ec_account_subscription_details.php:1
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Promise\\PromisorInterface' not found in wp-content/plugins/wp-easycart/inc/aws/Aws/S3/ObjectCopier.php:17
- > PHP Fatal error
Uncaught Error: Class 'Aws\\AbstractConfigurationProvider' not found in wp-content/plugins/wp-easycart/inc/aws/Aws/ClientSideMonitoring/ConfigurationProvider.php:45
- > PHP Fatal error
Uncaught Error: Call to a member function get_results() on null in wp-content/plugins/wp-easycart/admin/template/exporters/export-accounts-csv.php:78
- > PHP Notice
User-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Please take a look at the following user-side issues
- > GET request to /wp-admin/admin.php?page=wp-easycart-premium
- > Javascript (severe) in unknown
/wp-admin/admin.php?page=wp-easycart-premium 153:18 Uncaught DOMException: Failed to execute 'replaceState' on 'History': A h…com/wp-admin/admin.php?page=wp-easycart-premium'.
- 4 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wp-easycart-users
- > Other (warning) in unknown
https://www.youtube.com/s/player/31e0b6d9/www-widgetapi.vflset/www-widgetapi.js 1248 Unrecognized feature: 'web-share'.
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
The readme.txt file uses markdown syntax to describe your plugin to the world
9 plugin tags: stripe, store, shopping cart, facebook, e-commerce...
wp-easycart/wpeasycart.php 85% from 13 tests
The main file in "Shopping Cart & eCommerce Store" v. 5.5.16 serves as a complement to information provided in readme.txt and as the entry point to the plugin
Please take the time to fix the following:
- Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 482 characters long)
- Main file name: The principal plugin file should be the same as the plugin slug ("wp-easycart.php" instead of "wpeasycart.php")
Code Analysis 0% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
Please make sure to remedy the following
- You should never include executable (binary) or otherwise dangerous files in your plugin
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
- ☣ wp-content/plugins/wp-easycart/inc/classes/gateway/cert/api_cert_chain.crt
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 907 | 24,259 | 21,111 | 178,732 |
PO File | 5 | 20,079 | 36,123 | 48,674 |
JSON | 1 | 4 | 0 | 18,102 |
JavaScript | 40 | 2,232 | 276 | 17,157 |
CSS | 15 | 527 | 244 | 6,074 |
PHP code 0% from 2 tests
An short overview of logical lines of code, cyclomatic complexity, and other code metrics
The following items need your attention
- Cyclomatic complexity of classes has to be reduced to less than 1000 (currently 1,952)
- Please reduce cyclomatic complexity of methods to less than 100 (currently 202)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.49 |
Average class complexity | 35.27 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 1,952.00 |
Average method complexity | 4.61 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 202.00 |
Code structure | ||
---|---|---|
Namespaces | 70 | |
Interfaces | 43 | |
Traits | 20 | |
Classes | 501 | |
▷ Abstract classes | 9 | 1.80% |
▷ Concrete classes | 492 | 98.20% |
▷ Final classes | 62 | 12.60% |
Methods | 5,575 | |
▷ Static methods | 707 | 12.68% |
▷ Public methods | 4,344 | 77.92% |
▷ Protected methods | 227 | 4.07% |
▷ Private methods | 1,004 | 18.01% |
Functions | 793 | |
▷ Named functions | 447 | 56.37% |
▷ Anonymous functions | 346 | 43.63% |
Constants | 236 | |
▷ Global constants | 19 | 8.05% |
▷ Class constants | 217 | 91.95% |
▷ Public constants | 217 | 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
83 PNG files occupy 0.34MB with 0.16MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
admin/images/admin-logo-old.png | 34.10KB | 11.66KB | ▼ 65.82% |
design/theme/base-responsive-v3/images/visa_inactive.png | 3.16KB | 2.06KB | ▼ 34.88% |
design/theme/base-responsive-v3/images/visadebit_inactive.png | 3.38KB | 1.91KB | ▼ 43.46% |
design/theme/base-responsive-v3/images/diners_inactive.png | 3.31KB | 2.03KB | ▼ 38.61% |
design/theme/base-responsive-v3/images/myspace-icon.png | 3.94KB | 2.05KB | ▼ 47.99% |