Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
This plugin's installer ran successfully
Server metrics [RAM: ▲0.00MB] [CPU: ▼5.00ms] Passed 4 tests
This is a short check of server-side resources used by Pay For Post with WooCommerce
No issues were detected with server-side resource usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.47 ▲0.00 | 37.22 ▼0.38 |
Dashboard /wp-admin | 3.31 ▲0.01 | 43.88 ▼3.08 |
Posts /wp-admin/edit.php | 3.36 ▲0.00 | 45.07 ▲0.18 |
Add New Post /wp-admin/post-new.php | 5.89 ▲0.00 | 81.06 ▼14.50 |
Media Library /wp-admin/upload.php | 3.24 ▲0.00 | 31.64 ▼2.02 |
Server storage [IO: ▲9.56MB] [DB: ▲0.00MB] Passed 3 tests
Input-output and database impact of this plugin
No storage issues were detected
Filesystem: 1,416 new files
Database: no new tables, 9 new options
New WordPress options |
---|
fs_debug_mode |
can_compress_scripts |
widget_theysaidso_widget |
fs_accounts |
db_upgraded |
theysaidso_admin_options |
widget_recent-comments |
fs_active_plugins |
widget_recent-posts |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Pay For Post with WooCommerce
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,789 ▲28 | 14.35 ▼0.24 | 1.57 ▲0.03 | 37.79 ▼3.90 |
Dashboard /wp-admin | 2,192 ▲18 | 5.54 ▼0.05 | 84.33 ▼2.21 | 39.70 ▼3.92 |
Posts /wp-admin/edit.php | 2,097 ▼3 | 2.01 ▼0.01 | 34.09 ▼0.94 | 30.79 ▼3.66 |
Add New Post /wp-admin/post-new.php | 1,526 ▼0 | 22.83 ▼0.18 | 660.03 ▼6.54 | 63.61 ▲8.03 |
Media Library /wp-admin/upload.php | 1,400 ▼3 | 4.23 ▲0.06 | 105.88 ▲7.22 | 47.39 ▲3.84 |
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
These items require your attention
- Zombie WordPress options detected upon uninstall: 9 options
- widget_recent-posts
- widget_recent-comments
- fs_debug_mode
- fs_accounts
- widget_theysaidso_widget
- db_upgraded
- can_compress_scripts
- fs_active_plugins
- theysaidso_admin_options
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
Even though no errors were found, this is by no means an exhaustive test
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
The following issues need your attention
- 1× PHP files perform the action of outputting non-empty strings when accessed directly:
- > /wp-content/plugins/woocommerce-pay-per-post/public/partials/shortcode-remaining.php
- 244× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Pramadillo\\PayForPost\\Monolog\\Handler\\SocketHandler' not found in wp-content/plugins/woocommerce-pay-per-post/vendor-prefixed/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php:22
- > PHP Fatal error
Uncaught Error: Interface 'Pramadillo\\PayForPost\\Symfony\\Component\\Translation\\Dumper\\DumperInterface' not found in wp-content/plugins/woocommerce-pay-per-post/vendor-prefixed/symfony/translation/Dumper/FileDumper.php:29
- > PHP Fatal error
Uncaught Error: Interface 'PHPStan\\Reflection\\Php\\BuiltinMethodReflection' not found in wp-content/plugins/woocommerce-pay-per-post/vendor-prefixed/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php:39
- > PHP Fatal error
Uncaught Error: Interface 'Pramadillo\\PayForPost\\Symfony\\Component\\Translation\\Formatter\\MessageFormatterInterface' not found in wp-content/plugins/woocommerce-pay-per-post/vendor-prefixed/symfony/translation/Formatter/MessageFormatter.php:28
- > PHP Fatal error
Uncaught Error: Interface 'Pramadillo\\PayForPost\\Carbon\\Exceptions\\InvalidArgumentException' not found in wp-content/plugins/woocommerce-pay-per-post/vendor-prefixed/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php:20
- > PHP Warning
count(): Parameter must be an array or an object that implements Countable in wp-content/plugins/woocommerce-pay-per-post/public/partials/shortcode-has_access-polylang.php on line 11
- > PHP Fatal error
Uncaught Error: Class 'Pramadillo\\PayForPost\\Monolog\\Handler\\AbstractHandler' not found in wp-content/plugins/woocommerce-pay-per-post/vendor-prefixed/monolog/monolog/src/Monolog/Handler/FilterHandler.php:28
- > PHP Fatal error
Uncaught Error: Class 'Pramadillo\\PayForPost\\Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/woocommerce-pay-per-post/vendor-prefixed/monolog/monolog/src/Monolog/Handler/RavenHandler.php:28
- > PHP Fatal error
Uncaught Error: Class 'Pramadillo\\PayForPost\\Monolog\\Handler\\MailHandler' not found in wp-content/plugins/woocommerce-pay-per-post/vendor-prefixed/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php:26
- > PHP Notice
Undefined variable: purchased in wp-content/plugins/woocommerce-pay-per-post/public/partials/shortcode-purchased.php on line 8
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
There were no browser issues found
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
7 plugin tags: sell content, woo commerce, sell pages, pay for post, payforpost...
woocommerce-pay-per-post/woocommerce-pay-per-post.php 85% from 13 tests
The principal PHP file in "Pay For Post with WooCommerce" v. 3.1.13 is loaded by WordPress automatically on each request
You should first fix the following items:
- Text Domain: The text domain name should consist of only dashes and lowercase characters
- Requires at least: Required version must be the same as the one declared in readme.txt ("3.8" instead of "2.6")
Code Analysis 95% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
No dangerous file extensions were detected116,121 lines of code in 1,147 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 1,096 | 16,969 | 48,443 | 78,237 |
JSON | 8 | 0 | 0 | 22,590 |
JavaScript | 12 | 1,213 | 1,307 | 9,500 |
XSD | 3 | 92 | 48 | 2,803 |
PO File | 3 | 808 | 1,686 | 2,518 |
CSS | 17 | 67 | 16 | 294 |
Markdown | 5 | 52 | 0 | 161 |
XML | 1 | 3 | 0 | 16 |
SVG | 2 | 0 | 0 | 2 |
PHP code 0% from 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
The following items need your attention
- Class cyclomatic complexity should be reduced to less than 1000 (currently 3,088)
- Method cyclomatic complexity should be reduced to less than 100 (currently 160)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.54 |
Average class complexity | 24.88 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 3,088.00 |
Average method complexity | 3.58 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 160.00 |
Code structure | ||
---|---|---|
Namespaces | 38 | |
Interfaces | 35 | |
Traits | 31 | |
Classes | 283 | |
▷ Abstract classes | 21 | 7.42% |
▷ Concrete classes | 262 | 92.58% |
▷ Final classes | 9 | 3.44% |
Methods | 3,616 | |
▷ Static methods | 673 | 18.61% |
▷ Public methods | 2,761 | 76.36% |
▷ Protected methods | 301 | 8.32% |
▷ Private methods | 554 | 15.32% |
Functions | 413 | |
▷ Named functions | 160 | 38.74% |
▷ Anonymous functions | 253 | 61.26% |
Constants | 311 | |
▷ Global constants | 107 | 34.41% |
▷ Class constants | 204 | 65.59% |
▷ Public constants | 203 | 99.51% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
17 PNG files occupy 0.31MB with 0.05MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
admin/img/shortcode-templates.png | 149.90KB | 43.91KB | ▼ 70.70% |
admin/img/override-content.png | 20.08KB | 18.72KB | ▼ 6.78% |
admin/css/datatables/images/sort_both.png | 0.20KB | 0.29KB | 0.00% |
admin/img/options.png | 13.10KB | 12.12KB | ▼ 7.48% |
admin/img/delay-restriction.png | 10.74KB | 10.49KB | ▼ 2.33% |