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
This plugin's installer ran successfully
Server metrics [RAM: ▲2.71MB] [CPU: ▲12.25ms] Passed 4 tests
A check of server-side resources used by Max Grid
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.99 ▲2.52 | 46.96 ▲4.32 |
Dashboard /wp-admin | 6.09 ▲2.79 | 64.39 ▲14.86 |
Posts /wp-admin/edit.php | 6.14 ▲2.78 | 67.10 ▲20.42 |
Add New Post /wp-admin/post-new.php | 8.97 ▲3.08 | 101.50 ▲9.40 |
Media Library /wp-admin/upload.php | 5.99 ▲2.76 | 60.32 ▲27.11 |
Extensions /wp-admin/admin.php?page=maxgrid-extentions | 5.99 | 50.07 |
Grid Builder /wp-admin/admin.php?page=maxgrid-builder | 5.89 | 42.05 |
Settings /wp-admin/admin.php?page=maxgrid-settings | 5.98 | 47.30 |
Server storage [IO: ▲2.16MB] [DB: ▲0.08MB] Passed 3 tests
How much does this plugin use your filesystem and database?
There were no storage issued detected upon installing this plugin
Filesystem: 115 new files
Database: 1 new table, 7 new options
New tables |
---|
wp_maxgrid_grid_templates_tbl |
New WordPress options |
---|
theysaidso_admin_options |
widget_theysaidso_widget |
recovery_mode_email_last_sent |
db_upgraded |
widget_recent-comments |
can_compress_scripts |
widget_recent-posts |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Max Grid
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,554 ▲808 | 17.49 ▲2.74 | 70.19 ▲68.43 | 88.41 ▲40.66 |
Dashboard /wp-admin | 2,405 ▲220 | 6.92 ▲2.04 | 136.43 ▲11.34 | 41.57 ▼11.70 |
Posts /wp-admin/edit.php | 2,314 ▲225 | 3.73 ▲1.71 | 52.08 ▲17.99 | 31.32 ▼6.06 |
Add New Post /wp-admin/post-new.php | 1,879 ▲360 | 21.09 ▼1.97 | 667.56 ▲17.58 | 49.97 ▼8.59 |
Media Library /wp-admin/upload.php | 1,447 ▲56 | 4.50 ▲0.17 | 97.81 ▼8.34 | 46.82 ▲3.78 |
Extensions /wp-admin/admin.php?page=maxgrid-extentions | 1,187 | 3.44 | 52.61 | 112.80 |
Grid Builder /wp-admin/admin.php?page=maxgrid-builder | 5,758 | 3.09 | 75.35 | 58.74 |
Settings /wp-admin/admin.php?page=maxgrid-settings | 943 | 1.99 | 26.02 | 47.47 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.08MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
It is recommended to fix the following
- The uninstall procedure failed, leaving 1 table in the database
- wp_maxgrid_grid_templates_tbl
- This plugin does not fully uninstall, leaving 7 options in the database
- widget_theysaidso_widget
- recovery_mode_email_last_sent
- widget_recent-comments
- widget_recent-posts
- can_compress_scripts
- theysaidso_admin_options
- db_upgraded
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
These server-side errors were triggered
- > GET request to /wp-admin/admin.php?page=maxgrid-builder
- > Notice in wp-content/plugins/max-grid/builder/class-builder.php+175
Undefined variable: my_exclude_cats
- > GET request to /wp-admin/admin.php?page=maxgrid-builder
- > Error in wp-content/plugins/max-grid/assets/admin/class-html-elements.php+544
Uncaught Error: Call to undefined method MaxGrid\Form::SaveChanges() in wp-content/plugins/max-grid/assets/admin/class-html-elements.php:544
Stack trace:
#0 wp-content/plugins/max-grid/assets/admin/class-settings-page.php(457): MaxGrid\Form->render()
#1 wp-admin/includes/template.php(1824): Max_Grid_Settings_Page->builder_settings()
#2 wp-admin/includes/template.php(1778): do_settings_fields()
#3 wp-content/plugins/max-grid/assets/admin/class-settings-page.php(108): do_settings_sections()
#4 wp-includes/class-wp-hook.php(310): Max_Grid_Settings_Page::builder_page()
#5 wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters()
#6 wp-includes/plugin.php(517): WP_Hook->do_action()
#7 wp-admin/admin.php(259): do_action()
#8 {main}
thrown- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=maxgrid-settings
- > Notice in wp-content/plugins/max-grid/assets/admin/class-html-elements.php+285
Undefined variable: id
- > GET request to /wp-admin/admin.php?page=maxgrid-settings
- > Notice in wp-content/plugins/max-grid/assets/admin/class-html-elements.php+285
Undefined variable: name
- > GET request to /wp-admin/admin.php?page=maxgrid-settings
- > Notice in wp-content/plugins/max-grid/assets/admin/class-html-elements.php+285
Undefined variable: current
- > GET request to /wp-admin/admin.php?page=maxgrid-settings
- > Notice in wp-content/plugins/max-grid/assets/admin/class-html-elements.php+285
Undefined variable: target
- > GET request to /wp-admin/admin.php?page=maxgrid-settings
- > Notice in wp-content/plugins/max-grid/assets/admin/class-html-elements.php+286
Undefined index: id
- > GET request to /wp-admin/admin.php?page=maxgrid-settings
- > Error in wp-content/plugins/max-grid/assets/admin/class-html-elements.php+544
Uncaught Error: Call to undefined method MaxGrid\Form::CheckBox() in wp-content/plugins/max-grid/assets/admin/class-html-elements.php:544
Stack trace:
#0 wp-content/plugins/max-grid/assets/admin/class-settings-page.php(1074): MaxGrid\Form->render()
#1 wp-admin/includes/template.php(1824): Max_Grid_Settings_Page->forms_settings()
#2 wp-admin/includes/template.php(1778): do_settings_fields()
#3 wp-content/plugins/max-grid/assets/admin/class-settings-page.php(201): do_settings_sections()
#4 wp-includes/class-wp-hook.php(310): Max_Grid_Settings_Page::settings_page()
#5 wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters()
#6 wp-includes/plugin.php(517): WP_Hook->do_action()
#7 wp-admin/admin.php(259): do_action()
#8 {main}
thrown
SRP 0% from 2 tests
🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please fix the following
- 1× PHP files output text when accessed directly:
- > /wp-content/plugins/max-grid/builder/loader.php
- 4× PHP files trigger server-side errors or warnings when accessed directly:
- > PHP Fatal error
Uncaught Error: Call to undefined function get_header() in wp-content/plugins/max-grid/includes/preview-mode-template.php:1
- > PHP Warning
require_once(ABSPATHwp-includes/pluggable.php): failed to open stream: No such file or directory in wp-content/plugins/max-grid/tinymce/mce-max-grid.php on line 6
- > PHP Warning
Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/max-grid/tinymce/mce-max-grid.php on line 6
- > PHP Fatal error
require_once(): Failed opening required 'ABSPATHwp-includes/pluggable.php' (include_path='.:/usr/share/php') in wp-content/plugins/max-grid/tinymce/mce-max-grid.php on line 6
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
These are user-side errors you should fix
- > GET request to /wp-admin/admin.php?page=maxgrid-builder
- > Console-api (warning) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.3.1 1:28609 "jQuery.Deferred exception: Cannot read properties of null (reading 'options')" "TypeError: Cannot read properties of null (reading 'options')\n at maxgrid_is_option_exist (/wp-content/plugins/max-grid/builder/js/builder-functions.js?ver=NULL:34:25)\n at HTMLDocument.\u003Canonymous> (/wp-content/plugins/max-grid/builder/js/builder.js?ver=6.3.1:170:8)\n at e (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.3.1:2:26990)\n at t (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.3.1:2:27292)" undefined
- > GET request to /wp-admin/admin.php?page=maxgrid-builder
- > Console-api (warning) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.3.1 1:28609 "jQuery.Deferred exception: $(...).wpColorPicker is not a function" "TypeError: $(...).wpColorPicker is not a function\n at HTMLDocument.\u003Canonymous> (/wp-content/plugins/max-grid/builder/js/maxgrid-preview-mode.js?ver=NULL:13:26)\n at e (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.3.1:2:26990)\n at t (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.3.1:2:27292)" undefined
- > GET request to /wp-admin/admin.php?page=maxgrid-builder
- > Javascript (severe) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.3.1 1:28721 Uncaught TypeError: Cannot read properties of null (reading 'options')
- > GET request to /wp-admin/admin.php?page=maxgrid-builder
- > Javascript (severe) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.3.1 1:28721 Uncaught TypeError: $(...).wpColorPicker is not a function
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 88% from 16 tests
Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
Attributes that need to be fixed:
- Requires php: Invalid version format
- Tags: There are too many tags (11 tag instead of maximum 10)
max-grid/max-grid.php 92% from 13 tests
The entry point to "Max Grid" version 1.1.2 is a PHP file that has certain tags in its header comment area
You should first fix the following items:
- Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 147 characters long)
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Good job! No executable or dangerous file extensions detected29,900 lines of code in 94 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 38 | 1,951 | 2,438 | 12,542 |
CSS | 23 | 343 | 613 | 10,047 |
JavaScript | 30 | 1,254 | 917 | 6,785 |
PO File | 1 | 191 | 230 | 468 |
SVG | 2 | 0 | 0 | 58 |
PHP code 50% from 2 tests
An short overview of logical lines of code, cyclomatic complexity, and other code metrics
Please fix the following
- Method cyclomatic complexity should be reduced to less than 100 (currently 515)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.50 |
Average class complexity | 74.74 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 535.00 |
Average method complexity | 10.53 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 515.00 |
Code structure | ||
---|---|---|
Namespaces | 1 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 31 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 31 | 100.00% |
▷ Final classes | 1 | 3.23% |
Methods | 227 | |
▷ Static methods | 41 | 18.06% |
▷ Public methods | 209 | 92.07% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 18 | 7.93% |
Functions | 55 | |
▷ Named functions | 52 | 94.55% |
▷ Anonymous functions | 3 | 5.45% |
Constants | 29 | |
▷ Global constants | 25 | 86.21% |
▷ Class constants | 4 | 13.79% |
▷ Public constants | 4 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
9 PNG files occupy 0.18MB with 0.11MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
tinymce/css/woo-icon.png | 0.95KB | 0.97KB | 0.00% |
assets/images/max-grid-icon-blue.png | 58.58KB | 0.32KB | ▼ 99.45% |
assets/images/max-grid-icon-light.png | 58.61KB | 0.32KB | ▼ 99.45% |
assets/images/max-grid-icon.png | 58.55KB | 0.38KB | ▼ 99.35% |
tinymce/css/mce-grid-icon.png | 0.14KB | 0.15KB | 0.00% |