Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Install script ran successfully
Server metrics [RAM: ▲0.68MB] [CPU: ▲12.21ms] Passed 4 tests
Server-side resources used by WP EasyPay - Square for WordPress
This plugin does not affect your website's performance
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.16 ▲0.70 | 59.31 ▲18.21 |
Dashboard /wp-admin | 4.00 ▲0.70 | 58.31 ▲3.21 |
Posts /wp-admin/edit.php | 4.05 ▲0.69 | 63.47 ▲15.84 |
Add New Post /wp-admin/post-new.php | 6.51 ▲0.63 | 107.59 ▲13.93 |
Media Library /wp-admin/upload.php | 3.93 ▲0.70 | 52.91 ▲15.85 |
Freemius Debug [v.2.5.10] /wp-admin/admin.php?page=freemius | 4.11 | 47.51 |
Server storage [IO: ▲11.00MB] [DB: ▲0.01MB] Passed 3 tests
How much does this plugin use your filesystem and database?
No storage issues were detected
Filesystem: 1,047 new files
Database: no new tables, 13 new options
New WordPress options |
---|
can_compress_scripts |
widget_recent-comments |
wpep_refresh_token |
fs_accounts |
wpep_stn |
fs_active_plugins |
wpep_live_token_upgraded |
widget_theysaidso_widget |
db_upgraded |
theysaidso_admin_options |
... |
Browser metrics Passed 4 tests
This is an overview of browser requirements for WP EasyPay - Square for WordPress
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,043 ▲308 | 15.98 ▲1.67 | 9.56 ▲7.74 | 32.40 ▼12.00 |
Dashboard /wp-admin | 2,270 ▲82 | 6.42 ▲1.48 | 107.42 ▲1.24 | 98.07 ▲47.98 |
Posts /wp-admin/edit.php | 2,173 ▲84 | 3.08 ▲1.08 | 46.44 ▲9.19 | 69.95 ▲32.59 |
Add New Post /wp-admin/post-new.php | 6,259 ▲4,726 | 19.57 ▼3.67 | 986.26 ▲310.17 | 39.96 ▼36.59 |
Media Library /wp-admin/upload.php | 1,472 ▲84 | 5.71 ▲1.51 | 103.10 ▼1.53 | 75.04 ▲27.59 |
Freemius Debug [v.2.5.10] /wp-admin/admin.php?page=freemius | 1,114 | 2.77 | 32.44 | 24.44 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
The following items require your attention
- Uninstall procedure validation failed for this plugin
- > Notice in wp-content/plugins/wp-easy-pay/freemius/includes/class-freemius.php+8486
Undefined property: stdClass::$plugins
- This plugin did not uninstall successfully, leaving 13 options in the database
- theysaidso_admin_options
- widget_theysaidso_widget
- fs_active_plugins
- wpep_token_expires_at
- can_compress_scripts
- wpep_refresh_token
- wpep_stn
- widget_recent-posts
- widget_recent-comments
- wpep_live_token_upgraded
- ...
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 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please fix the following
- 4× PHP files perform the action of outputting non-empty strings when accessed directly:
- > /wp-content/plugins/wp-easy-pay/views/frontend/saved-cards.php
- > /wp-content/plugins/wp-easy-pay/views/frontend/no-square-setup.php
- > /wp-content/plugins/wp-easy-pay/views/backend/form_builder_settings/tabs-list-and-switches.php
- > /wp-content/plugins/wp-easy-pay/views/backend/roadmap-page.php
- 98× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Cookie\\CookieJar' not found in wp-content/plugins/wp-easy-pay/modules/vendor/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php:10
- > PHP Fatal error
Uncaught Error: Call to undefined function get_option() in wp-content/plugins/wp-easy-pay/views/frontend/wpep_free/popup-form-free.php:9
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Promise\\PromisorInterface' not found in wp-content/plugins/wp-easy-pay/modules/vendor/guzzlehttp/guzzle/src/Pool.php:24
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Exception\\BadResponseException' not found in wp-content/plugins/wp-easy-pay/modules/vendor/guzzlehttp/guzzle/src/Exception/ClientException.php:8
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\MessageFormatterInterface' not found in wp-content/plugins/wp-easy-pay/modules/vendor/guzzlehttp/guzzle/src/MessageFormatter.php:38
- > PHP Warning
require_once(WPEP_ROOT_PATHmodules/payments/square-configuration.php): failed to open stream: No such file or directory in wp-content/plugins/wp-easy-pay/modules/payments/payment-helper-functions.php on line 12
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\MessageInterface' not found in wp-content/plugins/wp-easy-pay/modules/vendor/psr/http-message/src/RequestInterface.php:24
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Exception\\GuzzleException' not found in wp-content/plugins/wp-easy-pay/modules/vendor/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php:5
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Exception\\GuzzleException' not found in wp-content/plugins/wp-easy-pay/modules/vendor/guzzlehttp/guzzle/src/Exception/TransferException.php:5
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/wp-easy-pay/modules/vendor/guzzlehttp/psr7/src/NoSeekStream.php:12
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Everything seems fine on the user side
Optimizations
Plugin configuration 93% 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
Attributes that require attention:
- Screenshots: Add descriptions for screenshots #10, #11, #12, #7, #8, #9 in wp-easy-pay/assets to your readme.txt
wp-easy-pay/wp-easy-pay.php 92% from 13 tests
The main PHP file in "WP EasyPay - Square for WordPress" ver. 4.2.1 adds more information about the plugin and also serves as the entry point for this plugin
You should first fix the following items:
- Text Domain: The text domain follows the same naming rules as the plugin slug: lowercase characters and dashes
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of file extensions present in this plugin and a short test that no dangerous files are bundled with this plugin
No dangerous file extensions were detected185,462 lines of code in 951 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 828 | 27,677 | 81,051 | 144,183 |
JSON | 20 | 0 | 0 | 19,575 |
CSS | 23 | 1,488 | 100 | 10,491 |
JavaScript | 21 | 1,190 | 520 | 5,610 |
Markdown | 11 | 867 | 0 | 2,862 |
Sass | 28 | 399 | 77 | 2,515 |
SVG | 15 | 0 | 2 | 149 |
Bourne Shell | 1 | 13 | 8 | 31 |
XML | 1 | 1 | 0 | 20 |
YAML | 2 | 0 | 0 | 17 |
make | 1 | 4 | 0 | 9 |
PHP code 50% from 2 tests
An overview of cyclomatic complexity and code structure
It is recommended to fix the following
- Please reduce cyclomatic complexity of classes to less than 1000 (currently 3,073)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.45 |
Average class complexity | 25.89 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 3,073.00 |
Average method complexity | 2.88 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 94.00 |
Code structure | ||
---|---|---|
Namespaces | 15 | |
Interfaces | 26 | |
Traits | 3 | |
Classes | 666 | |
▷ Abstract classes | 2 | 0.30% |
▷ Concrete classes | 664 | 99.70% |
▷ Final classes | 34 | 5.12% |
Methods | 9,258 | |
▷ Static methods | 343 | 3.70% |
▷ Public methods | 8,466 | 91.45% |
▷ Protected methods | 307 | 3.32% |
▷ Private methods | 485 | 5.24% |
Functions | 309 | |
▷ Named functions | 208 | 67.31% |
▷ Anonymous functions | 101 | 32.69% |
Constants | 215 | |
▷ Global constants | 105 | 48.84% |
▷ Class constants | 110 | 51.16% |
▷ Public constants | 99 | 90.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
25 PNG files occupy 0.36MB with 0.12MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/backend/img/signup.png | 3.83KB | 4.21KB | 0.00% |
assets/backend/img/square-icon.png | 0.25KB | 0.25KB | 0.00% |
assets/backend/img/minus.png | 1.38KB | 0.52KB | ▼ 62.61% |
freemius/assets/img/plugin-icon.png | 9.16KB | 5.26KB | ▼ 42.58% |
assets/frontend/img/placeholder-image.png | 5.68KB | 1.87KB | ▼ 67.03% |