Benchmarks
Plugin footprint 39% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
These installer errors require your attention
- Install procedure had errors
- > Notice in wp-content/plugins/ap-mega-menu/inc/backend/activation.php+176
Undefined variable: wpmm_second_menu
Server metrics [RAM: ▲0.84MB] [CPU: ▼293.07ms] Passed 4 tests
A check of server-side resources used by Mega Menu Plugin for WordPress - AP Mega Menu
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.39 ▲0.87 | 55.92 ▲8.21 |
Dashboard /wp-admin | 4.25 ▲0.84 | 39.01 ▲4.90 |
Posts /wp-admin/edit.php | 4.47 ▲0.83 | 40.60 ▲3.26 |
Add New Post /wp-admin/post-new.php | 7.77 ▲0.80 | 94.73 ▼1,183.04 |
Media Library /wp-admin/upload.php | 4.20 ▲0.90 | 28.64 ▲2.59 |
Create theme /wp-admin/admin.php?page=wpmm-add-theme | 4.37 | 40.41 |
More WordPress Stuff /wp-admin/admin.php?page=wpmm-about-us | 4.19 | 29.29 |
General Settings /wp-admin/admin.php?page=ap-mega-menu | 4.28 | 28.85 |
Menus /wp-admin/nav-menus.php | 4.21 | 38.58 |
Documentation /wp-admin/admin.php?page=apmm-doclinks | 3.93 | 21.06 |
Check Premium Version /wp-admin/admin.php?page=apmm-premium | 3.93 | 25.60 |
Theme Settings /wp-admin/admin.php?page=wpmm-theme-settings | 4.21 | 31.60 |
Widgets /wp-admin/widgets.php | 5.98 | 51.90 |
How to Use /wp-admin/admin.php?page=wpmm-how-to-use | 4.21 | 25.90 |
Server storage [IO: ▲34.91MB] [DB: ▲0.03MB] 67% from 3 tests
How much does this plugin use your filesystem and database?
Just a few items left to fix
- Try to limit filesystem usage to 25MB (currently using 34.91MB)
Filesystem: 3,857 new files
Database: 1 new table, 8 new options
New tables |
---|
wp_apmm_custom_theme |
New WordPress options |
---|
apmm_font_family |
wpmm_default_settings |
apmm_register_skin |
widget_wpmegamenu_contact_info |
widget_wpmegamenu_pro_linkimage |
widget_wpmegamenu_widget |
widget_wpmegamenu_pro_html_text |
apmega_settings |
Browser metrics 75% from 4 tests
This is an overview of browser requirements for Mega Menu Plugin for WordPress - AP Mega Menu
Having an awesome user experience is important, so please improve the following
- Nodes: It is recommended to reduce the number of DOM nodes under 25,000 (currently 29,880 on /wp-admin/admin.php?page=wpmm-add-theme)
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 4,049 ▲295 | 16.96 ▲1.24 | 13.78 ▲8.08 | 2.76 ▼0.23 |
Dashboard /wp-admin | 2,995 ▲134 | 7.01 ▲0.86 | 118.43 ▼19.38 | 159.13 ▼5.26 |
Posts /wp-admin/edit.php | 2,799 ▲108 | 3.47 ▲0.24 | 70.67 ▲5.99 | 157.14 ▲13.99 |
Add New Post /wp-admin/post-new.php | 1,758 ▲97 | 19.22 ▲3.66 | 401.32 ▼19.03 | 158.27 ▲7.47 |
Media Library /wp-admin/upload.php | 1,801 ▲100 | 5.96 ▲0.42 | 128.62 ▼10.77 | 191.10 ▲5.99 |
Create theme /wp-admin/admin.php?page=wpmm-add-theme | 29,880 | 6.18 | 334.47 | 132.03 |
More WordPress Stuff /wp-admin/admin.php?page=wpmm-about-us | 1,538 | 5.69 | 154.41 | 203.45 |
General Settings /wp-admin/admin.php?page=ap-mega-menu | 2,692 | 6.10 | 132.58 | 206.86 |
Menus /wp-admin/nav-menus.php | 2,863 | 7.64 | 133.38 | 126.45 |
Documentation /wp-admin/admin.php?page=apmm-doclinks | 1,832 | 8.36 | 301.96 | 246.84 |
Check Premium Version /wp-admin/admin.php?page=apmm-premium | 4,059 | 28.93 | 808.36 | 216.36 |
Theme Settings /wp-admin/admin.php?page=wpmm-theme-settings | 1,495 | 5.57 | 115.79 | 187.98 |
Widgets /wp-admin/widgets.php | 2,554 | 23.45 | 630.56 | 180.90 |
How to Use /wp-admin/admin.php?page=wpmm-how-to-use | 1,751 | 5.72 | 121.74 | 248.61 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.03MB] 50% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
You still need to fix the following
- Zombie tables were found after uninstall: 1 table
- wp_apmm_custom_theme
- Zombie WordPress options were found after uninstall: 8 options
- apmm_font_family
- widget_wpmegamenu_contact_info
- apmm_register_skin
- widget_wpmegamenu_pro_linkimage
- widget_wpmegamenu_widget
- wpmm_default_settings
- widget_wpmegamenu_pro_html_text
- apmega_settings
Smoke tests 25% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Even though everything seems fine, this is not an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please fix the following items
- 46× PHP files perform the task of outputting text when accessed with GET requests (only 10 are shown):
- > /wp-content/plugins/ap-mega-menu/js/ckfinder/core/connector/php/vendor/mtdowling/jmespath.php/bin/jp.php
- > /wp-content/plugins/ap-mega-menu/inc/backend/about.php
- > /wp-content/plugins/ap-mega-menu/inc/backend/view/editor/social-icons_settings_editor.php
- > /wp-content/plugins/ap-mega-menu/inc/backend/view/editor/flyout_settings_editor.php
- > /wp-content/plugins/ap-mega-menu/inc/backend/view/save-theme-settings.php
- > /wp-content/plugins/ap-mega-menu/inc/backend/wpmm_search_shortcode.php
- > /wp-content/plugins/ap-mega-menu/inc/backend/multisite-activation.php
- > /wp-content/plugins/ap-mega-menu/inc/backend/view/add_theme_settings.php
- > /wp-content/plugins/ap-mega-menu/inc/backend/tabs/image-settings.php
- > /wp-content/plugins/ap-mega-menu/inc/admin/menu_settings_class.php
- 1384× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface 'Aws\\Crypto\\AesStreamInterface' not found in wp-content/plugins/ap-mega-menu/js/ckfinder/core/connector/php/vendor/aws/aws-sdk-php/src/Crypto/AesGcmDecryptingStream.php:12
- > PHP Fatal error
Uncaught Error: Class 'Aws\\AwsClient' not found in wp-content/plugins/ap-mega-menu/js/ckfinder/core/connector/php/vendor/aws/aws-sdk-php/src/Lightsail/LightsailClient.php:235
- > PHP Fatal error
Uncaught Error: Class 'Aws\\Exception\\AwsException' not found in wp-content/plugins/ap-mega-menu/js/ckfinder/core/connector/php/vendor/aws/aws-sdk-php/src/EKS/Exception/EKSException.php:9
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit_Framework_TestCase' not found in wp-content/plugins/ap-mega-menu/js/ckfinder/core/connector/php/vendor/microsoft/azure-storage/tests/unit/Table/Models/Filters/FilterTest.php:40
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/ap-mega-menu/js/ckfinder/core/connector/php/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php:19
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Formatter\ormalizerFormatter' not found in wp-content/plugins/ap-mega-menu/js/ckfinder/core/connector/php/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php:25
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/ap-mega-menu/js/ckfinder/core/connector/php/vendor/mtdowling/jmespath.php/tests/LexerTest.php:11
- > PHP Fatal error
Uncaught Error: Class 'Aws\\AwsClient' not found in wp-content/plugins/ap-mega-menu/js/ckfinder/core/connector/php/vendor/aws/aws-sdk-php/src/Kms/KmsClient.php:102
- > PHP Fatal error
Uncaught Error: Interface 'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' not found in wp-content/plugins/ap-mega-menu/js/ckfinder/core/connector/php/vendor/symfony/var-dumper/Dumper/AbstractDumper.php:22
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/ap-mega-menu/js/ckfinder/core/connector/php/vendor/cksource/ckfinder/tests/CKSource/CKFinder/Tests/Acl/PermissionTest.php:23
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Please fix the following browser errors
- > GET request to /wp-admin/admin.php?page=ap-mega-menu
- > Rendering (warning) in unknown
/wp-admin/admin.php?page=ap-mega-menu 244 The specified value "3s" cannot be parsed, or is out of range.
- > GET request to /wp-admin/admin.php?page=ap-mega-menu
- > Rendering (warning) in unknown
/wp-admin/admin.php?page=ap-mega-menu 253 The specified value "2s" cannot be parsed, or is out of range.
- > GET request to /wp-admin/admin.php?page=apmm-doclinks
- > Javascript (severe) in unknown
https://accesspressthemes.com/documentation/ap-mega-menu/ - Access to script at 'https://embed.tawk.to/60cc2bbb65b7290ac63693ec/1f8eollms' from origin 'https://accesspressthemes.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=apmm-premium
- > Network (severe)
https://embed.tawk.to/60cc2bbb65b7290ac63693ec/1f8eollms - Failed to load resource: net::ERR_FAILED
- > GET request to /wp-admin/admin.php?page=apmm-premium
- > Other (warning) in unknown
https://accesspressthemes.com/wordpress-plugins/wp-mega-menu-pro/ 376 is not supported. Use , https://goo.gl/ximf56
- > GET request to /wp-admin/admin.php?page=apmm-premium
- > Javascript (severe) in unknown
https://accesspressthemes.com/wordpress-plugins/wp-mega-menu-pro/ - Access to script at 'https://embed.tawk.to/60cc2bbb65b7290ac63693ec/1f8eollms' from origin 'https://accesspressthemes.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Optimizations
Plugin configuration 96% from 29 tests
readme.txt Passed 16 tests
Don't ignore readme.txt as it is the file that instructs WordPress.org on how to present your plugin to the world
9 plugin tags: responsive mega menu, mega menu, flyout menu, responsive, horizontal menu...
ap-mega-menu/ap-mega-menu.php 92% from 13 tests
"Mega Menu Plugin for WordPress - AP Mega Menu" version 3.0.8's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
You should first fix the following items:
- Git Repository: Please remove the Git repository from this plugin
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 detected197,305 lines of code in 3,218 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 2,529 | 28,359 | 87,138 | 125,530 |
JSON | 147 | 8 | 0 | 24,508 |
CSS | 43 | 1,969 | 899 | 21,270 |
Markdown | 77 | 3,402 | 0 | 11,411 |
JavaScript | 297 | 979 | 1,592 | 9,716 |
SVG | 88 | 0 | 56 | 3,595 |
HTML | 8 | 83 | 32 | 464 |
XML | 15 | 29 | 2 | 281 |
Ant | 1 | 40 | 18 | 225 |
reStructuredText | 2 | 129 | 164 | 156 |
YAML | 7 | 18 | 0 | 114 |
make | 2 | 10 | 0 | 22 |
Dockerfile | 1 | 8 | 0 | 10 |
Bourne Shell | 1 | 2 | 0 | 3 |
PHP code 50% from 2 tests
A short review of cyclomatic complexity and code structure
The following items need your attention
- Cyclomatic complexity of methods should be reduced to less than 100 (currently 138)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.30 |
Average class complexity | 7.86 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 316.00 |
Average method complexity | 2.37 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 138.00 |
Code structure | ||
---|---|---|
Namespaces | 657 | |
Interfaces | 131 | |
Traits | 30 | |
Classes | 1,648 | |
▷ Abstract classes | 49 | 2.97% |
▷ Concrete classes | 1,599 | 97.03% |
▷ Final classes | 110 | 6.88% |
Methods | 9,080 | |
▷ Static methods | 1,002 | 11.04% |
▷ Public methods | 7,467 | 82.24% |
▷ Protected methods | 589 | 6.49% |
▷ Private methods | 1,024 | 11.28% |
Functions | 689 | |
▷ Named functions | 158 | 22.93% |
▷ Anonymous functions | 531 | 77.07% |
Constants | 1,058 | |
▷ Global constants | 51 | 4.82% |
▷ Class constants | 1,007 | 95.18% |
▷ Public constants | 991 | 98.41% |
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
559 PNG files occupy 4.13MB with 0.75MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
js/ckfinder/skins/core/file-icons/22/directory.png | 0.86KB | 1.26KB | 0.00% |
js/ckfinder/skins/core/file-icons/22/access.png | 0.85KB | 0.80KB | ▼ 6.19% |
images/mega_menu_images/flyout-left.PNG | 1.29KB | 0.20KB | ▼ 84.52% |
js/ckfinder/skins/core/file-icons/22/excel.png | 1.02KB | 1.11KB | 0.00% |
js/ckfinder/libs/images/icons-png/back-black.png | 0.23KB | 0.32KB | 0.00% |