Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Installer ran successfully
Server metrics [RAM: ▲0.01MB] [CPU: ▼3.13ms] Passed 4 tests
Server-side resources used by Easy Digital Downloads Google Sheet Connector
No issues were detected with server-side resource usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.47 ▲0.01 | 36.25 ▼2.86 |
Dashboard /wp-admin | 3.31 ▲0.01 | 43.24 ▼3.79 |
Posts /wp-admin/edit.php | 3.36 ▲0.01 | 42.54 ▼4.20 |
Add New Post /wp-admin/post-new.php | 5.89 ▲0.01 | 88.77 ▲2.71 |
Media Library /wp-admin/upload.php | 3.23 ▲0.01 | 33.14 ▼1.66 |
Freemius Debug [v.2.5.10] /wp-admin/admin.php?page=freemius | 3.01 | 22.77 |
Google Sheet /wp-admin/edit.php?post_type=download&page=edd-gsheet-config | 3.01 | 25.84 |
Server storage [IO: ▲7.95MB] [DB: ▲0.00MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
No storage issues were detected
Filesystem: 1,276 new files
Database: no new tables, 17 new options
New WordPress options |
---|
widget_theysaidso_widget |
gs_edd_sheetId |
fs_accounts |
widget_recent-posts |
gs_edd_feeds |
gs_edd_verify |
gs_edd_settings |
fs_debug_mode |
gs_edd_tab_roles_setting |
gs_edd_checkbox_settings |
... |
Browser metrics Passed 4 tests
A check of browser resources used by Easy Digital Downloads Google Sheet Connector
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,800 ▲54 | 13.18 ▼1.20 | 1.76 ▼0.08 | 38.49 ▼5.80 |
Dashboard /wp-admin | 2,209 ▲21 | 4.86 ▼0.02 | 102.78 ▼5.08 | 39.99 ▼2.73 |
Posts /wp-admin/edit.php | 2,089 ▼0 | 2.02 ▲0.01 | 33.35 ▼4.09 | 33.90 ▼1.97 |
Add New Post /wp-admin/post-new.php | 1,543 ▲10 | 17.99 ▼5.19 | 618.99 ▼25.28 | 51.94 ▼18.24 |
Media Library /wp-admin/upload.php | 1,388 ▼3 | 4.28 ▼0.10 | 94.24 ▼5.54 | 42.78 ▼1.90 |
Freemius Debug [v.2.5.10] /wp-admin/admin.php?page=freemius | 28 | 0.44 | 0.09 | 3.55 |
Google Sheet /wp-admin/edit.php?post_type=download&page=edd-gsheet-config | 28 | 0.44 | 0.10 | 3.66 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
It is recommended to fix the following
- This plugin does not fully uninstall, leaving 17 options in the database
- widget_theysaidso_widget
- gs_edd_sheetId
- widget_recent-posts
- widget_recent-comments
- gs_edd_tab_roles_setting
- db_upgraded
- fs_active_plugins
- gs_edd_access_code
- gs_edd_checkbox_settings
- gs_edd_settings
- ...
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
Even though everything seems fine, this is not an exhaustive test
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
Almost there! Just fix the following items
- 674× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/gsheetconnector-easy-digital-downloads/lib/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php:24
- > PHP Fatal error
Uncaught Error: Class 'Google\\Model' not found in wp-content/plugins/gsheetconnector-easy-digital-downloads/lib/vendor/google/apiclient-services/src/Sheets/UpdateSlicerSpecRequest.php:20
- > PHP Fatal error
Uncaught Error: Class 'Google\\Model' not found in wp-content/plugins/gsheetconnector-easy-digital-downloads/lib/vendor/google/apiclient-services/src/Sheets/Padding.php:20
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractSyslogHandler' not found in wp-content/plugins/gsheetconnector-easy-digital-downloads/lib/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php:25
- > PHP Fatal error
Uncaught Error: Class 'Google\\Model' not found in wp-content/plugins/gsheetconnector-easy-digital-downloads/lib/vendor/google/apiclient-services/src/Sheets/DataSourceChartProperties.php:20
- > PHP Fatal error
Trait 'Google\\Auth\\CacheTrait' not found in wp-content/plugins/gsheetconnector-easy-digital-downloads/lib/vendor/google/auth/src/GCECache.php on line 38
- > PHP Fatal error
Uncaught Error: Class 'phpseclib3\\Crypt\\Common\\AsymmetricKey' not found in wp-content/plugins/gsheetconnector-easy-digital-downloads/lib/vendor/phpseclib/phpseclib/phpseclib/Crypt/DH.php:44
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\GroupHandler' not found in wp-content/plugins/gsheetconnector-easy-digital-downloads/lib/vendor/monolog/monolog/src/Monolog/Handler/FallbackGroupHandler.php:25
- > PHP Fatal error
Uncaught Error: Class 'phpseclib3\\Crypt\\DH' not found in wp-content/plugins/gsheetconnector-easy-digital-downloads/lib/vendor/phpseclib/phpseclib/phpseclib/Crypt/DH/PublicKey.php:26
- > PHP Fatal error
Uncaught Error: Interface 'Google\\Auth\\FetchAuthTokenInterface' not found in wp-content/plugins/gsheetconnector-easy-digital-downloads/lib/vendor/google/auth/src/OAuth2.php:37
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
There are user-side issues you should fix
- > GET request to /wp-admin/admin.php?page=freemius
- > Network (severe)
wp-admin/admin.php?page=freemius - Failed to load resource: the server responded with a status of 403 (Forbidden)
- > GET request to /wp-admin/edit.php?post_type=download&page=edd-gsheet-config
- > Network (severe)
wp-admin/edit.php?post_type=download&page=edd-gsheet-config - Failed to load resource: the server responded with a status of 403 (Forbidden)
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
Please fix the following attributes:
- Screenshots: These screenshots have no corresponding images in /assets: #3 (Permission popup-1 after logged-in to your account.), #4 (Permission popup-2 after logged-in to your account.), #5 (After successful integration - Displays "Currently Active".), #6 (Get Sheet and Tab Id from the Google Sheet URL.), #7 (Add Action Screen for Google Sheets Easy Digital Downloads), #8 (Google Sheet settings page with input box Sheet Name, Sheet Id, Tab Name, Tab Id.), #9 (Google Sheet headers with form submitted data.)
gsheetconnector-easy-digital-downloads/gsheetconnector-easy-digital-downloads.php Passed 13 tests
The principal PHP file in "Easy Digital Downloads Google Sheet Connector" v. 1.6.6 is loaded by WordPress automatically on each request
72 characters long description:
Send your Easy Digital Downloads data to your Google Sheets spreadsheet.
Code Analysis 95% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short review of files and their extensions; it is not recommended to include executable files
Everything looks great! No dangerous files found in this plugin115,883 lines of code in 1,191 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 1,104 | 21,184 | 67,066 | 106,857 |
Markdown | 32 | 1,770 | 0 | 5,183 |
JSON | 26 | 0 | 0 | 2,105 |
CSS | 15 | 113 | 84 | 1,053 |
JavaScript | 4 | 103 | 114 | 497 |
Python | 1 | 22 | 25 | 72 |
YAML | 4 | 6 | 1 | 63 |
XML | 3 | 0 | 0 | 41 |
make | 1 | 4 | 0 | 9 |
Bourne Shell | 1 | 2 | 0 | 3 |
PHP code 0% from 2 tests
Analyzing logical lines of code, cyclomatic complexity, and other code metrics
Please fix the following
- Cyclomatic complexity of classes should be reduced to less than 1000 (currently 3,073)
- Method cyclomatic complexity should be reduced to less than 100 (currently 105)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.39 |
Average class complexity | 13.08 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 3,073.00 |
Average method complexity | 2.72 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 105.00 |
Code structure | ||
---|---|---|
Namespaces | 82 | |
Interfaces | 49 | |
Traits | 14 | |
Classes | 965 | |
▷ Abstract classes | 216 | 22.38% |
▷ Concrete classes | 749 | 77.62% |
▷ Final classes | 52 | 6.94% |
Methods | 7,205 | |
▷ Static methods | 874 | 12.13% |
▷ Public methods | 5,953 | 82.62% |
▷ Protected methods | 401 | 5.57% |
▷ Private methods | 851 | 11.81% |
Functions | 276 | |
▷ Named functions | 135 | 48.91% |
▷ Anonymous functions | 141 | 51.09% |
Constants | 667 | |
▷ Global constants | 119 | 17.84% |
▷ Class constants | 548 | 82.16% |
▷ Public constants | 515 | 93.98% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
8 PNG files occupy 0.19MB with 0.08MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
freemius/assets/img/theme-icon.png | 10.97KB | 5.78KB | ▼ 47.37% |
assets/img/GSheet-Connector_logo.png | 23.37KB | 4.89KB | ▼ 79.07% |
assets/img/help.png | 1.51KB | 1.35KB | ▼ 10.25% |
assets/img/btn_google_signin_dark_pressed_web.png | 4.14KB | 2.15KB | ▼ 48.09% |
assets/img/sync.png | 3.51KB | 2.75KB | ▼ 21.56% |