62% tuxmailer-email-validation

Code Review | TuxMailer Email Validation

WordPress plugin TuxMailer Email Validation scored62%from 54 tests.

About plugin

  • Plugin page: tuxmailer-email-v...
  • Plugin version: 1.2
  • PHP compatiblity: 7.0+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.8-5.9.2
  • WordPress version: 6.3.1
  • First release: Apr 26, 2022
  • Latest release: Apr 26, 2022
  • Number of updates: 2
  • Update frequency: N/A
  • Top authors: tuxmailer (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active /223 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
Installer ran successfully

Server metrics [RAM: ▲1.45MB] [CPU: ▲15.77ms] Passed 4 tests

A check of server-side resources used by TuxMailer Email Validation
Normal server usage
PageMemory (MB)CPU Time (ms)
Home /5.05 ▲1.5955.76 ▲14.26
Dashboard /wp-admin4.74 ▲1.4367.25 ▲18.37
Posts /wp-admin/edit.php4.85 ▲1.4967.44 ▲18.94
Add New Post /wp-admin/post-new.php7.32 ▲1.43105.80 ▲11.49
Media Library /wp-admin/upload.php4.66 ▲1.4362.45 ▲22.93
Scheduled Actions /wp-admin/tools.php?page=action-scheduler4.8372.18
Bulk Email Validation /wp-admin/admin.php?page=tuxmailer-bulk-validation4.6350.20
Settings /wp-admin/admin.php?page=tuxmailer-options-page4.6056.97

Server storage [IO: ▲0.71MB] [DB: ▲0.01MB] Passed 3 tests

How much does this plugin use your filesystem and database?
There were no storage issued detected upon installing this plugin
Filesystem: 127 new files
Database: 7 new tables, 20 new options
New tables
wp_actionscheduler_logs
wp_tuxmalr_response_meta
wp_actionscheduler_actions
wp_tuxmlr_email_meta
wp_actionscheduler_groups
wp_actionscheduler_claims
wp_tuxmlr_api_request
New WordPress options
tux_active_plugin
widget_theysaidso_widget
action_scheduler_hybrid_store_demarkation
tuxmailer_install_notification
action_scheduler_lock_async-request-runner
uninstalled_plugins
can_compress_scripts
tuxmlr_db_version
tuxmailer_wpforms_sub_notification
tuxmailer_wpforms_notification
...

Browser metrics Passed 4 tests

This is an overview of browser requirements for TuxMailer Email Validation
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,984 ▲19813.25 ▼1.281.51 ▼0.6740.73 ▼5.12
Dashboard /wp-admin2,393 ▲2195.88 ▲0.2490.76 ▼5.3780.66 ▲36.77
Posts /wp-admin/edit.php2,270 ▲1732.46 ▲0.4738.00 ▼0.2940.09 ▲2.58
Add New Post /wp-admin/post-new.php1,650 ▲12223.29 ▲0.31618.39 ▼76.6332.66 ▼27.68
Media Library /wp-admin/upload.php1,601 ▲2014.34 ▲0.19105.46 ▼3.3278.93 ▲30.77
Scheduled Actions /wp-admin/tools.php?page=action-scheduler1,4192.4031.2139.21
Bulk Email Validation /wp-admin/admin.php?page=tuxmailer-bulk-validation1,4242.3232.6875.28
Settings /wp-admin/admin.php?page=tuxmailer-options-page1,4082.0940.0653.24

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

🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
The following items require your attention
  • Zombie tables were found after uninstall: 7 tables
    • wp_tuxmlr_api_request
    • wp_tuxmalr_response_meta
    • wp_tuxmlr_email_meta
    • wp_actionscheduler_logs
    • wp_actionscheduler_groups
    • wp_actionscheduler_actions
    • wp_actionscheduler_claims
  • Zombie WordPress options detected upon uninstall: 13 options
    • schema-ActionScheduler_LoggerSchema
    • widget_theysaidso_widget
    • theysaidso_admin_options
    • tux_active_plugin
    • action_scheduler_lock_async-request-runner
    • action_scheduler_hybrid_store_demarkation
    • widget_recent-comments
    • db_upgraded
    • widget_recent-posts
    • uninstalled_plugins
    • ...

Smoke tests 25% 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 errors were triggered by the plugin
    • > GET request to /wp-admin/admin.php?page=tuxmailer-options-page
    • > Notice in wp-content/plugins/tuxmailer-email-validation/includes/tuxmlr-settings-tab.php+181
    Trying to access array offset on value of type bool

SRP 50% from 2 tests

🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please fix the following
  • 52× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'CronExpression_AbstractField' not found in wp-content/plugins/tuxmailer-email-validation/libraries/action-scheduler/lib/cron-expression/CronExpression_MonthField.php:8
    • > PHP Fatal error
      Uncaught Error: Class 'ActionScheduler_SimpleSchedule' not found in wp-content/plugins/tuxmailer-email-validation/libraries/action-scheduler/classes/schedules/ActionScheduler_NullSchedule.php:6
    • > PHP Fatal error
      Uncaught Error: Class 'ActionScheduler_DBStore' not found in wp-content/plugins/tuxmailer-email-validation/libraries/action-scheduler/classes/migration/ActionScheduler_DBStoreMigrator.php:10
    • > PHP Fatal error
      Uncaught Error: Class 'ActionScheduler_Logger' not found in wp-content/plugins/tuxmailer-email-validation/libraries/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php:6
    • > PHP Warning
      Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/tuxmailer-email-validation/libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php on line 4
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/tuxmailer-email-validation/includes/tuxmlr-formidable-forms.php:6
    • > PHP Fatal error
      Uncaught Error: Call to undefined function plugin_basename() in wp-content/plugins/tuxmailer-email-validation/tuxmailer-email-validation.php:17
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/tuxmailer-email-validation/includes/tuxmlr-wpforms.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'ActionScheduler_Abstract_Schema' not found in wp-content/plugins/tuxmailer-email-validation/libraries/action-scheduler/classes/schema/ActionScheduler_LoggerSchema.php:10
    • > PHP Fatal error
      Uncaught Error: Class 'ActionScheduler_Schedule_Deprecated' not found in wp-content/plugins/tuxmailer-email-validation/libraries/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schedule.php:6

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/admin.php?page=tuxmailer-bulk-validation
    • > Network (severe)
    wp-admin/filterIcon.png - Failed to load resource: the server responded with a status of 404 (Not Found)

Optimizations

Plugin configuration 90% from 29 tests

readme.txt 94% from 16 tests

Don't ignore readme.txt as it is the file that instructs WordPress.org on how to present your plugin to the world
Please fix the following attributes:
  • Contributors: The plugin contributors field is missing
The official readme.txt is a good inspiration

tuxmailer-email-validation/tuxmailer-email-validation.php 85% from 13 tests

The main file in "TuxMailer Email Validation" v. 1.2 serves as a complement to information provided in readme.txt and as the entry point to the plugin
It is important to fix the following:
  • Description: Keep the plugin description shorter than 140 characters (currently 204 characters long)
  • Requires at least: Required version does not match the one declared in readme.txt ("5.9" instead of "5.8")

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
Success! There were no dangerous files found in this plugin11,112 lines of code in 103 files:
LanguageFilesBlank linesComment linesLines of code
PHP922,0155,2238,790
JavaScript32081031,289
CSS310953838
SVG300105
Markdown237090

PHP code Passed 2 tests

Analyzing cyclomatic complexity and code structure
This plugin has no cyclomatic complexity issues
Cyclomatic complexity
Average complexity per logical line of code0.36
Average class complexity9.94
▷ Minimum class complexity1.00
▷ Maximum class complexity81.00
Average method complexity2.30
▷ Minimum method complexity1.00
▷ Maximum method complexity27.00
Code structure
Namespaces2
Interfaces3
Traits0
Classes75
▷ Abstract classes1520.00%
▷ Concrete classes6080.00%
▷ Final classes00.00%
Methods571
▷ Static methods6210.86%
▷ Public methods41973.38%
▷ Protected methods13423.47%
▷ Private methods183.15%
Functions112
▷ Named functions9786.61%
▷ Anonymous functions1513.39%
Constants56
▷ Global constants2341.07%
▷ Class constants3358.93%
▷ Public constants33100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
15 PNG files occupy 0.04MB with 0.02MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
assets/images/validblue.png0.86KB0.46KB▼ 46.30%
assets/css/Vector-downarrow.png0.24KB0.19KB▼ 17.43%
assets/images/download-icon.png2.15KB0.28KB▼ 86.83%
assets/images/download-icon-white.png2.00KB0.26KB▼ 87.23%
assets/images/questionmark.png8.62KB1.38KB▼ 83.97%