10% email-signature-manager

Code Review | eMail Signature Manager

WordPress plugin eMail Signature Manager scored10%from 54 tests.

About plugin

  • Plugin page: email-signature-m...
  • Plugin version: 1.1.1
  • PHP compatiblity: 5.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.7-5.2
  • WordPress version: 6.3.1
  • First release: Jan 15, 2019
  • Latest release: May 17, 2019
  • Number of updates: 10
  • Update frequency: every 12.2 days
  • Top authors: jc@kermagoret.net (100%)

Code review

54 tests

User reviews

1 review

Install metrics

40+ active /1,684 total downloads

Benchmarks

Plugin footprint 40% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
The following installer errors require your attention
  • The plugin did not install without errors
    • > User deprecated in wp-content/plugins/email-signature-manager/includes/vendor/Twig-1.35.4/lib/Twig/Autoloader.php+12
    The Twig_Autoloader class is deprecated since version 1.21 and will be removed in 2.0. Use Composer instead.

Server metrics [RAM: ▼1.49MB] [CPU: ▼52.89ms] Passed 4 tests

An overview of server-side resources used by eMail Signature Manager
No issues were detected with server-side resource usage
PageMemory (MB)CPU Time (ms)
Home /2.51 ▼0.958.33 ▼31.30
Dashboard /wp-admin2.53 ▼0.828.73 ▼57.09
Posts /wp-admin/edit.php2.53 ▼0.838.67 ▼40.61
Add New Post /wp-admin/post-new.php2.53 ▼3.368.83 ▼82.54
Media Library /wp-admin/upload.php2.53 ▼0.7010.16 ▼31.01
-> Add company /wp-admin/admin.php?page=./post-new.php?post_type=emsg_company2.539.04
List all redirects /wp-admin/admin.php?page=./edit.php?post_type=emsg_redirect2.538.81
List all companies /wp-admin/admin.php?page=./edit.php?post_type=emsg_company2.538.69
-> Add redirect /wp-admin/admin.php?page=./post-new.php?post_type=emsg_redirect2.537.75
List all persons (signatures) /wp-admin/admin.php?page=./edit.php?post_type=emsg_person2.5314.06
eMail Signature Manager /wp-admin/admin.php?page=email-signature-plugin2.5312.56
-> Add person (signature) /wp-admin/admin.php?page=./post-new.php?post_type=emsg_person2.539.13

