Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
This plugin's installer ran successfully
Server metrics [RAM: ▲0.15MB] [CPU: ▼3.24ms] Passed 4 tests
Analyzing server-side resources used by WPComplete
This plugin does not affect your website's performance
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.64 ▲0.18 | 45.64 ▲0.32 |
Dashboard /wp-admin | 3.50 ▲0.15 | 50.35 ▼15.64 |
Posts /wp-admin/edit.php | 3.55 ▲0.19 | 51.43 ▲1.74 |
Add New Post /wp-admin/post-new.php | 6.04 ▲0.15 | 91.31 ▲0.76 |
Media Library /wp-admin/upload.php | 3.36 ▲0.13 | 40.77 ▲1.60 |
WPComplete /wp-admin/options-general.php?page=wpcomplete | 3.38 | 33.35 |
Server storage [IO: ▲0.82MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
No storage issues were detected
Filesystem: 117 new files
Database: no new tables, 6 new options
New WordPress options |
---|
widget_recent-posts |
widget_recent-comments |
db_upgraded |
can_compress_scripts |
theysaidso_admin_options |
widget_theysaidso_widget |
Browser metrics Passed 4 tests
Checking browser requirements for WPComplete
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,919 ▲173 | 13.84 ▼0.54 | 10.04 ▲7.99 | 40.73 ▼4.54 |
Dashboard /wp-admin | 2,238 ▲50 | 5.15 ▼0.71 | 104.17 ▼15.54 | 40.73 ▼3.01 |
Posts /wp-admin/edit.php | 2,183 ▲94 | 2.46 ▲0.46 | 39.66 ▲1.67 | 33.78 ▲1.38 |
Add New Post /wp-admin/post-new.php | 6,266 ▲4,733 | 26.08 ▲3.19 | 906.47 ▲257.51 | 37.28 ▼23.58 |
Media Library /wp-admin/upload.php | 1,430 ▲42 | 4.57 ▲0.38 | 111.62 ▲6.49 | 46.03 ▼1.49 |
WPComplete /wp-admin/options-general.php?page=wpcomplete | 958 | 2.14 | 28.66 | 30.78 |
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
You still need to fix the following
- Zombie WordPress options detected upon uninstall: 6 options
- widget_recent-comments
- widget_theysaidso_widget
- widget_recent-posts
- can_compress_scripts
- db_upgraded
- theysaidso_admin_options
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 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Almost there! Just fix the following items
- 6× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/wpcomplete/admin/partials/wpcomplete-admin-devmode-notice.php
- > /wp-content/plugins/wpcomplete/admin/partials/wpcomplete-admin-button-completion.php
- > /wp-content/plugins/wpcomplete/admin/partials/wpcomplete-admin-settings-license-status.php
- > /wp-content/plugins/wpcomplete/admin/partials/wpcomplete-admin-user-completion-column.php
- > /wp-content/plugins/wpcomplete/admin/partials/wpcomplete-admin-post-completion.php
- > /wp-content/plugins/wpcomplete/admin/partials/wpcomplete-admin-user-completion.php
- 91× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Notice
Undefined variable: user_completed in wp-content/plugins/wpcomplete/admin/partials/wpcomplete-admin-button-completion.php on line 15
- > PHP Warning
Invalid argument supplied for foreach() in wp-content/plugins/wpcomplete/admin/partials/wpcomplete-admin-button-completion.php on line 33
- > PHP Notice
Undefined index: ithemes_updater_path in wp-content/plugins/wpcomplete/lib/updater/settings-page.php on line 32
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/wpcomplete/public/partials/themes/classic/bar-graph.php:2
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/wpcomplete/admin/partials/wpcomplete-admin-settings-zapier.php:2
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_url() in wp-content/plugins/wpcomplete/public/partials/wpcomplete-public-reset-link.php:2
- > PHP Warning
require_once(/settings.php): failed to open stream: No such file or directory in wp-content/plugins/wpcomplete/lib/updater/admin.php on line 33
- > PHP Notice
Undefined variable: msg in wp-content/plugins/wpcomplete/admin/partials/wpcomplete-admin-devmode-notice.php on line 3
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/wpcomplete/public/partials/wpcomplete-public-loading-button.php:1
- > PHP Fatal error
Uncaught Error: Using $this when not in object context in wp-content/plugins/wpcomplete/admin/partials/wpcomplete-admin-settings-auto-append.php:9
- > PHP Notice
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)
No browser errors were detected
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
Often overlooked, readme.txt is one of the most important files in your plugin
Please fix the following attributes:
- Tags: Please reduce the number of tags, currently 22 tag instead of maximum 10
wpcomplete/wpcomplete.php Passed 13 tests
The main file in "WPComplete" v. 2.9.5 serves as a complement to information provided in readme.txt and as the entry point to the plugin
112 characters long description:
A WordPress plugin that helps your students keep track of their progress through your course or membership site.
Code Analysis 5% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | A short check of programming languages and file extensions; no executable files are allowed
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/wpcomplete/lib/updater/ca/roots.crt
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 68 | 2,848 | 3,269 | 10,850 |
CSS | 6 | 48 | 12 | 3,361 |
JavaScript | 3 | 60 | 37 | 504 |
PO File | 3 | 63 | 73 | 184 |
PHP code Passed 2 tests
This plugin's cyclomatic complexity and code structure detailed below
This plugin has no cyclomatic complexity problems
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.49 |
Average class complexity | 69.84 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 564.00 |
Average method complexity | 5.77 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 41.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 31 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 31 | 100.00% |
▷ Final classes | 1 | 3.23% |
Methods | 444 | |
▷ Static methods | 56 | 12.61% |
▷ Public methods | 307 | 69.14% |
▷ Protected methods | 101 | 22.75% |
▷ Private methods | 36 | 8.11% |
Functions | 14 | |
▷ Named functions | 13 | 92.86% |
▷ Anonymous functions | 1 | 7.14% |
Constants | 10 | |
▷ Global constants | 8 | 80.00% |
▷ Class constants | 2 | 20.00% |
▷ Public constants | 2 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
6 PNG files occupy 0.01MB with 0.00MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
lib/updater/images/logo-ithemes.png | 0.31KB | 0.37KB | 0.00% |
lib/updater/images/ithemes-logo-header.png | 3.83KB | 2.37KB | ▼ 38.28% |
lib/updater/images/icon-settings.png | 0.45KB | 0.58KB | 0.00% |
lib/updater/images/icon-unlicensed.png | 0.52KB | 0.72KB | 0.00% |
lib/updater/images/icon-unrecognized.png | 3.43KB | 0.76KB | ▼ 77.74% |