Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
The plugin installed gracefully, with no errors
Server metrics [RAM: ▲1.10MB] [CPU: ▲7.08ms] Passed 4 tests
This is a short check of server-side resources used by WooCommerce Product Table Lite
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.57 ▲1.11 | 43.00 ▲2.15 |
Dashboard /wp-admin | 4.40 ▲1.10 | 62.75 ▲15.86 |
Posts /wp-admin/edit.php | 4.45 ▲1.10 | 56.74 ▲6.45 |
Add New Post /wp-admin/post-new.php | 7.00 ▲1.12 | 93.90 ▲8.91 |
Media Library /wp-admin/upload.php | 4.32 ▲1.09 | 45.01 ▲10.79 |
Add New Product Table /wp-admin/post-new.php?post_type=wc_product_table | 3.41 | 19.96 |
Addons /wp-admin/edit.php?post_type=wc_product_table&page=wcpt-addons | 4.23 | 43.25 |
Product Tables /wp-admin/edit.php?post_type=wc_product_table | 4.38 | 42.02 |
Add New Table /wp-admin/edit.php?post_type=wc_product_table&page=wcpt-edit | 4.12 | 29.59 |
Settings /wp-admin/edit.php?post_type=wc_product_table&page=wcpt-settings | 4.33 | 38.22 |
Server storage [IO: ▲3.50MB] [DB: ▲0.00MB] Passed 3 tests
A short overview of filesystem and database impact
No storage issues were detected
Filesystem: 567 new files
Database: no new tables, 6 new options
New WordPress options |
---|
widget_theysaidso_widget |
theysaidso_admin_options |
can_compress_scripts |
db_upgraded |
widget_recent-comments |
widget_recent-posts |
Browser metrics Passed 4 tests
WooCommerce Product Table Lite: an overview of browser usage
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,853 ▲91 | 14.14 ▼0.60 | 1.67 ▲0.00 | 41.39 ▲1.09 |
Dashboard /wp-admin | 2,252 ▲74 | 5.62 ▼0.07 | 91.03 ▼18.84 | 37.88 ▼4.77 |
Posts /wp-admin/edit.php | 2,164 ▲61 | 2.04 ▲0.02 | 39.78 ▼4.82 | 34.26 ▼5.26 |
Add New Post /wp-admin/post-new.php | 1,581 ▲55 | 23.32 ▼0.55 | 676.93 ▼10.75 | 54.51 ▼0.86 |
Media Library /wp-admin/upload.php | 1,463 ▲63 | 4.22 ▲0.04 | 106.87 ▼7.67 | 44.36 ▼1.87 |
Add New Product Table /wp-admin/post-new.php?post_type=wc_product_table | 1,059 | 3.69 | 50.03 | 84.69 |
Addons /wp-admin/edit.php?post_type=wc_product_table&page=wcpt-addons | 813 | 2.02 | 24.94 | 22.42 |
Product Tables /wp-admin/edit.php?post_type=wc_product_table | 1,253 | 2.05 | 34.38 | 36.24 |
Add New Table /wp-admin/edit.php?post_type=wc_product_table&page=wcpt-edit | 1,056 | 3.70 | 46.42 | 38.64 |
Settings /wp-admin/edit.php?post_type=wc_product_table&page=wcpt-settings | 1,056 | 3.69 | 48.66 | 39.23 |
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
- This plugin did not uninstall successfully, leaving 6 options in the database
- widget_recent-posts
- widget_recent-comments
- widget_theysaidso_widget
- theysaidso_admin_options
- db_upgraded
- can_compress_scripts
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
These errors were triggered by the plugin
- 2 occurences, only the last one shown
- > GET request to /wp-admin/edit.php?post_type=wc_product_table&page=wcpt-edit
- > Notice in wp-content/plugins/wc-product-table-lite/presets/presets.php+109
Undefined index: post_id
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
The following issues need your attention
- 41× GET requests to PHP files return non-empty strings (only 10 are shown):
- > /wp-content/plugins/wc-product-table-lite/editor/partials/style/borders.php
- > /wp-content/plugins/wc-product-table-lite/editor/partials/style/cells.php
- > /wp-content/plugins/wc-product-table-lite/editor/partials/element-editor/partials/space.php
- > /wp-content/plugins/wc-product-table-lite/editor/partials/element-editor/partials/heading_format__op_selected.php
- > /wp-content/plugins/wc-product-table-lite/templates/row-close.php
- > /wp-content/plugins/wc-product-table-lite/editor/partials/element-editor/partials/dot.php
- > /wp-content/plugins/wc-product-table-lite/editor/partials/element-editor/partials/price-style.php
- > /wp-content/plugins/wc-product-table-lite/templates/cell-value-close.php
- > /wp-content/plugins/wc-product-table-lite/editor/partials/element-editor/partials/sort_modal.php
- > /wp-content/plugins/wc-product-table-lite/editor/partials/element-editor/partials/badge.php
- 133× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function wcpt_get_table_data() in wp-content/plugins/wc-product-table-lite/templates/lazy-load.php:2
- > PHP Fatal error
Uncaught Error: Call to undefined function wcpt_icon() in wp-content/plugins/wc-product-table-lite/editor/partials/element-editor/partials/style/parent-child.php:8
- > PHP Fatal error
Uncaught Error: Call to undefined function wcpt_get_table_data() in wp-content/plugins/wc-product-table-lite/editor/partials/checklist.php:2
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/wc-product-table-lite/presets/presets.php:14
- > PHP Notice
Undefined variable: field in wp-content/plugins/wc-product-table-lite/editor/settings-partials/search__common1.php on line 1
- > PHP Fatal error
Uncaught Error: Class 'WP_Query' not found in wp-content/plugins/wc-product-table-lite/editor/settings-partials/archive-override.php:2
- > PHP Fatal error
Uncaught Error: Call to undefined function wcpt_icon() in wp-content/plugins/wc-product-table-lite/editor/settings-partials/search__common2.php:9
- > PHP Fatal error
Uncaught Error: Call to undefined function wcpt_print_icon_dopdown() in wp-content/plugins/wc-product-table-lite/editor/partials/element-editor/partials/icon.php:3
- > PHP Fatal error
Uncaught Error: Call to undefined function wcpt_general_placeholders__print_placeholders() in wp-content/plugins/wc-product-table-lite/editor/partials/element-editor/partials/html__col.php:5
- > PHP Fatal error
Uncaught Error: Call to undefined function wcpt_pro_badge() in wp-content/plugins/wc-product-table-lite/editor/settings-partials/search.php:5
- > 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 86% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file uses markdown syntax to describe your plugin to the world
These attributes need to be fixed:
- Tags: Too many tags (11 tag instead of maximum 10); only the first 5 tags are used in your directory listing
wc-product-table-lite/main.php 77% from 13 tests
The entry point to "WooCommerce Product Table Lite" version 3.1.2 is a PHP file that has certain tags in its header comment area
You should first fix the following items:
- Requires at least: The required version number must match the one declared in readme.txt ("4.9" instead of "3.4.4")
- Main file name: Even though not officially enforced, the main plugin file should be the same as the plugin slug ("wc-product-table-lite.php" instead of "main.php")
- Text Domain: Since WordPress version 4.6 the text domain is optional; if specified, it must be the same as the plugin slug
Code Analysis Passed 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 detected46,174 lines of code in 554 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 228 | 5,070 | 1,797 | 26,250 |
JavaScript | 30 | 3,079 | 2,348 | 10,734 |
CSS | 22 | 1,770 | 452 | 8,689 |
SVG | 269 | 0 | 0 | 274 |
HTML | 3 | 32 | 8 | 225 |
JSON | 2 | 0 | 0 | 2 |
PHP code Passed 2 tests
Analyzing cyclomatic complexity and code structure
This plugin has no cyclomatic complexity problems
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.55 |
Average class complexity | 85.60 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 194.00 |
Average method complexity | 6.10 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 82.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 5 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 5 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 83 | |
▷ Static methods | 9 | 10.84% |
▷ Public methods | 73 | 87.95% |
▷ Protected methods | 6 | 7.23% |
▷ Private methods | 4 | 4.82% |
Functions | 170 | |
▷ Named functions | 169 | 99.41% |
▷ Anonymous functions | 1 | 0.59% |
Constants | 13 | |
▷ Global constants | 4 | 30.77% |
▷ Class constants | 9 | 69.23% |
▷ Public constants | 9 | 100.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
4 PNG files occupy 1.14MB with 0.85MB in potential savings
Potential savings
Compression of 4 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
presets/thumb/list-layout.png | 367.13KB | 98.48KB | ▼ 73.18% |
presets/thumb/compact-table.png | 516.38KB | 139.37KB | ▼ 73.01% |
presets/thumb/regular-table.png | 270.35KB | 75.45KB | ▼ 72.09% |
presets/thumb/blank.png | 14.30KB | 2.96KB | ▼ 79.29% |