Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
The plugin installed gracefully, with no errors
Server metrics [RAM: ▲1.90MB] [CPU: ▲11.90ms] Passed 4 tests
A check of server-side resources used by WP Inventory Manager
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.36 ▲1.90 | 56.53 ▲17.51 |
Dashboard /wp-admin | 5.20 ▲1.90 | 58.42 ▲4.77 |
Posts /wp-admin/edit.php | 5.32 ▲1.96 | 61.24 ▲12.89 |
Add New Post /wp-admin/post-new.php | 7.78 ▲1.89 | 103.04 ▲12.44 |
Media Library /wp-admin/upload.php | 5.12 ▲1.90 | 58.17 ▲21.15 |
Add Ons /wp-admin/admin.php?page=wpim_manage_add_ons | 5.13 | 49.39 |
Support /wp-admin/admin.php?page=wpim_manage_support | 5.13 | 48.54 |
Import / Export /wp-admin/admin.php?page=wpim_promote_ie | 5.09 | 42.09 |
Advanced Management /wp-admin/admin.php?page=wpim_promote_aim | 5.09 | 56.16 |
Locations Manager /wp-admin/admin.php?page=wpim_promote_locations | 5.09 | 53.35 |
Inventory Items /wp-admin/admin.php?page=wpim_manage_inventory_items | 5.15 | 74.74 |
Settings /wp-admin/admin.php?page=wpim_manage_settings | 5.14 | 49.77 |
Status /wp-admin/admin.php?page=wpinventory | 5.15 | 60.97 |
Statuses /wp-admin/admin.php?page=wpim_manage_statuses | 5.13 | 46.01 |
Categories /wp-admin/admin.php?page=wpim_manage_categories | 5.13 | 47.97 |
Server storage [IO: ▲13.28MB] [DB: ▲0.05MB] 67% from 3 tests
A short overview of filesystem and database impact
Please fix the following
- There were 1 file (0.00KB) illegally modified outside of "wp-content/plugins/wp-inventory-manager/" and "wp-content/uploads/"
- (new file) wp-content/themes/twentytwentyone/wpinventory/.empty
Filesystem: 293 new files
Database: 8 new tables, 10 new options
New tables |
---|
wp_wpinventory_image |
wp_wpinventory_reservation |
wp_wpinventory_status |
wp_wpinventory_label |
wp_wpinventory_category |
wp_wpinventory_item |
wp_wpinventory_reservation_item |
wp_wpinventory_media |
New WordPress options |
---|
widget_wpinventory_latest_items_widget |
widget_wpinventory_categories_widget |
can_compress_scripts |
theysaidso_admin_options |
wpim_default_data |
wpinventory_settings |
widget_theysaidso_widget |
db_upgraded |
widget_recent-comments |
widget_recent-posts |
Browser metrics Passed 4 tests
An overview of browser requirements for WP Inventory Manager
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,968 ▲233 | 13.62 ▼0.86 | 9.33 ▲7.69 | 43.50 ▼2.67 |
Dashboard /wp-admin | 2,287 ▲99 | 4.89 ▼1.02 | 97.34 ▼17.16 | 84.47 ▲42.52 |
Posts /wp-admin/edit.php | 2,164 ▲78 | 2.03 ▼0.01 | 37.95 ▲3.01 | 35.92 ▲1.87 |
Add New Post /wp-admin/post-new.php | 1,740 ▲226 | 22.81 ▲5.36 | 690.74 ▼8.06 | 61.98 ▲0.40 |
Media Library /wp-admin/upload.php | 2,174 ▲786 | 5.50 ▲1.29 | 120.19 ▲19.86 | 85.41 ▲36.78 |
Add Ons /wp-admin/admin.php?page=wpim_manage_add_ons | 1,184 | 3.34 | 40.06 | 99.39 |
Support /wp-admin/admin.php?page=wpim_manage_support | 1,114 | 3.41 | 54.28 | 65.27 |
Import / Export /wp-admin/admin.php?page=wpim_promote_ie | 1,563 | 9.59 | 280.36 | 102.31 |
Advanced Management /wp-admin/admin.php?page=wpim_promote_aim | 1,530 | 9.53 | 272.70 | 60.10 |
Locations Manager /wp-admin/admin.php?page=wpim_promote_locations | 1,536 | 9.60 | 287.68 | 57.19 |
Inventory Items /wp-admin/admin.php?page=wpim_manage_inventory_items | 1,441 | 3.35 | 45.26 | 89.34 |
Settings /wp-admin/admin.php?page=wpim_manage_settings | 3,168 | 4.21 | 70.74 | 120.51 |
Status /wp-admin/admin.php?page=wpinventory | 1,109 | 3.35 | 40.62 | 75.06 |
Statuses /wp-admin/admin.php?page=wpim_manage_statuses | 1,112 | 3.37 | 40.60 | 66.33 |
Categories /wp-admin/admin.php?page=wpim_manage_categories | 1,126 | 3.28 | 42.79 | 78.80 |
Uninstaller [IO: ▲7.36MB] [DB: ▲0.05MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the following
- The uninstall procedure failed, leaving 8 tables in the database
- wp_wpinventory_category
- wp_wpinventory_item
- wp_wpinventory_reservation_item
- wp_wpinventory_media
- wp_wpinventory_reservation
- wp_wpinventory_status
- wp_wpinventory_label
- wp_wpinventory_image
- Zombie WordPress options were found after uninstall: 10 options
- theysaidso_admin_options
- widget_wpinventory_categories_widget
- can_compress_scripts
- widget_recent-comments
- db_upgraded
- wpinventory_settings
- widget_recent-posts
- wpim_default_data
- widget_theysaidso_widget
- widget_wpinventory_latest_items_widget
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Good news, no errors were detected
SRP 50% 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
The following issues need your attention
- 32× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'WPIMCore' not found in wp-content/plugins/wp-inventory-manager/includes/wpinventory.default.php:3
- > PHP Notice
Undefined variable: display_address in wp-content/plugins/wp-inventory-manager/views/reserve-form.php on line 26
- > PHP Fatal error
Uncaught Error: Call to undefined function apply_filters() in wp-content/plugins/wp-inventory-manager/views/single-loop-all-table.php:21
- > PHP Notice
Undefined variable: display_zip in wp-content/plugins/wp-inventory-manager/views/reserve-form.php on line 53
- > PHP Fatal error
Uncaught Error: Call to undefined function wpinventory_get_items() in wp-content/plugins/wp-inventory-manager/views/loop-search.php:19
- > PHP Fatal error
Uncaught Error: Call to undefined function wpinventory_get_display_settings() in wp-content/plugins/wp-inventory-manager/views/widget-latest-items-single.php:11
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/wp-inventory-manager/includes/wpinventory.reserve.class.php:39
- > PHP Fatal error
Uncaught Error: Call to undefined function wpinventory_is_single() in wp-content/plugins/wp-inventory-manager/views/loop-category.php:19
- > PHP Notice
Undefined variable: error in wp-content/plugins/wp-inventory-manager/views/reserve-form.php on line 14
- > PHP Fatal error
Uncaught Error: Call to undefined function wpinventory_have_items() in wp-content/plugins/wp-inventory-manager/views/widget-latest-items-loop.php:15
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
No browser errors were detected
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
2 plugin tags: inventory, inventory manager
wp-inventory-manager/wpinventory.php 85% from 13 tests
The main PHP script in "WP Inventory Manager" version 2.1.0.14 is automatically included on every request by WordPress
Please take the time to fix the following:
- Text Domain: The text domain must be the same as the plugin slug, although optional since WordPress version 4.6
- Main file name: Name the main plugin file the same as the plugin slug ("wp-inventory-manager.php" instead of "wpinventory.php")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short check of programming languages and file extensions; no executable files are allowed
Good job! No executable or dangerous file extensions detected59,853 lines of code in 199 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JavaScript | 79 | 7,600 | 16,966 | 27,050 |
PO File | 8 | 3,853 | 4,903 | 9,525 |
PHP | 41 | 2,291 | 2,048 | 9,376 |
CSS | 40 | 447 | 196 | 7,416 |
SVG | 1 | 0 | 0 | 2,671 |
Sass | 15 | 87 | 37 | 2,055 |
LESS | 14 | 34 | 44 | 1,758 |
Markdown | 1 | 0 | 0 | 2 |
PHP code Passed 2 tests
This plugin's cyclomatic complexity and code structure detailed below
There were no cyclomatic complexity issued detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.33 |
Average class complexity | 42.44 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 319.00 |
Average method complexity | 3.34 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 46.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 25 | |
▷ Abstract classes | 2 | 8.00% |
▷ Concrete classes | 23 | 92.00% |
▷ Final classes | 2 | 8.70% |
Methods | 422 | |
▷ Static methods | 251 | 59.48% |
▷ Public methods | 301 | 71.33% |
▷ Protected methods | 50 | 11.85% |
▷ Private methods | 71 | 16.82% |
Functions | 121 | |
▷ Named functions | 105 | 86.78% |
▷ Anonymous functions | 16 | 13.22% |
Constants | 13 | |
▷ Global constants | 1 | 7.69% |
▷ Class constants | 12 | 92.31% |
▷ Public constants | 12 | 100.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
32 PNG files occupy 1.38MB with 0.71MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/screenshot-5.png | 73.99KB | 20.56KB | ▼ 72.21% |
images/icons/disable_detail_page.png | 2.68KB | 1.16KB | ▼ 56.78% |
images/admin-h-icon.png | 17.70KB | 8.25KB | ▼ 53.38% |
assets/screenshot-2.png | 67.62KB | 15.94KB | ▼ 76.43% |
images/icons/advanced_user_control.png | 4.68KB | 4.72KB | 0.00% |