Benchmarks
Plugin footprint 65% 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 successfully, without throwing any errors or notices
Server metrics [RAM: ▲1.30MB] [CPU: ▲2.40ms] Passed 4 tests
An overview of server-side resources used by Keap Official Opt-in Forms
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.86 ▲1.40 | 47.09 ▲9.36 |
Dashboard /wp-admin | 4.63 ▲1.28 | 55.53 ▼4.11 |
Posts /wp-admin/edit.php | 4.68 ▲1.32 | 50.58 ▲5.91 |
Add New Post /wp-admin/post-new.php | 7.16 ▲1.27 | 98.63 ▼1.58 |
Media Library /wp-admin/upload.php | 4.56 ▲1.32 | 47.68 ▲11.92 |
Opt-in Forms /wp-admin/admin.php?page=inf_infusionsoft_options | 4.68 | 44.79 |
Server storage [IO: ▲5.08MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
There were no storage issued detected upon installing this plugin
Filesystem: 428 new files
Database: 1 new table, 9 new options
New tables |
---|
wp_inf_infusionsoft_stats |
New WordPress options |
---|
inf_infusionsoft_stats_cache |
can_compress_scripts |
widget_infusionsoft |
db_upgraded |
widget_recent-comments |
inf_infusionsoft_options |
theysaidso_admin_options |
widget_theysaidso_widget |
widget_recent-posts |
Browser metrics Passed 4 tests
An overview of browser requirements for Keap Official Opt-in Forms
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,024 ▲278 | 13.95 ▼0.42 | 15.27 ▲13.53 | 41.40 ▲1.66 |
Dashboard /wp-admin | 2,247 ▲56 | 5.84 ▲0.97 | 98.96 ▼3.15 | 36.86 ▼7.72 |
Posts /wp-admin/edit.php | 2,130 ▲41 | 2.04 ▲0.01 | 33.67 ▼4.22 | 33.58 ▼1.51 |
Add New Post /wp-admin/post-new.php | 1,564 ▲31 | 18.25 ▼4.98 | 625.19 ▼58.19 | 61.44 ▲5.38 |
Media Library /wp-admin/upload.php | 1,429 ▲41 | 4.16 ▲0.02 | 95.67 ▼15.07 | 40.30 ▼5.22 |
Settings /wp-admin/admin.php?page=inf_infusionsoft_options#tab_inf_dashboard_tab_content_header_accounts | 4,234 | 6.46 | 127.36 | 80.56 |
Import & Export /wp-admin/admin.php?page=inf_infusionsoft_options#tab_inf_dashboard_tab_content_header_importexport | 4,236 | 6.45 | 124.80 | 41.60 |
Opt-in Forms /wp-admin/admin.php?page=inf_infusionsoft_options | 4,226 | 6.34 | 126.01 | 37.41 |
Statistics /wp-admin/admin.php?page=inf_infusionsoft_options#tab_inf_dashboard_tab_content_header_stats | 4,311 | 6.48 | 114.95 | 38.62 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
These items require your attention
- Zombie tables detected upon uninstall: 1 table
- wp_inf_infusionsoft_stats
- The uninstall procedure has failed, leaving 9 options in the database
- db_upgraded
- widget_theysaidso_widget
- widget_recent-comments
- inf_infusionsoft_stats_cache
- inf_infusionsoft_options
- widget_recent-posts
- can_compress_scripts
- widget_infusionsoft
- theysaidso_admin_options
Smoke tests 25% 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
Please take a closer look at the following
- 6× PHP files output non-empty strings when accessed directly via GET requests:
- > /wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/test/verify_compat.php
- > /wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/debugger/controller.php
- > /wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/demo/client/client.php
- > /wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/debugger/action.php
- > /wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/debugger/index.php
- > /wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/demo/client/mail.php
- 75× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Warning
include(): Failed opening 'xmlrpc.inc' for inclusion (include_path='.:/usr/share/php') in wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/demo/server/proxy.php on line 12
- > PHP Warning
include(xmlrpc_wrappers.inc): failed to open stream: No such file or directory in wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/demo/server/server.php on line 22
- > PHP Warning
include(xmlrpcs.inc): failed to open stream: No such file or directory in wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/demo/server/server.php on line 21
- > PHP Warning
include(xmlrpc.inc): failed to open stream: No such file or directory in wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/demo/client/client.php on line 8
- > PHP Warning
include(): Failed opening 'xmlrpc.inc' for inclusion (include_path='.:/usr/share/php') in wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/demo/client/introspect.php on line 15
- > PHP Warning
include(): Failed opening 'xmlrpc.inc' for inclusion (include_path='.:/usr/share/php') in wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/demo/client/mail.php on line 17
- > PHP Warning
require_once(INF_INFUSIONSOFT_PLUGIN_DIRinfusionsoft.php): failed to open stream: No such file or directory in wp-content/plugins/infusionsoft-official-opt-in-forms/includes/classes/integrations/class.infusionsoft-redirect.php on line 3
- > PHP Warning
include(): Failed opening 'xmlrpcs.inc' for inclusion (include_path='.:/usr/share/php') in wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/demo/server/server.php on line 21
- > PHP Fatal error
require_once(): Failed opening required 'INF_INFUSIONSOFT_PLUGIN_DIRinfusionsoft.php' (include_path='.:/usr/share/php') in wp-content/plugins/infusionsoft-official-opt-in-forms/includes/classes/integrations/class.infusionsoft-redirect.php on line 3
- > PHP Warning
include(xmlrpc.inc): failed to open stream: No such file or directory in wp-content/plugins/infusionsoft-official-opt-in-forms/subscription/infusionsoft/xmlrpc/demo/server/server.php on line 20
- > PHP Warning
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
There are user-side issues you should fix
- > GET request to /wp-admin/admin.php?page=inf_infusionsoft_options#tab_inf_dashboard_tab_content_header_stats
- > Javascript (severe) in unknown
/wp-content/plugins/infusionsoft-official-opt-in-forms/js/googlechart.js?ver=1.0.11 3:4 Uncaught TypeError: $ is not a function
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 94% from 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
Attributes that require attention:
- Tags: Please reduce the number of tags, currently 22 tag instead of maximum 10
infusionsoft-official-opt-in-forms/infusionsoft.php 85% from 13 tests
"Keap Official Opt-in Forms" version 1.0.11's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
Please make the necessary changes and fix the following:
- Text Domain: You no longer need to specify the text domain since WordPress 4.6; it must be the same as the plugin slug
- Main file name: The principal plugin file should be the same as the plugin slug ("infusionsoft-official-opt-in-forms.php" instead of "infusionsoft.php")
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
Good job! No executable or dangerous file extensions detected50,464 lines of code in 335 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 49 | 2,714 | 5,303 | 19,522 |
SVG | 163 | 303 | 157 | 18,746 |
XML | 1 | 914 | 20 | 3,362 |
JavaScript | 53 | 518 | 137 | 3,008 |
CSS | 12 | 449 | 139 | 2,700 |
PO File | 2 | 700 | 784 | 1,516 |
HTML | 50 | 0 | 0 | 1,436 |
make | 2 | 44 | 43 | 116 |
Perl | 1 | 16 | 5 | 31 |
Python | 1 | 10 | 2 | 25 |
Markdown | 1 | 1 | 0 | 2 |
PHP code 50% from 2 tests
This is a very shot review of cyclomatic complexity and code structure
It is recommended to fix the following
- Method cyclomatic complexity has to be reduced to less than 100 (currently 189)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.49 |
Average class complexity | 74.17 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 847.00 |
Average method complexity | 4.65 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 189.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 23 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 23 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 461 | |
▷ Static methods | 20 | 4.34% |
▷ Public methods | 455 | 98.70% |
▷ Protected methods | 3 | 0.65% |
▷ Private methods | 3 | 0.65% |
Functions | 55 | |
▷ Named functions | 55 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 5 | |
▷ Global constants | 5 | 100.00% |
▷ Class constants | 0 | 0.00% |
▷ Public constants | 0 | 0.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
31 PNG files occupy 0.28MB with 0.18MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
images/premade-image-16.png | 21.72KB | 8.32KB | ▼ 61.69% |
images/required.png | 1.11KB | 0.19KB | ▼ 82.88% |
images/premade-image-12.png | 23.47KB | 8.48KB | ▼ 63.86% |
images/logo.png | 1.78KB | 0.77KB | ▼ 56.81% |
images/premade-image-11.png | 5.30KB | 2.57KB | ▼ 51.59% |