Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲1.63MB] [CPU: ▲12.39ms] Passed 4 tests
A check of server-side resources used by Free Follow-Up Emails & Marketing Automation for WooCommerce - ShopMagic
This plugin does not affect your website's performance
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.16 ▲1.69 | 61.57 ▲22.71 |
Dashboard /wp-admin | 4.94 ▲1.60 | 65.38 ▼1.67 |
Posts /wp-admin/edit.php | 4.98 ▲1.62 | 60.96 ▲14.31 |
Add New Post /wp-admin/post-new.php | 7.71 ▲1.82 | 115.20 ▲14.21 |
Media Library /wp-admin/upload.php | 4.85 ▲1.63 | 59.56 ▲27.93 |
WP Desk Tracker /wp-admin/admin.php?page=wpdesk_tracker | 4.79 | 49.08 |
Deactivate plugin /wp-admin/admin.php?page=wpdesk_tracker_deactivate | 4.79 | 48.49 |
Lists /wp-admin/edit.php?post_type=shopmagic_list | 4.90 | 57.74 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 5.03 | 63.65 |
Server storage [IO: ▲7.02MB] [DB: ▲0.03MB] Passed 3 tests
A short overview of filesystem and database impact
This plugin was installed successfully
Filesystem: 1,688 new files
Database: 12 new tables, 13 new options
New tables |
---|
wp_shopmagic_automation_outcome_logs |
wp_shopmagic_marketing_lists |
wp_actionscheduler_logs |
wp_actionscheduler_actions |
wp_actionscheduler_claims |
wp_shopmagic_optin_email |
wp_shopmagic_tracked_emails |
wp_shopmagic_guest_meta |
wp_shopmagic_guest |
wp_actionscheduler_groups |
... |
New WordPress options |
---|
shopmagic_subscribers_update_required |
plugin_activation_shopmagic-for-woocommerce/shopMagic.php |
widget_theysaidso_widget |
shopmagic_db |
can_compress_scripts |
shopmagic_guest_conversion |
schema-ActionScheduler_LoggerSchema |
db_upgraded |
widget_recent-posts |
schema-ActionScheduler_StoreSchema |
... |
Browser metrics Passed 4 tests
A check of browser resources used by Free Follow-Up Emails & Marketing Automation for WooCommerce - ShopMagic
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,948 ▲201 | 14.77 ▲0.43 | 1.84 ▲0.14 | 43.37 ▲0.82 |
Dashboard /wp-admin | 2,335 ▲157 | 5.60 ▼0.06 | 86.56 ▼29.28 | 86.05 ▲41.03 |
Posts /wp-admin/edit.php | 2,170 ▲67 | 2.03 ▼0.04 | 40.82 ▲4.33 | 35.01 ▼0.85 |
Add New Post /wp-admin/post-new.php | 1,570 ▲44 | 22.88 ▼0.49 | 690.39 ▼30.93 | 62.18 ▲6.73 |
Media Library /wp-admin/upload.php | 1,470 ▲70 | 4.22 ▲0.03 | 102.62 ▼12.16 | 44.01 ▼2.82 |
WP Desk Tracker /wp-admin/admin.php?page=wpdesk_tracker | 935 | 2.00 | 28.07 | 36.54 |
Start Here /wp-admin/admin.php?page=shopmagic-admin#/welcome | 1,643 | 13.72 | 354.45 | 132.75 |
Marketing Lists /wp-admin/admin.php?page=shopmagic-admin#/marketing-lists | 1,244 | 7.93 | 147.96 | 49.46 |
Guests /wp-admin/admin.php?page=shopmagic-admin#/guests | 1,473 | 10.78 | 109.89 | 44.18 |
Deactivate plugin /wp-admin/admin.php?page=wpdesk_tracker_deactivate | 978 | 1.55 | 26.70 | 27.17 |
Logs /wp-admin/admin.php?page=shopmagic-admin#/logs/outcomes | 1,292 | 8.24 | 112.44 | 59.39 |
Automations /wp-admin/admin.php?page=shopmagic-admin#/automations | 1,309 | 8.74 | 111.57 | 46.03 |
Lists /wp-admin/edit.php?post_type=shopmagic_list | 1,130 | 1.98 | 36.41 | 30.18 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 1,315 | 1.81 | 31.02 | 33.63 |
Settings /wp-admin/admin.php?page=shopmagic-admin#/settings | 1,245 | 9.66 | 107.22 | 33.52 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.03MB] 50% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
Please fix the following items
- Zombie tables detected upon uninstall: 12 tables
- wp_shopmagic_guest
- wp_actionscheduler_actions
- wp_actionscheduler_logs
- wp_shopmagic_automation_outcome
- wp_shopmagic_marketing_lists
- wp_shopmagic_tracked_emails_clicks
- wp_actionscheduler_groups
- wp_actionscheduler_claims
- wp_shopmagic_tracked_emails
- wp_shopmagic_automation_outcome_logs
- ...
- Zombie WordPress options were found after uninstall: 14 options
- shopmagic_guest_conversion
- widget_theysaidso_widget
- widget_recent-posts
- schema-ActionScheduler_LoggerSchema
- schema-ActionScheduler_StoreSchema
- plugin_activation_shopmagic-for-woocommerce/shopMagic.php
- can_compress_scripts
- widget_recent-comments
- action_scheduler_hybrid_store_demarkation
- theysaidso_admin_options
- ...
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)
Please fix the following server-side errors
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wpdesk_tracker_deactivate
- > Notice in wp-content/plugins/shopmagic-for-woocommerce/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker.php+279
Undefined index: plugin
- > GET request to /wp-admin/admin.php?page=wpdesk_tracker_deactivate
- > Notice in wp-content/plugins/shopmagic-for-woocommerce/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker.php+281
Undefined index:
- > GET request to /wp-admin/admin.php?page=wpdesk_tracker_deactivate
- > Notice in wp-content/plugins/shopmagic-for-woocommerce/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker.php+281
Trying to access array offset on value of type null
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
- 5× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/shopmagic-for-woocommerce/templates/placeholder/products_ordered/grid_3_col.php
- > /wp-content/plugins/shopmagic-for-woocommerce/templates/placeholder/products_ordered/unordered_list.php
- > /wp-content/plugins/shopmagic-for-woocommerce/templates/internal/admin/beta_notice.php
- > /wp-content/plugins/shopmagic-for-woocommerce/templates/placeholder/products_ordered/grid_2_col.php
- > /wp-content/plugins/shopmagic-for-woocommerce/vendor_prefixed/wpdesk/wp-forms/templates/form-end.php
- 907× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface 'ShopMagicVendor\\Monolog\\Formatter\\FormatterInterface' not found in wp-content/plugins/shopmagic-for-woocommerce/vendor_prefixed/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php:20
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_Abstract_Schema' not found in wp-content/plugins/shopmagic-for-woocommerce/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_LoggerSchema.php:10
- > PHP Fatal error
Uncaught Error: Interface 'ShopMagicVendor\\Invoker\\ParameterResolver\\ParameterResolver' not found in wp-content/plugins/shopmagic-for-woocommerce/vendor_prefixed/php-di/php-di/src/Invoker/FactoryParameterResolver.php:19
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/shopmagic-for-woocommerce/vendor_prefixed/wpdesk/wp-forms/templates/form-start.php:10
- > PHP Fatal error
Uncaught Error: Interface 'ShopMagicVendor\\DI\\Definition\\Definition' not found in wp-content/plugins/shopmagic-for-woocommerce/vendor_prefixed/php-di/php-di/src/Definition/ArrayDefinition.php:12
- > PHP Fatal error
Uncaught Error: Interface 'ShopMagicVendor\\WPDesk\\Forms\\Validator' not found in wp-content/plugins/shopmagic-for-woocommerce/vendor_prefixed/wpdesk/wp-forms/src/Validator/ChainValidator.php:6
- > PHP Fatal error
Uncaught Error: Class 'ShopMagicVendor\\Symfony\\Component\\CssSelector\ode\\AbstractNode' not found in wp-content/plugins/shopmagic-for-woocommerce/vendor_prefixed/symfony/css-selector/Node/ElementNode.php:23
- > PHP Fatal error
Uncaught Error: Interface 'WPDesk\\ShopMagic\\Modules\\Mulitilingual\\LanguageHandler' not found in wp-content/plugins/shopmagic-for-woocommerce/src/Modules/Mulitilingual/Integration/BareHandler.php:12
- > PHP Fatal error
Uncaught Error: Interface 'ShopMagicVendor\\WPDesk\\PluginBuilder\\Plugin\\Hookable' not found in wp-content/plugins/shopmagic-for-woocommerce/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/PSR/WPDesk/Tracker/OptOut.php:7
- > PHP Fatal error
Uncaught Error: Interface 'WPDesk\\ShopMagic\\Customer\\CustomerProvider' not found in wp-content/plugins/shopmagic-for-woocommerce/src/Integration/ContactForms/Interceptor.php:21
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
No browser errors were detected
Optimizations
Plugin configuration 96% from 29 tests
readme.txt Passed 16 tests
The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
5 plugin tags: woocommerce mailchimp, customize woocommerce emails, follow up emails, woocommerce abandoned cart, woocommerce email customizer
shopmagic-for-woocommerce/shopMagic.php 92% from 13 tests
The main file in "Free Follow-Up Emails & Marketing Automation for WooCommerce - ShopMagic" v. 4.2.3 serves as a complement to information provided in readme.txt and as the entry point to the plugin
Please take the time to fix the following:
- Main file name: Please rename the main PHP file in this plugin to the plugin slug ("shopmagic-for-woocommerce.php" instead of "shopMagic.php")
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
Good job! No executable or dangerous file extensions detected90,352 lines of code in 1,652 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 1,386 | 9,440 | 36,457 | 66,299 |
JSON | 68 | 16 | 0 | 8,632 |
Vuejs Component | 87 | 388 | 16 | 5,749 |
TypeScript | 86 | 460 | 179 | 5,249 |
JavaScript | 8 | 21 | 22 | 4,089 |
CSS | 8 | 30 | 6 | 178 |
Markdown | 6 | 36 | 0 | 103 |
SVG | 2 | 0 | 0 | 28 |
PO File | 1 | 3 | 3 | 25 |
PHP code 50% from 2 tests
This is a short overview of cyclomatic complexity and code structure for this plugin
The following items need your attention
- Method cyclomatic complexity has to be reduced to less than 100 (currently 210)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.33 |
Average class complexity | 5.87 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 303.00 |
Average method complexity | 2.09 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 210.00 |
Code structure | ||
---|---|---|
Namespaces | 236 | |
Interfaces | 195 | |
Traits | 29 | |
Classes | 1,080 | |
▷ Abstract classes | 83 | 7.69% |
▷ Concrete classes | 997 | 92.31% |
▷ Final classes | 283 | 28.39% |
Methods | 6,210 | |
▷ Static methods | 372 | 5.99% |
▷ Public methods | 5,166 | 83.19% |
▷ Protected methods | 493 | 7.94% |
▷ Private methods | 551 | 8.87% |
Functions | 360 | |
▷ Named functions | 89 | 24.72% |
▷ Anonymous functions | 271 | 75.28% |
Constants | 469 | |
▷ Global constants | 5 | 1.07% |
▷ Class constants | 464 | 98.93% |
▷ Public constants | 326 | 70.26% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
18 PNG files occupy 0.28MB with 0.15MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/admin/src/assets/filter-pl.png | 11.63KB | 4.15KB | ▼ 64.34% |
dist/admin/filter.png | 9.56KB | 4.53KB | ▼ 52.67% |
assets/admin/src/assets/action.png | 11.45KB | 5.04KB | ▼ 55.94% |
dist/admin/event-pl.png | 23.45KB | 7.85KB | ▼ 66.50% |
vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/assets/images/flexibleshipping.com.png | 5.63KB | 3.68KB | ▼ 34.58% |