Benchmarks
Plugin footprint 30% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
Installer ran successfully
Server metrics [RAM: ▲0.84MB] [CPU: ▼2.95ms] Passed 4 tests
Server-side resources used by Email Marketing for WooCommerce by Omnisend
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.31 ▲0.84 | 41.68 ▲1.22 |
Dashboard /wp-admin | 4.14 ▲0.80 | 53.95 ▼8.08 |
Posts /wp-admin/edit.php | 4.26 ▲0.90 | 53.13 ▲6.05 |
Add New Post /wp-admin/post-new.php | 6.75 ▲0.86 | 87.96 ▼10.99 |
Media Library /wp-admin/upload.php | 4.07 ▲0.84 | 43.92 ▲6.73 |
General /wp-admin/admin.php?page=omnisend-woocommerce | 4.03 | 37.50 |
Logs /wp-admin/admin.php?page=omnisend-logs | 4.03 | 35.89 |
Server storage [IO: ▲2.29MB] [DB: ▲0.00MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
There were no storage issued detected upon installing this plugin
Filesystem: 69 new files
Database: 1 new table, 7 new options
New tables |
---|
wp_omnisend_logs |
New WordPress options |
---|
widget_theysaidso_widget |
widget_recent-posts |
omnisend_logEnabled |
theysaidso_admin_options |
db_upgraded |
can_compress_scripts |
widget_recent-comments |
Browser metrics Passed 4 tests
A check of browser resources used by Email Marketing for WooCommerce by Omnisend
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,861 ▲114 | 14.74 ▲0.40 | 2.08 ▲0.38 | 40.98 ▼4.03 |
Dashboard /wp-admin | 2,264 ▲89 | 5.69 ▲0.01 | 93.94 ▼14.74 | 42.38 ▼0.64 |
Posts /wp-admin/edit.php | 2,167 ▲67 | 2.06 ▲0.10 | 42.52 ▲4.36 | 36.53 ▼0.81 |
Add New Post /wp-admin/post-new.php | 1,564 ▲38 | 23.23 ▼0.07 | 651.98 ▼25.08 | 45.47 ▼13.41 |
Media Library /wp-admin/upload.php | 1,469 ▲72 | 4.22 ▲0.03 | 99.18 ▼4.28 | 41.82 ▼0.05 |
General /wp-admin/admin.php?page=omnisend-woocommerce | 922 | 2.07 | 28.96 | 57.10 |
Logs /wp-admin/admin.php?page=omnisend-logs | 936 | 2.08 | 26.69 | 41.10 |
Uninstaller [IO: ▲2.29MB] [DB: ▲0.00MB] 0% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the followingZombie tables detected upon uninstall: 1 table Zombie WordPress options were found after uninstall: 7 options
- This plugin did not uninstall without warnings or errors
- > Error in wp-content/plugins/omnisend-connect/omnisend-woocommerce.php+338
Uncaught Error: Class 'Automattic\WooCommerce\Utilities\OrderUtil' not found in wp-content/plugins/omnisend-connect/omnisend-woocommerce.php:338
Stack trace:
#0 wp-includes/class-wp-hook.php(310): omnisend_uninstall()
#1 wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters()
#2 wp-includes/plugin.php(517): WP_Hook->do_action()
#3 wp-admin/includes/plugin.php(1269): do_action()
#4 wp-admin/includes/plugin.php(960): uninstall_plugin() - This plugin has failed uninstalling correctly, leaving 69 files (2.29MB) in the plugin directory
- (new file) assets/fonts/roboto/Roboto-BoldItalic.ttf
- (new file) assets/fonts/roboto/Roboto-Light.ttf
- (new file) assets/fonts/roboto/Roboto-Black.ttf
- (new file) assets/fonts/roboto/Roboto-BlackItalic.ttf
- (new file) assets/fonts/roboto/Roboto-Bold.ttf
- (new file) assets/fonts/roboto/Roboto-LightItalic.ttf
- (new file) assets/fonts/roboto/Roboto-Medium.ttf
- (new file) assets/fonts/roboto/Roboto-Italic.ttf
- (new file) assets/css/omnisend-admin-style.css
- (new file) assets/fonts/roboto/LICENSE.txt
- ...
- wp_omnisend_logs
- can_compress_scripts
- widget_recent-comments
- db_upgraded
- widget_recent-posts
- recovery_mode_email_last_sent
- widget_theysaidso_widget
- theysaidso_admin_options
Smoke tests Passed 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
The smoke test was a success, however most plugin functionality was not tested
SRP Passed 2 tests
🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Looking good! No server-side errors or output on direct access of PHP files
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
Everything seems fine, but this is not an exhaustive test
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
Often overlooked, readme.txt is one of the most important files in your plugin
5 plugin tags: sms, woocommerce, newsletter, email marketing, marketing
omnisend-connect/omnisend-woocommerce.php 85% from 13 tests
The main file in "Email Marketing for WooCommerce by Omnisend" v. 1.13.10 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:
- Requires at least: Required version must match the one declared in readme.txt ("4.7.0" instead of "6.0")
- Main file name: Name the main plugin file the same as the plugin slug ("omnisend-connect.php" instead of "omnisend-woocommerce.php")
Code Analysis Passed 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
Everything looks great! No dangerous files found in this plugin5,385 lines of code in 53 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 43 | 870 | 646 | 4,572 |
CSS | 2 | 95 | 1 | 488 |
JavaScript | 4 | 35 | 4 | 302 |
SVG | 4 | 0 | 0 | 23 |
PHP code Passed 2 tests
This plugin's cyclomatic complexity and code structure detailed below
No complexity issues detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.41 |
Average class complexity | 20.71 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 85.00 |
Average method complexity | 4.23 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 72.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 28 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 28 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 171 | |
▷ Static methods | 147 | 85.96% |
▷ Public methods | 133 | 77.78% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 38 | 22.22% |
Functions | 90 | |
▷ Named functions | 87 | 96.67% |
▷ Anonymous functions | 3 | 3.33% |
Constants | 62 | |
▷ Global constants | 23 | 37.10% |
▷ Class constants | 39 | 62.90% |
▷ Public constants | 39 | 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
1 PNG file occupies 0.07MB with 0.05MB in potential savings
Potential savings
Compression of 1 random PNG file using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/img/connection.png | 70.16KB | 23.21KB | ▼ 66.92% |