Benchmarks
Plugin footprint 47% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
This plugin's installer ran successfully
Server metrics [RAM: ▲5.10MB] [CPU: ▲34.52ms] 50% from 4 tests
Server-side resources used by Newsletter & Bulk Email Sender - Email Newsletter Plugin for WordPress
Please fix the following
- CPU: Try to keep total CPU usage under 500.00ms (currently 950.94ms on /wp-admin/edit.php?post_type=newsletter&page=bulkmail_templates)
- Extra RAM: Try to keep extra memory usage under 5MB (currently 5.10MB on /wp-admin/edit.php?post_type=newsletter&page=bulkmail_templates)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 8.47 ▲5.01 | 70.71 ▲31.74 |
Dashboard /wp-admin | 8.45 ▲5.15 | 94.14 ▲43.45 |
Posts /wp-admin/edit.php | 8.49 ▲5.13 | 76.10 ▲27.41 |
Add New Post /wp-admin/post-new.php | 11.04 ▲5.16 | 139.27 ▲48.30 |
Media Library /wp-admin/upload.php | 8.35 ▲5.12 | 73.08 ▲35.46 |
Self Tests /wp-admin/edit.php?post_type=newsletter&page=bulkmail_tests | 8.14 | 54.88 |
Setup /wp-admin/admin.php?page=bulkmail_setup | 8.88 | 70.28 |
Forms /wp-admin/edit.php?post_type=newsletter&page=bulkmail_forms | 8.38 | 68.86 |
Subscribers /wp-admin/edit.php?post_type=newsletter&page=bulkmail_subscribers | 9.13 | 76.23 |
Manage Subscribers /wp-admin/edit.php?post_type=newsletter&page=bulkmail_manage_subscribers | 8.90 | 66.11 |
Bulkmail Update /wp-admin/admin.php?page=bulkmail_update | 8.25 | 65.54 |
Lists /wp-admin/edit.php?post_type=newsletter&page=bulkmail_lists | 8.87 | 68.77 |
New Campaign /wp-admin/post-new.php?post_type=newsletter | 9.27 | 108.37 |
Newsletter /wp-admin/edit.php?post_type=newsletter&page=bulkmail_settings | 8.86 | 88.21 |
Templates /wp-admin/edit.php?post_type=newsletter&page=bulkmail_templates | 8.39 | 950.94 |
Server storage [IO: ▲6.01MB] [DB: ▲0.03MB] Passed 3 tests
Input-output and database impact of this plugin
There were no storage issued detected upon installing this plugin
Filesystem: 543 new files
Database: 11 new tables, 24 new options
New tables |
---|
wp_bulkmail_actions |
wp_bulkmail_subscribers |
wp_bulkmail_queue |
wp_bulkmail_subscriber_fields |
wp_bulkmail_subscriber_meta |
wp_bulkmail_form_fields |
wp_bulkmail_lists |
wp_bulkmail_links |
wp_bulkmail_forms_lists |
wp_bulkmail_forms |
... |
New WordPress options |
---|
widget_bulkmail_list_newsletter |
bulkmail_email |
bulkmail_options |
bulkmail_version |
widget_bulkmail_subscriber_button |
widget_bulkmail_subscribers_count |
bulkmail_updated |
bulkmail_username |
widget_recent-comments |
bulkmail_templates_updates |
... |
Browser metrics Passed 4 tests
Checking browser requirements for Newsletter & Bulk Email Sender - Email Newsletter Plugin for WordPress
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,030 ▲284 | 15.69 ▲1.46 | 6.86 ▲5.22 | 43.26 ▲3.84 |
Dashboard /wp-admin | 2,433 ▲245 | 6.26 ▲0.37 | 158.31 ▲45.81 | 43.03 ▲0.61 |
Posts /wp-admin/edit.php | 2,171 ▲82 | 2.07 ▲0.02 | 35.68 ▼0.31 | 33.03 ▲0.64 |
Add New Post /wp-admin/post-new.php | 1,572 ▲53 | 22.96 ▼0.21 | 609.74 ▼45.03 | 53.74 ▲0.96 |
Media Library /wp-admin/upload.php | 1,476 ▲85 | 4.25 ▲0.05 | 98.19 ▼0.64 | 40.77 ▼1.67 |
Self Tests /wp-admin/edit.php?post_type=newsletter&page=bulkmail_tests | 2,881 | 9.44 | 267.20 | 48.01 |
Setup /wp-admin/admin.php?page=bulkmail_setup | 2,883 | 9.49 | 248.98 | 34.68 |
Forms /wp-admin/edit.php?post_type=newsletter&page=bulkmail_forms | 1,306 | 2.17 | 36.36 | 49.81 |
Subscribers /wp-admin/edit.php?post_type=newsletter&page=bulkmail_subscribers | 1,398 | 2.16 | 29.35 | 46.18 |
Manage Subscribers /wp-admin/edit.php?post_type=newsletter&page=bulkmail_manage_subscribers | 1,184 | 2.30 | 46.32 | 42.89 |
Bulkmail Update /wp-admin/admin.php?page=bulkmail_update | 921 | 1.79 | 30.56 | 34.53 |
Lists /wp-admin/edit.php?post_type=newsletter&page=bulkmail_lists | 1,179 | 1.69 | 25.77 | 30.38 |
New Campaign /wp-admin/post-new.php?post_type=newsletter | 6,469 | 12.03 | 294.84 | 342.19 |
Newsletter /wp-admin/edit.php?post_type=newsletter&page=bulkmail_settings | 6,233 | 3.44 | 53.61 | 65.02 |
Templates /wp-admin/edit.php?post_type=newsletter&page=bulkmail_templates | 1,137 | 2.54 | 38.05 | 29.09 |
Uninstaller [IO: ▲0.93MB] [DB: ▲0.03MB] 25% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
Please fix the following items
- This plugin did not uninstall without warnings or errors
- > Notice in wp-content/plugins/newsletter-bulk-email/classes/UpdateCenterPlugin.php+255
Trying to access array offset on value of type null
- Zombie tables were found after uninstall: 11 tables
- wp_bulkmail_actions
- wp_bulkmail_forms
- wp_bulkmail_forms_lists
- wp_bulkmail_links
- wp_bulkmail_subscriber_meta
- wp_bulkmail_form_fields
- wp_bulkmail_queue
- wp_bulkmail_subscriber_fields
- wp_bulkmail_subscribers
- wp_bulkmail_lists
- ...
- Zombie WordPress options were found after uninstall: 24 options
- theysaidso_admin_options
- bulkmail_version_first
- widget_bulkmail_subscriber_button
- updatecenter_plugins
- bulkmail_version
- widget_bulkmail_signup
- widget_bulkmail_subscribers_count
- can_compress_scripts
- bulkmail_license
- bulkmail_updated
- ...
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
Smoke test failed, please fix the following
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=bulkmail_setup
- > Warning in wp-content/plugins/newsletter-bulk-email/classes/helper.class.php+2030
basename() expects parameter 1 to be string, array given
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=bulkmail_setup
- > Notice in wp-content/plugins/newsletter-bulk-email/classes/helper.class.php+2060
Array to string conversion
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=bulkmail_setup
- > Notice in wp-content/plugins/newsletter-bulk-email/classes/helper.class.php+2064
Undefined index: buttons
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=bulkmail_setup
- > Warning in wp-content/plugins/newsletter-bulk-email/classes/helper.class.php+2064
Invalid argument supplied for foreach()
- > GET request to /wp-admin/edit.php?post_type=newsletter&page=bulkmail_templates
- > Deprecated in wp-content/plugins/newsletter-bulk-email/classes/templates.class.php+792
Invalid characters passed for attempted conversion, these have been ignored
SRP 0% from 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
Please fix the following
- 1× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/newsletter-bulk-email/cron.php
- 215× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/newsletter-bulk-email/views/settings/capabilities.php:1
- > PHP Fatal error
Uncaught Error: Call to undefined function bulkmail() in wp-content/plugins/newsletter-bulk-email/views/settings.php:5
- > PHP Notice
Undefined variable: post in wp-content/plugins/newsletter-bulk-email/views/newsletter/delivery.php on line 5
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html__() in wp-content/plugins/newsletter-bulk-email/includes/capability.php:6
- > PHP Notice
Undefined variable: post in wp-content/plugins/newsletter-bulk-email/views/newsletter/attachment.php on line 3
- > PHP Fatal error
Uncaught Error: Using $this when not in object context in wp-content/plugins/newsletter-bulk-email/views/newsletter/receivers.php:9
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/newsletter-bulk-email/views/templates/available-template.php on line 5
- > PHP Warning
Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/newsletter-bulk-email/classes/lists.table.class.php on line 4
- > PHP Fatal error
Uncaught Error: Interface 'Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' not found in wp-content/plugins/newsletter-bulk-email/classes/libs/InlineStyle/inlinestyle/inlinestyle/vendor/symfony/yaml/Exception/RuntimeException.php:19
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\CssSelector\ode\\AbstractNode' not found in wp-content/plugins/newsletter-bulk-email/classes/libs/InlineStyle/symfony/css-selector/Node/ClassNode.php:22
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Please take a look at the following user-side issues
- > GET request to /wp-admin/edit.php?post_type=newsletter&page=bulkmail_forms
- > Network (severe)
bulkmail/form?id=2&iframe=1&design=default&showcount=0&width=480&button=2&label=Preview&origin=http%3A%2F%2Fwp.com&referer=http%3A%2F%2Fwp.com%2Fwp-admin%2Fedit.php%3Fpost_type%3Dnewsletter%26page%3Dbulkmail_forms - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/edit.php?post_type=newsletter&page=bulkmail_forms
- > Network (severe)
bulkmail/form?id=1&iframe=1&design=default&showcount=0&width=480&button=1&label=Preview&origin=http%3A%2F%2Fwp.com&referer=http%3A%2F%2Fwp.com%2Fwp-admin%2Fedit.php%3Fpost_type%3Dnewsletter%26page%3Dbulkmail_forms - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/edit.php?post_type=newsletter&page=bulkmail_subscribers
- > Network (severe)
https://i0.wp.com/static.bulkmail.co/user/user05.gif?ssl=1 - Failed to load resource: the server responded with a status of 400 ()
- > GET request to /wp-admin/edit.php?post_type=newsletter&page=bulkmail_lists
- > Intervention (severe) in unknown
/wp-admin/admin.php?page=bulkmail_update - Blocked attempt to show a 'beforeunload' confirmation panel for a frame that never had a user gesture since its load. https://www.chromestatus.com/feature/5082396709879808
- > GET request to /wp-admin/post-new.php?post_type=newsletter
- > Javascript (severe) in unknown
/wp-content/plugins/newsletter-bulk-email/assets/js/campaign-script.min.js?ver=1.0.1 0:8463 Uncaught TypeError: Cannot read properties of undefined (reading 'off')
- > GET request to /wp-admin/edit.php?post_type=newsletter&page=bulkmail_settings
- > Network (severe)
wp-content/plugins/newsletter-bulk-email/assets/js/libs/clipboard.min.js?ver=1.0.1 - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/edit.php?post_type=newsletter&page=bulkmail_settings
- > Console-api (warning) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1 1:28609 "jQuery.Deferred exception: Clipboard is not defined" "ReferenceError: Clipboard is not defined\n at /wp-content/plugins/newsletter-bulk-email/assets/js/clipboard-script.min.js?ver=1.0.1:1:88\n at /wp-content/plugins/newsletter-bulk-email/assets/js/bulkmail-script.min.js?ver=1.0.1:1:638\n at Array.forEach (\u003Canonymous>)\n at HTMLDocument.l (/wp-content/plugins/newsletter-bulk-email/assets/js/bulkmail-script.min.js?ver=1.0.1:1:618)\n at e (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&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&ver=6.3.1:2:27292)" undefined
- > GET request to /wp-admin/edit.php?post_type=newsletter&page=bulkmail_settings
- > Javascript (severe) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1 1:28721 Uncaught ReferenceError: Clipboard is not defined
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 94% from 16 tests
Often overlooked, readme.txt is one of the most important files in your plugin
Please fix the following attributes:
- Screenshots: No descriptions were found for these screenshots #1, #2, #3, #4 in newsletter-bulk-email/assets to your readme.txt
newsletter-bulk-email/bulkmail.php 85% from 13 tests
Analyzing the main PHP file in "Newsletter & Bulk Email Sender - Email Newsletter Plugin for WordPress" version 2.0.1
Please make the necessary changes and fix the following:
- Main file name: The principal plugin file should be the same as the plugin slug ("newsletter-bulk-email.php" instead of "bulkmail.php")
- Text Domain: You no longer need to specify the text domain since WordPress 4.6; it must be the same as the plugin slug
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
Success! There were no dangerous files found in this plugin93,276 lines of code in 450 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 265 | 15,596 | 15,032 | 57,843 |
JavaScript | 75 | 2,073 | 118 | 20,747 |
CSS | 86 | 223 | 336 | 12,955 |
HTML | 4 | 133 | 26 | 1,150 |
JSON | 5 | 0 | 0 | 238 |
Markdown | 7 | 56 | 0 | 132 |
SVG | 3 | 78 | 0 | 122 |
XML | 4 | 7 | 0 | 80 |
YAML | 1 | 2 | 0 | 9 |
PHP code 50% from 2 tests
An overview of cyclomatic complexity and code structure
It is recommended to fix the following
- Method cyclomatic complexity has to be reduced to less than 100 (currently 737)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.43 |
Average class complexity | 42.15 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 768.00 |
Average method complexity | 5.03 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 737.00 |
Code structure | ||
---|---|---|
Namespaces | 21 | |
Interfaces | 13 | |
Traits | 0 | |
Classes | 199 | |
▷ Abstract classes | 6 | 3.02% |
▷ Concrete classes | 193 | 96.98% |
▷ Final classes | 0 | 0.00% |
Methods | 2,190 | |
▷ Static methods | 68 | 3.11% |
▷ Public methods | 1,810 | 82.65% |
▷ Protected methods | 57 | 2.60% |
▷ Private methods | 323 | 14.75% |
Functions | 212 | |
▷ Named functions | 120 | 56.60% |
▷ Anonymous functions | 92 | 43.40% |
Constants | 63 | |
▷ Global constants | 16 | 25.40% |
▷ Class constants | 47 | 74.60% |
▷ Public constants | 47 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
126 compressed PNG files occupy 1.20MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
templates/mymail/img/social/dark/deviantart.png | 1.17KB | 1.13KB | ▼ 3.52% |
templates/mymail/img/social/light/googleplus.png | 1.32KB | 1.32KB | 0.22% |
templates/mymail/img/social/dark/android.png | 0.75KB | 0.72KB | ▼ 3.52% |
templates/mymail/img/social/light/dribbble.png | 2.08KB | 2.05KB | ▼ 1.32% |
templates/mymail/img/social/dark/ebay.png | 1.17KB | 1.14KB | ▼ 2.41% |