Benchmarks
Plugin footprint 48% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Installer ran successfully
Server metrics [RAM: ▲1.02MB] [CPU: ▼286.76ms] Passed 4 tests
A check of server-side resources used by ListPlus - Unlimited Listing Directory
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 6.07 ▲2.56 | 71.34 ▲19.86 |
Dashboard /wp-admin | 4.35 ▲0.94 | 43.42 ▲10.75 |
Posts /wp-admin/edit.php | 4.56 ▲0.92 | 49.35 ▲13.64 |
Add New Post /wp-admin/post-new.php | 8.15 ▲1.18 | 92.10 ▼1,180.63 |
Media Library /wp-admin/upload.php | 4.32 ▲1.02 | 33.07 ▲9.22 |
Freemius Debug [v.2.3.2] /wp-admin/admin.php?page=freemius | 4.62 | 33.77 |
New Listing /wp-admin/admin.php?page=listing_edit | 4.35 | 35.67 |
Server storage [IO: ▲6.24MB] [DB: ▲0.02MB] Passed 3 tests
Filesystem and database footprint
This plugin installed successfully
Filesystem: 317 new files
Database: 8 new tables, 8 new options
New tables |
---|
wp_lp_reports |
wp_lp_reviews |
wp_lp_prop_meta |
wp_lp_claim_entries |
wp_lp_enquiries |
wp_lp_scheduled_tasks |
wp_lp_tax_relationships |
wp_lp_item_meta |
New WordPress options |
---|
fs_accounts |
listplus_db_version |
widget_listings-single |
widget_listings-map |
fs_active_plugins |
fs_gdpr |
fs_debug_mode |
widget_listings-filter |
Browser metrics Passed 4 tests
A check of browser resources used by ListPlus - Unlimited Listing Directory
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 4,260 ▲538 | 18.01 ▲2.41 | 24.03 ▲18.13 | 3.03 ▲0.98 |
Dashboard /wp-admin | 2,995 ▲134 | 6.17 ▼0.02 | 114.36 ▼22.51 | 185.12 ▲22.00 |
Posts /wp-admin/edit.php | 2,793 ▲102 | 3.25 ▲0.01 | 65.42 ▲0.37 | 153.52 ▲9.69 |
Add New Post /wp-admin/post-new.php | 1,759 ▲40 | 21.08 ▼2.01 | 435.07 ▲20.15 | 160.69 ▲5.25 |
Media Library /wp-admin/upload.php | 1,797 ▲99 | 5.56 ▲0.03 | 151.54 ▲7.13 | 216.34 ▲26.88 |
Freemius Debug [v.2.3.2] /wp-admin/admin.php?page=freemius | 1,448 | 2.54 | 54.93 | 112.14 |
New Listing /wp-admin/admin.php?page=listing_edit | 2,052 | 6.01 | 135.96 | 189.45 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.02MB] 25% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
These items require your attention
- This plugin cannot be uninstalled
- > Notice in wp-content/plugins/listplus/3rd/fs/includes/class-freemius.php+8218
Undefined property: stdClass::$plugins
- Zombie tables were found after uninstall: 8 tables
- wp_lp_reports
- wp_lp_prop_meta
- wp_lp_enquiries
- wp_lp_claim_entries
- wp_lp_tax_relationships
- wp_lp_item_meta
- wp_lp_scheduled_tasks
- wp_lp_reviews
- This plugin did not uninstall successfully, leaving 8 options in the database
- fs_accounts
- listplus_db_version
- widget_listings-single
- widget_listings-map
- fs_gdpr
- fs_active_plugins
- fs_debug_mode
- widget_listings-filter
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
Everything seems fine, however this is by no means an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please fix the following items
- 2× PHP files output text when accessed directly:
- > /wp-content/plugins/listplus/3rd/fs/templates/ajax-loader.php
- > /wp-content/plugins/listplus/templates/single/photos.php
- 74× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function sanitize_text_field() in wp-content/plugins/listplus/admin/views/view-edit-listing.php:6
- > PHP Fatal error
Uncaught Error: Class 'ListPlus\\CRUD\\Model' not found in wp-content/plugins/listplus/crud/class-claim.php:8
- > PHP Fatal error
require_once(): Failed opening required 'ABSPATHwp-admin/includes/class-wp-list-table.php' (include_path='.:/usr/share/php') in wp-content/plugins/listplus/admin/inc/class-listing_type-table.php on line 8
- > PHP Fatal error
require_once(): Failed opening required 'ABSPATHwp-admin/includes/class-wp-list-table.php' (include_path='.:/usr/share/php') in wp-content/plugins/listplus/admin/inc/class-reports-list-table.php on line 9
- > PHP Fatal error
require_once(): Failed opening required 'ABSPATHwp-admin/includes/class-wp-list-table.php' (include_path='.:/usr/share/php') in wp-content/plugins/listplus/admin/inc/class-reviews-list-table.php on line 9
- > PHP Warning
Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/listplus/admin/inc/class-reviews-list-table.php on line 9
- > PHP Warning
Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/listplus/admin/inc/class-reports-list-table.php on line 9
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/listplus/3rd/fs/templates/account/partials/addon.php on line 8
- > PHP Warning
require_once(LISTPLUS_PATH/3rd/fs/start.php): failed to open stream: No such file or directory in wp-content/plugins/listplus/inc/fs.php on line 15
- > PHP Fatal error
Uncaught Error: Class 'ListPlus\\CRUD\\Report' not found in wp-content/plugins/listplus/admin/views/view-report-details.php:3
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
No browser issues were found
Optimizations
Plugin configuration 83% 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 need to be fixed:
- Screenshots: No descriptions were found for these screenshots #1, #2, #3, #4, #5, #6, #7 in listplus/assets to your readme.txt
listplus/index.php 69% from 13 tests
The main PHP file in "ListPlus - Unlimited Listing Directory" ver. 1.0.4 adds more information about the plugin and also serves as the entry point for this plugin
You should first fix the following items:
- Main file name: Please rename the main PHP file in this plugin to the plugin slug ("listplus.php" instead of "index.php")
- Text Domain: You no longer need to specify the text domain since WordPress 4.6; it must be the same as the plugin slug
- Domain Path: The domain path must begin with a forward slash character ("/languages/")
- Domain Path: The domain path should use only dashes and lowercase characters ("languages/")
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are considered dangerous and should not be included with any WordPress plugin
Good job! No executable or dangerous file extensions detected81,965 lines of code in 248 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 184 | 9,477 | 17,724 | 44,760 |
PO File | 12 | 6,960 | 8,455 | 15,240 |
JavaScript | 21 | 2,431 | 2,330 | 11,239 |
CSS | 20 | 403 | 70 | 6,215 |
Sass | 6 | 220 | 34 | 4,301 |
SQL | 1 | 17 | 1 | 129 |
SVG | 2 | 0 | 0 | 56 |
Markdown | 1 | 2 | 0 | 24 |
JSON | 1 | 0 | 0 | 1 |
PHP code 50% from 2 tests
A short review of cyclomatic complexity and code structure
It is recommended to fix the following
- Class cyclomatic complexity has to be reduced to less than 1000 (currently 2,772)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.53 |
Average class complexity | 64.93 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 2,772.00 |
Average method complexity | 4.25 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 86.00 |
Code structure | ||
---|---|---|
Namespaces | 3 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 89 | |
▷ Abstract classes | 2 | 2.25% |
▷ Concrete classes | 87 | 97.75% |
▷ Final classes | 0 | 0.00% |
Methods | 1,781 | |
▷ Static methods | 267 | 14.99% |
▷ Public methods | 1,324 | 74.34% |
▷ Protected methods | 108 | 6.06% |
▷ Private methods | 349 | 19.60% |
Functions | 106 | |
▷ Named functions | 105 | 99.06% |
▷ Anonymous functions | 1 | 0.94% |
Constants | 125 | |
▷ Global constants | 98 | 78.40% |
▷ Class constants | 27 | 21.60% |
▷ Public constants | 27 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
17 PNG files occupy 0.07MB with 0.03MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
3rd/fs/assets/img/theme-icon.png | 10.97KB | 5.78KB | ▼ 47.37% |
assets/images/rate-star-inactive.png | 2.53KB | 1.67KB | ▼ 34.22% |
assets/lightslider/img/controls.png | 2.19KB | 0.95KB | ▼ 56.49% |
assets/images/rate-star-low.png | 2.61KB | 1.67KB | ▼ 36.08% |
assets/images/rate-star-height.png | 2.66KB | 1.67KB | ▼ 37.41% |