Benchmarks
Plugin footprint 64% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Installer ran successfully
Server metrics [RAM: ▲19.12MB] [CPU: ▲186.23ms] 25% from 4 tests
An overview of server-side resources used by Easy Digital Downloads – Sell Digital Files (eCommerce Store & Payments Made Easy)
Please fix the following
- RAM: Total memory usage should be kept under 10MB (currently 22.43MB on /wp-admin/edit.php?post_type=download&page=edd-customers)
- CPU: You should keep total CPU usage under 500.00ms (currently 1,146.96ms on /wp-admin/post-new.php?post_type=download)
- Extra RAM: Extra memory usage should kept under 5MB (currently 19.12MB on /wp-admin/edit.php?post_type=download&page=edd-customers)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 22.75 ▲19.28 | 268.61 ▲229.94 |
Dashboard /wp-admin | 22.42 ▲19.11 | 424.20 ▲379.04 |
Posts /wp-admin/edit.php | 22.43 ▲19.07 | 189.40 ▲140.18 |
Add New Post /wp-admin/post-new.php | 25.44 ▲19.55 | 258.95 ▲162.52 |
Media Library /wp-admin/upload.php | 22.25 ▲19.01 | 244.12 ▲212.28 |
Add New /wp-admin/post-new.php?post_type=download | 25.73 | 1,146.96 |
Extensions /wp-admin/edit.php?post_type=download&page=edd-addons | 23.15 | 235.22 |
Tools /wp-admin/edit.php?post_type=download&page=edd-tools | 22.33 | 185.51 |
Downloads /wp-admin/edit.php?post_type=download | 22.47 | 184.29 |
Orders /wp-admin/edit.php?post_type=download&page=edd-payment-history | 22.81 | 191.71 |
Setup /wp-admin/edit.php?post_type=download&page=edd-onboarding-wizard | 22.61 | 197.90 |
EDD Upgrades /wp-admin/admin.php?page=edd-upgrades | 22.21 | 176.14 |
Discounts /wp-admin/edit.php?post_type=download&page=edd-discounts | 22.45 | 189.41 |
Settings /wp-admin/edit.php?post_type=download&page=edd-settings | 22.64 | 196.71 |
Customers /wp-admin/edit.php?post_type=download&page=edd-customers | 22.43 | 201.73 |
Server storage [IO: ▲15.03MB] [DB: ▲0.22MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
The plugin installed successfully
Filesystem: 2,436 new files
Database: 23 new tables, 39 new options
New tables |
---|
wp_edd_order_adjustments |
wp_edd_logs_file_downloads |
wp_edd_order_itemmeta |
wp_edd_notes |
wp_edd_customermeta |
wp_edd_logs_api_requests |
wp_edd_logs_api_requestmeta |
wp_edd_order_adjustmentmeta |
wp_edd_customers |
wp_edd_notifications |
... |
New WordPress options |
---|
widget_theysaidso_widget |
edd_version |
wpdb_edd_order_transactions_version |
edd_completed_upgrades |
wpdb_edd_notemeta_version |
widget_edd_product_details |
wpdb_edd_notifications_version |
wpdb_edd_logmeta_version |
wpdb_edd_order_adjustmentmeta_version |
wpdb_edd_order_itemmeta_version |
... |
Browser metrics Passed 4 tests
An overview of browser requirements for Easy Digital Downloads – Sell Digital Files (eCommerce Store & Payments Made Easy)
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,770 ▲1,008 | 16.29 ▲1.94 | 10.35 ▲8.49 | 47.10 ▲2.55 |
Dashboard /wp-admin | 3,012 ▲838 | 6.71 ▲1.08 | 124.33 ▲25.05 | 128.72 ▲86.76 |
Posts /wp-admin/edit.php | 2,245 ▲145 | 2.41 ▲0.40 | 41.09 ▼0.02 | 32.03 ▼6.37 |
Add New Post /wp-admin/post-new.php | 2,136 ▲610 | 23.69 ▲0.49 | 667.84 ▲32.80 | 34.14 ▼20.27 |
Media Library /wp-admin/upload.php | 1,535 ▲138 | 4.12 ▼0.05 | 100.72 ▼1.57 | 43.31 ▲0.45 |
Add New /wp-admin/post-new.php?post_type=download | 7,233 | 20.32 | 938.69 | 49.38 |
Extensions /wp-admin/edit.php?post_type=download&page=edd-addons | 5,819 | 4.50 | 94.20 | 79.58 |
Tools /wp-admin/edit.php?post_type=download&page=edd-tools | 1,980 | 4.69 | 70.33 | 92.25 |
Downloads /wp-admin/edit.php?post_type=download | 2,178 | 4.67 | 83.08 | 81.47 |
Orders /wp-admin/edit.php?post_type=download&page=edd-payment-history | 3,995 | 5.74 | 101.44 | 104.82 |
Setup /wp-admin/edit.php?post_type=download&page=edd-onboarding-wizard | 3,665 | 5.60 | 88.65 | 110.44 |
EDD Upgrades /wp-admin/admin.php?page=edd-upgrades | 3,920 | 8.53 | 136.19 | 45.59 |
Discounts /wp-admin/edit.php?post_type=download&page=edd-discounts | 2,165 | 4.47 | 68.88 | 93.00 |
Settings /wp-admin/edit.php?post_type=download&page=edd-settings | 3,704 | 5.07 | 80.48 | 95.84 |
Customers /wp-admin/edit.php?post_type=download&page=edd-customers | 2,049 | 4.46 | 65.23 | 86.50 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.22MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the following
- The uninstall procedure failed, leaving 23 tables in the database
- wp_edd_order_addresses
- wp_edd_notes
- wp_edd_ordermeta
- wp_edd_adjustments
- wp_edd_order_adjustments
- wp_edd_logs_file_downloadmeta
- wp_edd_customermeta
- wp_edd_order_items
- wp_edd_notifications
- wp_edd_logs_file_downloads
- ...
- Zombie WordPress options detected upon uninstall: 39 options
- wpdb_edd_adjustments_version
- wpdb_edd_order_items_version
- wpdb_edd_notifications_version
- widget_edd_product_details
- wpdb_edd_logmeta_version
- edd_activation_date
- wpdb_edd_logs_api_requests_version
- wpdb_edd_order_adjustmentmeta_version
- widget_edd_cart_widget
- wpdb_edd_customers_version
- ...
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
These errors were triggered by the plugin
- 2 occurences, only the last one shown
- > GET request to /wp-admin/edit.php?post_type=download&page=edd-customers
- > request to
- > Notice in wp-config.php+20
Undefined index: REQUEST_METHOD
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
- 3× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/easy-digital-downloads/libraries/Stripe/update_certs.php
- > /wp-content/plugins/easy-digital-downloads/includes/blocks/views/downloads/content.php
- > /wp-content/plugins/easy-digital-downloads/libraries/Stripe/build.php
- 616× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'EDD\\Vendor\\Stripe\\Service\\AbstractService' not found in wp-content/plugins/easy-digital-downloads/libraries/Stripe/lib/Service/FinancialConnections/SessionService.php:7
- > PHP Fatal error
Uncaught Error: Call to undefined function get_the_ID() in wp-content/plugins/easy-digital-downloads/includes/blocks/views/downloads/footer.php:4
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/easy-digital-downloads/includes/gateways/stripe/includes/admin/upgrade-functions.php:13
- > PHP Fatal error
Uncaught Error: Class 'EDD\\Vendor\\Stripe\\ApiResource' not found in wp-content/plugins/easy-digital-downloads/libraries/Stripe/lib/Reporting/ReportRun.php:30
- > PHP Fatal error
Uncaught Error: Call to undefined function EDD\\Gateways\\PayPal\\add_action() in wp-content/plugins/easy-digital-downloads/includes/gateways/paypal/refunds.php:25
- > PHP Fatal error
Uncaught Error: Class 'EDD\\Vendor\\Stripe\\ApiResource' not found in wp-content/plugins/easy-digital-downloads/libraries/Stripe/lib/TestHelpers/TestClock.php:24
- > PHP Warning
require_once(ABSPATHwp-admin/includes/class-wp-upgrader-skin.php): failed to open stream: No such file or directory in wp-content/plugins/easy-digital-downloads/src/Admin/Installers/PluginSilentUpgraderSkin.php on line 6
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/easy-digital-downloads/includes/admin/reporting/views/export-sales.php:2
- > PHP Notice
Undefined variable: order in wp-content/plugins/easy-digital-downloads/includes/blocks/views/orders/receipt-items.php on line 4
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/easy-digital-downloads/libraries/Symfony/Contracts/Translation/Test/TranslatorTest.php:31
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
Everything seems fine on the user side
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
Please fix the following attributes:
- Screenshots: Please add an image for screenshot #1 (Detailed and actionable reports)
easy-digital-downloads/easy-digital-downloads.php Passed 13 tests
The main PHP script in "Easy Digital Downloads – Sell Digital Files (eCommerce Store & Payments Made Easy)" version 3.2.5 is automatically included on every request by WordPress
56 characters long description:
The easiest way to sell digital products with WordPress.
Code Analysis 3% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | Executable files are considered dangerous and should not be included with any WordPress plugin
Almost there! Just fix the following issues
- Even if your plugin relies on executable files (for example a companion app), never distribute executable files with your plugin
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
- ☣ wp-content/plugins/easy-digital-downloads/libraries/Stripe/data/ca-certificates.crt
- .bat - Batch File in Windows
- ☣ wp-content/plugins/easy-digital-downloads/libraries/Carbon/bin/carbon.bat
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 1,869 | 36,626 | 102,174 | 149,916 |
JSON | 33 | 0 | 0 | 35,990 |
XSD | 3 | 91 | 48 | 2,842 |
Markdown | 13 | 933 | 0 | 1,929 |
JavaScript | 90 | 101 | 141 | 1,390 |
XML | 2 | 9 | 16 | 1,123 |
Sass | 32 | 147 | 0 | 798 |
SVG | 30 | 0 | 2 | 509 |
CSS | 55 | 4 | 15 | 69 |
make | 1 | 10 | 0 | 29 |
DOS Batch | 1 | 0 | 0 | 4 |
PHP code 50% from 2 tests
Analyzing cyclomatic complexity and code structure
These items need your attention
- Cyclomatic complexity of methods has to be reduced to less than 100 (currently 128)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.42 |
Average class complexity | 13.69 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 367.00 |
Average method complexity | 3.13 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 128.00 |
Code structure | ||
---|---|---|
Namespaces | 153 | |
Interfaces | 47 | |
Traits | 42 | |
Classes | 794 | |
▷ Abstract classes | 46 | 5.79% |
▷ Concrete classes | 748 | 94.21% |
▷ Final classes | 57 | 7.62% |
Methods | 5,563 | |
▷ Static methods | 687 | 12.35% |
▷ Public methods | 4,147 | 74.55% |
▷ Protected methods | 530 | 9.53% |
▷ Private methods | 886 | 15.93% |
Functions | 2,334 | |
▷ Named functions | 1,955 | 83.76% |
▷ Anonymous functions | 379 | 16.24% |
Constants | 996 | |
▷ Global constants | 31 | 3.11% |
▷ Class constants | 965 | 96.89% |
▷ Public constants | 962 | 99.69% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
77 compressed PNG files occupy 0.42MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/images/screenshots/17checkout.png | 5.77KB | 6.15KB | 0.00% |
assets/images/icons/icon-arrow-down.png | 0.24KB | 0.24KB | 0.00% |
assets/images/screenshots/order-details.png | 10.61KB | 12.30KB | 0.00% |
assets/images/edd-cpt.png | 0.43KB | 0.44KB | 0.00% |
assets/images/promo/brands/plugin-seedprod.png | 12.04KB | 4.79KB | ▼ 60.17% |