Server storage [IO: ▲3.51MB] [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: 603 new files
Database: no new tables, 6 new options
New WordPress options
widget_recent-comments
widget_recent-posts
can_compress_scripts
theysaidso_admin_options
widget_theysaidso_widget
db_upgraded

Browser metrics Passed 4 tests

eMail Signature Manager: an overview of browser usage
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,877 ▲11613.27 ▼1.011.99 ▲0.0944.05 ▲0.90
Dashboard /wp-admin2,283 ▲804.86 ▼0.99114.79 ▲5.7942.75 ▼1.60
Posts /wp-admin/edit.php2,162 ▲592.08 ▲0.0737.48 ▼0.2936.35 ▲0.01
Add New Post /wp-admin/post-new.php1,576 ▲4517.43 ▼5.91662.70 ▼108.1252.57 ▼8.64
Media Library /wp-admin/upload.php1,462 ▲684.39 ▲0.1299.30 ▼6.2645.22 ▲0.61
-> Add company /wp-admin/admin.php?page=./post-new.php?post_type=emsg_company280.440.083.82
List all redirects /wp-admin/admin.php?page=./edit.php?post_type=emsg_redirect280.440.084.36
List all companies /wp-admin/admin.php?page=./edit.php?post_type=emsg_company280.440.084.66
-> Add redirect /wp-admin/admin.php?page=./post-new.php?post_type=emsg_redirect280.440.093.71
List all persons (signatures) /wp-admin/admin.php?page=./edit.php?post_type=emsg_person280.440.094.73
eMail Signature Manager /wp-admin/admin.php?page=email-signature-plugin8522.0723.3122.98
-> Add person (signature) /wp-admin/admin.php?page=./post-new.php?post_type=emsg_person280.440.074.07

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
You still need to fix the following
  • This plugin cannot be uninstalled
    • > User deprecated in wp-content/plugins/email-signature-manager/includes/vendor/Twig-1.35.4/lib/Twig/Autoloader.php+12
    The Twig_Autoloader class is deprecated since version 1.21 and will be removed in 2.0. Use Composer instead.
  • This plugin does not fully uninstall, leaving 6 options in the database
    • widget_recent-comments
    • theysaidso_admin_options
    • widget_theysaidso_widget
    • widget_recent-posts
    • db_upgraded
    • can_compress_scripts

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
These server-side errors were triggered
  • 7 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=./post-new.php?post_type=emsg_person
    • > User deprecated in wp-content/plugins/email-signature-manager/includes/vendor/Twig-1.35.4/lib/Twig/Autoloader.php+12
    The Twig_Autoloader class is deprecated since version 1.21 and will be removed in 2.0. Use Composer instead.
  • 14 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=./post-new.php?post_type=emsg_person
    • > User deprecated in wp-content/plugins/email-signature-manager/includes/vendor/Twig-1.35.4/lib/Twig/Autoloader.php+30
    Using Twig_Autoloader is deprecated since version 1.21. Use Composer instead.

SRP 0% from 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
Almost there! Just fix the following items
  • 1× PHP files perform the action of outputting non-empty strings when accessed directly:
    • > /wp-content/plugins/email-signature-manager/assets/Template-Configuration.php
  • 200× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_File_Base' not found in wp-content/plugins/email-signature-manager/includes/vendor/cmb2/includes/types/CMB2_Type_File.php:13
    • > PHP Fatal error
      Uncaught Error: Call to undefined function plugin_dir_path() in wp-content/plugins/email-signature-manager/includes/class-emsg-redirect-plugin.php:3
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Taxonomy_Base' not found in wp-content/plugins/email-signature-manager/includes/vendor/cmb2/includes/types/CMB2_Type_Taxonomy_Select.php:13
    • > PHP Fatal error
      Uncaught Error: Class 'Twig_Filter' not found in wp-content/plugins/email-signature-manager/includes/vendor/Twig-1.35.4/lib/Twig/Filter/Node.php:23
    • > PHP Fatal error
      Uncaught Error: Class 'Twig_Node_Print' not found in wp-content/plugins/email-signature-manager/includes/vendor/Twig-1.35.4/lib/Twig/Node/SandboxedPrint.php:22
    • > PHP Fatal error
      Uncaught Error: Class 'Twig_Node_Include' not found in wp-content/plugins/email-signature-manager/includes/vendor/Twig-1.35.4/lib/Twig/Node/Embed.php:17
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/email-signature-manager/includes/vendor/cmb2-conditionals/example-functions.php:28
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Select' not found in wp-content/plugins/email-signature-manager/includes/vendor/cmb2/includes/types/CMB2_Type_Select_Timezone.php:13
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/email-signature-manager/includes/vendor/cmb2-conditionals/cmb2-conditionals.php:256
    • > PHP Fatal error
      Uncaught Error: Class 'CMB2_Type_Taxonomy_Multicheck' not found in wp-content/plugins/email-signature-manager/includes/vendor/cmb2/includes/types/CMB2_Type_Taxonomy_Multicheck_Hierarchical.php:13

User-side errors 0% from 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Please fix the following user-side errors
    • > GET request to /wp-admin/admin.php?page=./post-new.php?post_type=emsg_company
    • > Network (severe)
    wp-admin/admin.php?page=./post-new.php?post_type=emsg_company - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
    • > GET request to /wp-admin/admin.php?page=./edit.php?post_type=emsg_redirect
    • > Network (severe)
    wp-admin/admin.php?page=./edit.php?post_type=emsg_redirect - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
    • > GET request to /wp-admin/admin.php?page=./edit.php?post_type=emsg_company
    • > Network (severe)
    wp-admin/admin.php?page=./edit.php?post_type=emsg_company - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
    • > GET request to /wp-admin/admin.php?page=./post-new.php?post_type=emsg_redirect
    • > Network (severe)
    wp-admin/admin.php?page=./post-new.php?post_type=emsg_redirect - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
    • > GET request to /wp-admin/admin.php?page=./edit.php?post_type=emsg_person
    • > Network (severe)
    wp-admin/admin.php?page=./edit.php?post_type=emsg_person - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
    • > GET request to /wp-admin/admin.php?page=./post-new.php?post_type=emsg_person
    • > Network (severe)
    wp-admin/admin.php?page=./post-new.php?post_type=emsg_person - Failed to load resource: the server responded with a status of 500 (Internal Server Error)

Optimizations

Plugin configuration 96% from 29 tests

readme.txt Passed 16 tests

Often overlooked, readme.txt is one of the most important files in your plugin
10 plugin tags: call-to-action, email, manager, signature, email signature...

email-signature-manager/email-signature-manager.php 92% from 13 tests

Analyzing the main PHP file in "eMail Signature Manager" version 1.1.1
Please take the time to fix the following:
  • Git Repository: An alternative Git repository was detected

Code Analysis Passed 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
No dangerous file extensions were detected61,235 lines of code in 441 files:
LanguageFilesBlank linesComment linesLines of code
PO File12013,78717,89031,582
PHP2685,30411,53319,978
CSS141,1491,2115,233
JavaScript93514631,410
Sass15291251,330
C1171186860
Markdown52160622
JSON20077
YAML2185277
XML28237
C/C++ Header171315
reStructuredText1519
m41215

PHP code Passed 2 tests

This plugin's cyclomatic complexity and code structure detailed below
This plugin has no cyclomatic complexity problems
Cyclomatic complexity
Average complexity per logical line of code0.44
Average class complexity11.09
▷ Minimum class complexity1.00
▷ Maximum class complexity230.00
Average method complexity2.93
▷ Minimum method complexity1.00
▷ Maximum method complexity68.00
Code structure
Namespaces0
Interfaces25
Traits0
Classes249
▷ Abstract classes228.84%
▷ Concrete classes22791.16%
▷ Final classes10.44%
Methods1,509
▷ Static methods1127.42%
▷ Public methods1,23281.64%
▷ Protected methods25817.10%
▷ Private methods191.26%
Functions92
▷ Named functions92100.00%
▷ Anonymous functions00.00%
Constants67
▷ Global constants913.43%
▷ Class constants5886.57%
▷ Public constants58100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

PNG files should be compressed to save space and minimize bandwidth usage
14 PNG files occupy 0.02MB with 0.00MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
includes/vendor/cmb2/images/ico-delete.png0.70KB0.72KB0.00%
includes/vendor/cmb2/images/ui-bg_glass_95_fef1ec_1x400.png0.12KB0.14KB0.00%
includes/vendor/cmb2/images/ui-bg_highlight-soft_75_cccccc_1x100.png0.10KB0.17KB0.00%
includes/vendor/cmb2/images/ui-bg_flat_0_aaaaaa_40x100.png0.18KB0.08KB▼ 51.67%
includes/vendor/cmb2/images/ui-bg_flat_75_ffffff_40x100.png0.17KB0.08KB▼ 51.12%