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
The following installer errors require your attention
- Install procedure validation failed for this plugin
- > Notice in wp-content/plugins/newsletters-lite/wp-mailinglist.php+3789
Undefined variable: newsletters_language
Server metrics [RAM: ▲14.14MB] [CPU: ▲93.53ms] 50% from 4 tests
Analyzing server-side resources used by Newsletters
The following require your attention
- RAM: Try to keep total memory usage under 10MB (currently 18.51MB on /wp-admin/admin.php?page=newsletters-links)
- Extra RAM: Try to keep extra memory usage under 5MB (currently 14.14MB on /wp-admin/admin.php?page=newsletters-links)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 17.31 ▲13.85 | 134.77 ▲96.00 |
Dashboard /wp-admin | 18.34 ▲15.04 | 160.28 ▲112.61 |
Posts /wp-admin/edit.php | 18.01 ▲14.66 | 162.38 ▲111.74 |
Add New Post /wp-admin/post-new.php | 19.30 ▲13.41 | 144.66 ▲53.78 |
Media Library /wp-admin/upload.php | 17.86 ▲14.63 | 166.45 ▲135.16 |
Upgrade to PRO /wp-admin/admin.php?page=newsletters-lite-upgrade | 18.27 | 141.16 |
Groups /wp-admin/admin.php?page=newsletters-groups | 18.51 | 140.59 |
Email Queue /wp-admin/admin.php?page=newsletters-queue | 18.06 | 151.76 |
System /wp-admin/admin.php?page=newsletters-settings-system | 22.24 | 176.43 |
Autoresponders /wp-admin/admin.php?page=newsletters-autoresponders | 18.80 | 179.43 |
Save an Email Snippet /wp-admin/admin.php?page=newsletters-templates-save | 19.03 | 158.34 |
Subscription Orders /wp-admin/admin.php?page=newsletters-orders | 18.63 | 159.82 |
Submit Serial /wp-admin/admin.php?page=newsletters-submitserial | 17.87 | 133.04 |
Subscribers /wp-admin/admin.php?page=newsletters-subscribers | 67.85 | 431.28 |
Links & Clicks /wp-admin/admin.php?page=newsletters-links | 18.51 | 136.59 |
Server storage [IO: ▲24.12MB] [DB: ▲0.20MB] Passed 3 tests
A short overview of filesystem and database impact
There were no storage issued detected upon installing this plugin
Filesystem: 2,528 new files
Database: 31 new tables, 208 new options
New tables |
---|
wp_wpmlgroups |
wp_wpmlclicks |
wp_wpmlfieldsforms |
wp_wpmlbounces |
wp_wpmllatestpostssubscriptions |
wp_wpmlsubscriberslists |
wp_wpmlposts |
wp_wpmlsubscribersoptions |
wp_wpmlforms |
wp_wpmlautoresponderslists |
... |
New WordPress options |
---|
wpmlonlinelinktext |
wpmlcreatepreview |
wpmletsubject_authenticate |
wpmlrssfeed |
wpmlimportusers |
wpmldefaultlistcreated |
wpmlcurrencies |
wpmlpermissions |
wpmlrecaptcha_theme |
wpmladminemail |
... |
Browser metrics Passed 4 tests
Checking browser requirements for Newsletters
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,415 ▲654 | 19.45 ▲5.10 | 66.11 ▲64.60 | 44.80 ▲4.88 |
Dashboard /wp-admin | 2,681 ▲504 | 6.44 ▲0.86 | 207.59 ▲121.07 | 46.66 ▲6.61 |
Posts /wp-admin/edit.php | 2,560 ▲457 | 2.48 ▲0.50 | 55.67 ▲14.97 | 44.98 ▲8.89 |
Add New Post /wp-admin/post-new.php | 2,095 ▲567 | 19.63 ▼3.48 | 655.84 ▲3.86 | 39.57 ▼17.57 |
Media Library /wp-admin/upload.php | 1,720 ▲323 | 4.86 ▲0.63 | 107.76 ▲10.83 | 49.90 ▲8.95 |
Upgrade to PRO /wp-admin/admin.php?page=newsletters-lite-upgrade | 1,544 | 7.43 | 242.52 | 68.51 |
Groups /wp-admin/admin.php?page=newsletters-groups | 1,772 | 5.68 | 102.04 | 35.50 |
Email Queue /wp-admin/admin.php?page=newsletters-queue | 1,433 | 5.54 | 95.57 | 36.36 |
System /wp-admin/admin.php?page=newsletters-settings-system | 4,140 | 6.24 | 141.57 | 62.30 |
Autoresponders /wp-admin/admin.php?page=newsletters-autoresponders | 2,224 | 6.31 | 116.63 | 40.05 |
Save an Email Snippet /wp-admin/admin.php?page=newsletters-templates-save | 2,104 | 8.99 | 185.63 | 68.23 |
Subscription Orders /wp-admin/admin.php?page=newsletters-orders | 1,934 | 5.64 | 89.49 | 35.94 |
Submit Serial /wp-admin/admin.php?page=newsletters-submitserial | 1,368 | 5.24 | 68.07 | 31.22 |
Subscribers /wp-admin/admin.php?page=newsletters-subscribers | 3,677 | 6.12 | 97.99 | 37.63 |
Links & Clicks /wp-admin/admin.php?page=newsletters-links | 1,751 | 5.67 | 77.39 | 32.67 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.20MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
Please fix the following items
- Zombie tables detected upon uninstall: 31 tables
- wp_wpmlmailinglists
- wp_wpmlhistoriesattachments
- wp_wpmllatestpostssubscriptions
- wp_wpmlemails
- wp_wpmlposts
- wp_wpmlgroups
- wp_wpmlhistorieslists
- wp_wpmlforms
- wp_wpmlsubscribermetas
- wp_wpmlautoresponderemails
- ...
- Zombie WordPress options detected upon uninstall: 208 options
- wpmldbversion
- wpmlmanagementauthtype
- wpmlcaptcha_rgb
- wpmlexcerpt_length
- wpmltheme_usestyle
- wpmltheme_folder
- wpmlcommentformlabel
- wpmlpermissions
- wpmlcustomcss
- wpmlprintlinktext
- ...
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
These server-side errors were triggered
- > GET request to /wp-admin/admin.php?page=newsletters-groups
- > Notice in wp-content/plugins/newsletters-lite/views/admin/groups/index.php+10
Undefined variable: groups
- > GET request to /wp-admin/admin.php?page=newsletters-settings-system
- > Notice in wp-content/plugins/newsletters-lite/views/admin/metaboxes/settings-importusers.php+105
Trying to access array offset on value of type bool
- > GET request to /wp-admin/admin.php?page=newsletters-submitserial
- > Notice in wp-content/plugins/newsletters-lite/wp-mailinglist.php+4628
Undefined variable: errors
- > GET request to /wp-admin/admin.php?page=newsletters-submitserial
- > Notice in wp-content/plugins/newsletters-lite/views/admin/settings-submitserial.php+19
Undefined index: serial
- > GET request to /wp-admin/admin.php?page=newsletters-links
- > Notice in wp-content/plugins/newsletters-lite/wp-mailinglist.php+9212
Undefined index: Link
- > GET request to /wp-admin/admin.php?page=newsletters-links
- > Notice in wp-content/plugins/newsletters-lite/wp-mailinglist.php+9212
Undefined index: Paginate
- > GET request to /wp-admin/admin.php?page=newsletters-links
- > Notice in wp-content/plugins/newsletters-lite/views/admin/links/loop.php+59
Undefined variable: orde
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
- 10× PHP files perform the action of outputting non-empty strings when accessed directly:
- > /wp-content/plugins/newsletters-lite/vendors/EmailVerify.class.php
- > /wp-content/plugins/newsletters-lite/js/ckeditor/samples/old/assets/posteddata.php
- > /wp-content/plugins/newsletters-lite/vendor/sendgrid/php-http-client/examples/example.php
- > /wp-content/plugins/newsletters-lite/vendor/mobiledetect/mobiledetectlib/export/exportToJSON.php
- > /wp-content/plugins/newsletters-lite/views/admin/metaboxes/forms/form.php
- > /wp-content/plugins/newsletters-lite/views/admin/gdpr.php
- > /wp-content/plugins/newsletters-lite/views/email/builder-default.php
- > /wp-content/plugins/newsletters-lite/js/ckeditor/samples/old/sample_posteddata.php
- > /wp-content/plugins/newsletters-lite/views/email/preview.php
- > /wp-content/plugins/newsletters-lite/views/admin/history/loop.php
- 884× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface 'Http\\Client\\Common\\Plugin' not found in wp-content/plugins/newsletters-lite/vendor/php-http/client-common/src/Plugin/AddPathPlugin.php:17
- > PHP Warning
require_once(src/ellipticcurve.php): failed to open stream: No such file or directory in wp-content/plugins/newsletters-lite/vendor/starkbank/ecdsa/tests/test.php on line 3
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html() in wp-content/plugins/newsletters-lite/views/admin/metaboxes/settings-pp.php:5
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/newsletters-lite/views/admin/orders/index.php:3
- > PHP Fatal error
Uncaught Error: Call to undefined function bloginfo() in wp-content/plugins/newsletters-lite/views/email/head.php:6
- > PHP Notice
Undefined index: page in wp-content/plugins/newsletters-lite/views/admin/emails/loop.php on line 4
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/newsletters-lite/views/default2/js/management.php:31
- > PHP Fatal error
Uncaught Error: Interface 'Http\\Message\\Authentication' not found in wp-content/plugins/newsletters-lite/vendor/php-http/message/src/Authentication/BasicAuth.php:13
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Promise\\PromiseInterface' not found in wp-content/plugins/newsletters-lite/vendor/guzzlehttp/promises/src/FulfilledPromise.php:11
- > PHP Fatal error
Uncaught Error: Interface 'Http\\Message\\Authentication' not found in wp-content/plugins/newsletters-lite/vendor/php-http/message/src/Authentication/Chain.php:13
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
There are user-side issues you should fix
- > GET request to /wp-admin/admin.php?page=newsletters-lite-upgrade
- > Other (severe) in unknown
chrome-error://chromewebdata/ - Refused to display 'https://developers.google.com/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.
Optimizations
Plugin configuration 86% from 29 tests
readme.txt 94% from 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
These attributes need your attention:
- Tags: Please delete some tags, you are using 24 tag instead of maximum 10
newsletters-lite/wp-mailinglist.php 77% from 13 tests
The principal PHP file in "Newsletters" v. 4.9.4 is loaded by WordPress automatically on each request
Please make the necessary changes and fix the following:
- Main file name: Please rename the main PHP file in this plugin to the plugin slug ("newsletters-lite.php" instead of "wp-mailinglist.php")
- Text Domain: The text domain is optional since WordPress version 4.6; if you do specify it, it must be the same as the plugin slug
- Description: The description should be shorter than 140 characters (currently 351 characters long)
Code Analysis 95% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short review of files and their extensions; it is not recommended to include executable files
Good job! No executable or dangerous file extensions detected248,839 lines of code in 1,796 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 1,180 | 29,458 | 48,851 | 154,213 |
CSS | 56 | 9,121 | 834 | 44,852 |
JavaScript | 297 | 4,270 | 3,436 | 19,437 |
Markdown | 120 | 5,033 | 0 | 13,567 |
HTML | 51 | 970 | 216 | 7,106 |
JSON | 49 | 1 | 0 | 5,005 |
SVG | 7 | 2 | 2 | 3,782 |
YAML | 21 | 89 | 20 | 535 |
XML | 9 | 48 | 80 | 276 |
Dockerfile | 3 | 17 | 0 | 30 |
Perl | 1 | 7 | 12 | 18 |
make | 1 | 5 | 0 | 11 |
Bourne Shell | 1 | 2 | 0 | 7 |
PHP code 0% from 2 tests
Cyclomatic complexity and code structure are the fingerprint of this plugin
Please tend to the following items
- Class cyclomatic complexity should be reduced to less than 1000 (currently 2,562)
- Cyclomatic complexity of methods should be reduced to less than 100 (currently 343)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.41 |
Average class complexity | 22.95 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 2,562.00 |
Average method complexity | 4.13 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 343.00 |
Code structure | ||
---|---|---|
Namespaces | 126 | |
Interfaces | 66 | |
Traits | 24 | |
Classes | 743 | |
▷ Abstract classes | 19 | 2.56% |
▷ Concrete classes | 724 | 97.44% |
▷ Final classes | 231 | 31.91% |
Methods | 5,958 | |
▷ Static methods | 824 | 13.83% |
▷ Public methods | 4,999 | 83.90% |
▷ Protected methods | 442 | 7.42% |
▷ Private methods | 517 | 8.68% |
Functions | 348 | |
▷ Named functions | 133 | 38.22% |
▷ Anonymous functions | 215 | 61.78% |
Constants | 659 | |
▷ Global constants | 259 | 39.30% |
▷ Class constants | 400 | 60.70% |
▷ Public constants | 389 | 97.25% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
It is recommended to compress PNG files in your plugin to minimize bandwidth usage
441 PNG files occupy 1.01MB with 0.20MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
views/default/img/ui-bg_glass_55_fbf9ee_1x400.png | 0.12KB | 0.14KB | 0.00% |
js/ckeditor/plugins/icons_hidpi.png | 37.33KB | 15.25KB | ▼ 59.15% |
images/flags/ye.png | 0.15KB | 0.15KB | 0.00% |
images/flags/tg.png | 0.63KB | 0.64KB | 0.00% |
images/flags/bt.png | 4.14KB | 2.53KB | ▼ 38.91% |