Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Installer ran successfully
Server metrics [RAM: ▲0.28MB] [CPU: ▼3.19ms] Passed 4 tests
An overview of server-side resources used by WooCommerce Wishlist, Low Stock & Back-in-Stock Waitlist, Save for Later, Bundle Builder, Email & So More!(All-in-One Marketing)
This plugin does not affect your website's performance
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.77 ▲0.31 | 39.72 ▼0.50 |
Dashboard /wp-admin | 3.62 ▲0.28 | 47.75 ▼13.51 |
Posts /wp-admin/edit.php | 3.68 ▲0.32 | 47.56 ▲0.89 |
Add New Post /wp-admin/post-new.php | 6.14 ▲0.26 | 92.89 ▲2.35 |
Media Library /wp-admin/upload.php | 3.49 ▲0.26 | 34.00 ▲0.35 |
Server storage [IO: ▲19.71MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
This plugin installed successfully
Filesystem: 952 new files
Database: no new tables, 10 new options
New WordPress options |
---|
wlfmc_wishlist_activation_date |
smart-wishlist-for-more-convert_tracking_notice |
widget_theysaidso_widget |
theysaidso_admin_options |
wlfmc-finish-wizard-notice |
wlfmc-skip-wizard-notice |
widget_recent-posts |
can_compress_scripts |
widget_recent-comments |
db_upgraded |
Browser metrics Passed 4 tests
WooCommerce Wishlist, Low Stock & Back-in-Stock Waitlist, Save for Later, Bundle Builder, Email & So More!(All-in-One Marketing): an overview of browser usage
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,796 ▲60 | 14.27 ▼0.44 | 1.78 ▼0.08 | 44.31 ▼5.63 |
Dashboard /wp-admin | 2,201 ▲24 | 5.64 ▲0.03 | 89.81 ▼4.78 | 38.61 ▼3.11 |
Posts /wp-admin/edit.php | 2,110 ▲10 | 1.94 ▲0.00 | 37.95 ▲2.59 | 33.64 ▼0.76 |
Add New Post /wp-admin/post-new.php | 1,532 ▲6 | 23.37 ▲0.02 | 616.74 ▼16.54 | 50.65 ▼0.05 |
Media Library /wp-admin/upload.php | 1,406 ▲3 | 4.16 ▼0.03 | 96.83 ▼1.19 | 41.78 ▼0.72 |
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
- Zombie WordPress options detected upon uninstall: 9 options
- can_compress_scripts
- wlfmc_wishlist_activation_date
- db_upgraded
- wlfmc-skip-wizard-notice
- theysaidso_admin_options
- wlfmc-finish-wizard-notice
- widget_recent-posts
- widget_recent-comments
- widget_theysaidso_widget
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Even though everything seems fine, this is not an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
Almost there! Just fix the following items
- 2× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/smart-wishlist-for-more-convert/vendor/enshrined/svg-sanitize/src/svg-scanner.php
- > /wp-content/plugins/smart-wishlist-for-more-convert/lib/tcpdf/tools/tcpdf_addfont.php
- 13× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function blocksy_default_akg() in wp-content/plugins/smart-wishlist-for-more-convert/includes/integrations/blocksy/wishlist-counter/view.php:19
- > PHP Warning
array_values() expects parameter 1 to be array, null given in wp-content/plugins/smart-wishlist-for-more-convert/vendor/enshrined/svg-sanitize/src/svg-scanner.php on line 70
- > PHP Fatal error
Uncaught Error: Call to undefined function Kadence_Wlfmc\\add_filter() in wp-content/plugins/smart-wishlist-for-more-convert/includes/integrations/kadence/class-header-wishlist.php:70
- > PHP Fatal error
Uncaught Error: Call to undefined function HFG\\component_setting() in wp-content/plugins/smart-wishlist-for-more-convert/includes/integrations/neve/templates/component-wishlist-counter.php:14
- > PHP Fatal error
Uncaught Error: Interface 'enshrined\\svgSanitize\\data\\TagInterface' not found in wp-content/plugins/smart-wishlist-for-more-convert/vendor/enshrined/svg-sanitize/src/data/AllowedTags.php:9
- > PHP Fatal error
Uncaught Error: Call to undefined function Kadence_Wlfmc\\do_action() in wp-content/plugins/smart-wishlist-for-more-convert/includes/integrations/kadence/templates/mobile-wishlist.php:18
- > PHP Fatal error
Uncaught Error: Class 'Kadence\\Theme_Customizer' not found in wp-content/plugins/smart-wishlist-for-more-convert/includes/integrations/kadence/header-wishlist-options.php:15
- > PHP Fatal error
Uncaught Error: Class 'HFG\\Core\\Components\\Abstract_Component' not found in wp-content/plugins/smart-wishlist-for-more-convert/includes/integrations/neve/components/class-wishlist-counter.php:21
- > PHP Fatal error
Uncaught Error: Call to undefined function __() in wp-content/plugins/smart-wishlist-for-more-convert/includes/integrations/blocksy/wishlist-counter/config.php:11
- > PHP Fatal error
Uncaught Error: Call to undefined function Kadence_Wlfmc\\do_action() in wp-content/plugins/smart-wishlist-for-more-convert/includes/integrations/kadence/templates/wishlist.php:18
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
No browser issues were found
Optimizations
Plugin configuration 90% from 29 tests
readme.txt Passed 16 tests
You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
10 plugin tags: back-in-stock, marketing, out of stock, woocommerce wishlist, bundle builder...
smart-wishlist-for-more-convert/smart-wishlist-for-more-convert.php 77% from 13 tests
Analyzing the main PHP file in "WooCommerce Wishlist, Low Stock & Back-in-Stock Waitlist, Save for Later, Bundle Builder, Email & So More!(All-in-One Marketing)" version 1.7.0
You should first fix the following items:
- Text Domain: If you choose to specify the text domain, it must be the same as the plugin slug; optional since WordPress version 4.6
- Requires at least: Required version must match the one declared in readme.txt ("5.3" instead of "5.7")
- Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 202 characters long)
Code Analysis 95% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
No dangerous file extensions were detected107,803 lines of code in 534 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 249 | 7,630 | 24,216 | 85,356 |
CSS | 15 | 1,712 | 272 | 9,545 |
JavaScript | 23 | 1,143 | 640 | 6,800 |
SVG | 235 | 156 | 93 | 5,032 |
PO File | 3 | 216 | 275 | 513 |
Markdown | 3 | 134 | 0 | 308 |
JSON | 5 | 0 | 0 | 179 |
XML | 1 | 0 | 0 | 70 |
PHP code 0% from 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
The following items need your attention
- Cyclomatic complexity of classes has to be reduced to less than 1000 (currently 4,415)
- Please reduce cyclomatic complexity of methods to less than 100 (currently 500)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.47 |
Average class complexity | 131.82 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 4,415.00 |
Average method complexity | 7.07 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 500.00 |
Code structure | ||
---|---|---|
Namespaces | 10 | |
Interfaces | 2 | |
Traits | 0 | |
Classes | 74 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 74 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 1,644 | |
▷ Static methods | 242 | 14.72% |
▷ Public methods | 1,228 | 74.70% |
▷ Protected methods | 328 | 19.95% |
▷ Private methods | 88 | 5.35% |
Functions | 342 | |
▷ Named functions | 322 | 94.15% |
▷ Anonymous functions | 20 | 5.85% |
Constants | 119 | |
▷ Global constants | 112 | 94.12% |
▷ Class constants | 7 | 5.88% |
▷ Public constants | 5 | 71.43% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
301 PNG files occupy 1.41MB with 0.30MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/frontend/images/social/square/black/instagram.png | 1.75KB | 1.68KB | ▼ 3.86% |
assets/frontend/images/social/square/grey/location.png | 2.75KB | 1.71KB | ▼ 37.67% |
assets/backend/images/dashboard/automation/automation.png | 73.52KB | 27.31KB | ▼ 62.85% |
assets/frontend/images/social/default/black/facebook.png | 0.71KB | 1.02KB | 0.00% |
assets/frontend/images/social/outlined_square/color/twitter.png | 1.98KB | 1.91KB | ▼ 3.64% |