Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲3.74MB] [CPU: ▲2.50ms] Passed 4 tests
A check of server-side resources used by Email Design Studio
No issues were detected with server-side resource usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 6.75 ▲3.29 | 37.84 ▼0.22 |
Dashboard /wp-admin | 7.27 ▲3.97 | 64.39 ▲13.46 |
Posts /wp-admin/edit.php | 7.10 ▲3.74 | 48.41 ▼2.93 |
Add New Post /wp-admin/post-new.php | 9.87 ▲3.99 | 103.19 ▼0.31 |
Media Library /wp-admin/upload.php | 7.20 ▲3.97 | 62.02 ▲29.25 |
Email Design Studio /wp-admin/customize.php?sm-email-customize=1&templateid=1&themeid=1 | 8.84 | 109.38 |
Email Design Studio /wp-admin/customize.php?sm-email-customize=1&emaillog=1 | 8.84 | 103.72 |
Server storage [IO: ▲8.88MB] [DB: ▲0.62MB] Passed 3 tests
A short overview of filesystem and database impact
This plugin installed successfully
Filesystem: 131 new files
Database: 2 new tables, 569 new options
New tables |
---|
wp_sm_customiser_pro_table |
wp_sm_email_log |
New WordPress options |
---|
sm_customizer_maintext_13102 |
sm_customizer_maintext_permanent_853 |
sm_customizer_maintext_1232 |
sm_customizer_maintext_permanent_821 |
sm_customizer_maintext_1221 |
sm_customizer_maintext_5101 |
sm_customizer_maintext_322 |
sm_customizer_maintext_permanent_553 |
sm_customizer_maintext_351 |
sm_customizer_maintext_12101 |
... |
Browser metrics Passed 4 tests
Checking browser requirements for Email Design Studio
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,813 ▲78 | 13.28 ▼1.01 | 5.16 ▲3.47 | 39.11 ▼6.83 |
Dashboard /wp-admin | 2,216 ▲28 | 5.93 ▲0.90 | 116.90 ▲0.37 | 39.48 ▼10.52 |
Posts /wp-admin/edit.php | 2,101 ▲9 | 2.32 ▲0.32 | 32.43 ▼5.15 | 30.40 ▼7.07 |
Add New Post /wp-admin/post-new.php | 1,531 ▲17 | 23.30 ▲5.85 | 605.79 ▼71.56 | 33.03 ▼24.43 |
Media Library /wp-admin/upload.php | 1,407 ▲16 | 4.25 ▲0.03 | 86.17 ▼15.13 | 42.23 ▼0.37 |
Email Design Studio /wp-admin/customize.php?sm-email-customize=1&templateid=1&themeid=1 | 18,463 | 30.99 | 945.18 | 134.63 |
Email Design Studio /wp-admin/customize.php?sm-email-customize=1&emaillog=1 | 10,306 | 24.21 | 755.47 | 107.74 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.62MB] 50% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
The following items require your attention
- Zombie tables were found after uninstall: 2 tables
- wp_sm_customiser_pro_table
- wp_sm_email_log
- The uninstall procedure has failed, leaving 569 options in the database
- sm_customizer_maintext_permanent_753
- sm_customizer_maintext_2104
- sm_customizer_maintext_261
- sm_customizer_maintext_742
- sm_customizer_maintext_731
- sm_mail_selected_template9
- sm_customizer_maintext_1121
- sm_customizer_maintext_permanent_1093
- sm_customizer_maintext_9101
- sm_customizer_maintext_permanent_1262
- ...
Smoke tests 50% 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
- 188 occurences, only the last one shown
- > GET request to /wp-admin/customize.php?sm-email-customize=1&emaillog=1
- > Notice in wp-content/plugins/email-design-studio/includes/class-smmail-emaillog.php+19
Undefined index: HTTP_REFERER
- 188 occurences, only the last one shown
- > GET request to /wp-admin/customize.php?sm-email-customize=1&emaillog=1
- > Notice in wp-content/plugins/email-design-studio/includes/class-smmail-emaillog.php+21
Undefined index: query
- 2 occurences, only the last one shown
- > GET request to /wp-admin/customize.php?sm-email-customize=1&emaillog=1
- > Notice in wp-content/plugins/email-design-studio/includes/class-smmail-mailorders.php+24
Undefined index: themeid
SRP Passed 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
No output text or server-side errors detected on direct access of PHP files
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
Please fix the following browser errors
- 12 occurences, only the last one shown
- > GET request to /wp-admin/customize.php?sm-email-customize=1&emaillog=1
- > Rendering (warning) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,wp-polyfill-inert,regenerator-runtime,wp-polyfill,wp-hooks,underscore,customize-base,wp-dom-ready&ver=6.3.1 1 The specified value "" does not conform to the required format. The format is "#rrggbb" where rr, gg, bb are two-digit hexadecimal numbers.
- > GET request to /wp-admin/customize.php?sm-email-customize=1&templateid=1&themeid=1
- > Security (warning) in unknown
/?customize_changeset_uuid=afa1bef0-c8ec-4d29-a7be-020ac76c02ba&customize_theme=twentytwentyone&customize_messenger_channel=preview-0 - An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can escape its sandboxing.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/customize.php?sm-email-customize=1&emaillog=1
- > Console-api (warning) in unknown
/wp-includes/js/jquery/jquery.min.js?ver=3.7.0 1:28609 "jQuery.Deferred exception: _customizePartialRefreshExports is not defined" "ReferenceError: _customizePartialRefreshExports is not defined\n at Function.\u003Canonymous> (/wp-includes/js/customize-selective-refresh.min.js?ver=6.3.1:2:9028)\n at c (/wp-includes/js/jquery/jquery.min.js?ver=3.7.0:2:25266)\n at Object.fireWith (/wp-includes/js/jquery/jquery.min.js?ver=3.7.0:2:26015)\n at Function.trigger (/wp-includes/js/customize-base.min.js?ver=6.3.1:2:994)\n at HTMLDocument.\u003Canonymous> (/wp-includes/js/customize-preview.min.js?ver=6.3.1:2:10628)\n at e (/wp-includes/js/jquery/jquery.min.js?ver=3.7.0:2:26990)\n at t (/wp-includes/js/jquery/jquery.min.js?ver=3.7.0:2:27292)" undefined
- 2 occurences, only the last one shown
- > GET request to /wp-admin/customize.php?sm-email-customize=1&emaillog=1
- > Javascript (severe) in unknown
/wp-includes/js/jquery/jquery.min.js?ver=3.7.0 1:28721 Uncaught ReferenceError: _customizePartialRefreshExports is not defined
- > GET request to /wp-admin/customize.php?sm-email-customize=1&emaillog=1
- > Security (warning) in unknown
/?customize_changeset_uuid=f1fcb7e9-2b09-4991-afcd-0bea3c7ec3c7&customize_theme=twentytwentyone&customize_messenger_channel=preview-0 - An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can escape its sandboxing.
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 88% from 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
Attributes that require attention:
- Screenshots: These screenshots do not have images: #1 (Email Template preview), #2 (Customizer Section), #3 (New User Registration), #4 (Reset Password), #5 (Blog Comment Admin Email), #6 (SMTP Configuration), #7 (Preview test mail), #8 (Mail body container)
- Tags: Too many tags (11 tag instead of maximum 10); only the first 5 tags are used in your directory listing
email-design-studio/email-design-studio.php 92% from 13 tests
Analyzing the main PHP file in "Email Design Studio" version 0.1
Please make the necessary changes and fix the following:
- Domain Path: The domain path folder does not exist ("/languages")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | There should be no dangerous file extensions present in any WordPress plugin
Everything looks great! No dangerous files found in this plugin39,673 lines of code in 53 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 44 | 1,905 | 1,599 | 24,568 |
SVG | 3 | 0 | 0 | 9,552 |
CSS | 3 | 1,557 | 82 | 4,417 |
JavaScript | 3 | 258 | 168 | 1,136 |
PHP code Passed 2 tests
An short overview of logical lines of code, cyclomatic complexity, and other code metrics
No complexity issues detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.17 |
Average class complexity | 28.04 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 132.00 |
Average method complexity | 7.20 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 37.00 |
Code structure | ||
---|---|---|
Namespaces | 1 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 26 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 26 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 114 | |
▷ Static methods | 16 | 14.04% |
▷ Public methods | 114 | 100.00% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 0 | 0.00% |
Functions | 5 | |
▷ Named functions | 2 | 40.00% |
▷ Anonymous functions | 3 | 60.00% |
Constants | 0 | |
▷ Global constants | 0 | 0.00% |
▷ Class constants | 0 | 0.00% |
▷ Public constants | 0 | 0.00% |
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
61 PNG files occupy 4.53MB with 2.25MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/images/twitter-gray.png | 1.26KB | 0.40KB | ▼ 68.55% |
assets/images/theme2-background.png | 91.96KB | 39.21KB | ▼ 57.36% |
assets/images/productDelivered.png | 11.40KB | 5.17KB | ▼ 54.66% |
assets/images/facebook-gray.png | 1.27KB | 0.41KB | ▼ 67.51% |
assets/images/theme142.png | 11.80KB | 11.79KB | 0.05% |