83% sender-net-automated-emails

Code Review | Sender - Newsletter, SMS and Email Marketing Automation for WooCommerce

WordPress plugin Sender - Newsletter, SMS and Email Marketing Automation for WooCommerce scored83%from 54 tests.

About plugin

  • Plugin page: sender-net-automa...
  • Plugin version: 2.5.9
  • PHP compatiblity: 7.1+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.2-6.4.1
  • WordPress version: 6.3.1
  • First release: Mar 22, 2021
  • Latest release: Dec 1, 2023
  • Number of updates: 61
  • Update frequency: every 34.5 days
  • Top authors: augustask (81.97%)sendernet (19.67%)

Code review

54 tests

User reviews

9 reviews

Install metrics

2,000+ active /37,885 total downloads

Benchmarks

Plugin footprint 82% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Installer ran successfully

Server metrics [RAM: ▲0.13MB] [CPU: ▼6.57ms] Passed 4 tests

Server-side resources used by Sender - Newsletter, SMS and Email Marketing Automation for WooCommerce
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /3.62 ▲0.1636.46 ▼2.88
Dashboard /wp-admin3.44 ▲0.1050.55 ▼10.49
Posts /wp-admin/edit.php3.56 ▲0.2051.95 ▲5.44
Add New Post /wp-admin/post-new.php6.02 ▲0.1480.85 ▼14.95
Media Library /wp-admin/upload.php3.37 ▲0.1435.34 ▲2.04

Server storage [IO: ▲0.19MB] [DB: ▲0.00MB] 67% from 3 tests

How much does this plugin use your filesystem and database?
Please fix the following
  • The plugin illegally modified 1 file (0.00KB) outside of "wp-content/plugins/sender-net-automated-emails/" and "wp-content/uploads/"
    • (new file) "wp-content/plugins/sender-net-automated-emails/assets/images/icon-256\303\227256.png"
Filesystem: 25 new files
Database: 2 new tables, 23 new options
New tables
wp_sender_automated_emails_users
wp_sender_automated_emails_carts
New WordPress options
sender_account_message
theysaidso_admin_options
sender_store_register
sender_groups_data
sender_customers_list
sender_forms_data
sender_wocommerce_sync
sender_resource_key
sender_account_plan_type
sender_api_key
...

Browser metrics Passed 4 tests

Sender - Newsletter, SMS and Email Marketing Automation for WooCommerce: an overview of browser usage
Normal browser usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,807 ▲6014.72 ▲0.341.61 ▼0.1937.58 ▼5.96
Dashboard /wp-admin2,200 ▲205.53 ▼0.1295.62 ▼2.1081.08 ▲35.18
Posts /wp-admin/edit.php2,123 ▲231.99 ▲0.0239.32 ▼0.7834.29 ▼1.81
Add New Post /wp-admin/post-new.php1,541 ▲1523.06 ▼0.52680.05 ▲47.1451.10 ▼1.61
Media Library /wp-admin/upload.php1,417 ▲174.14 ▼0.0293.61 ▼2.2473.20 ▲32.13

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
It is recommended to fix the following
  • This plugin does not fully uninstall, leaving 6 options in the database
    • theysaidso_admin_options
    • widget_theysaidso_widget
    • widget_recent-posts
    • db_upgraded
    • can_compress_scripts
    • widget_recent-comments

Smoke tests 75% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
Everything seems fine, however this is by no means an exhaustive test

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
The following issues need your attention
  • 3× PHP files trigger server-side errors or warnings when accessed directly:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/sender-net-automated-emails/templates/widget_options.php:3
    • > PHP Notice
      Undefined variable: apiKey in wp-content/plugins/sender-net-automated-emails/templates/settings.php on line 3
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_transient() in wp-content/plugins/sender-net-automated-emails/templates/settings.php:9

User-side errors Passed 1 test

🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Everything seems fine on the user side

Optimizations

Plugin configuration 90% from 29 tests

readme.txt 94% from 16 tests

Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
Please fix the following attributes: The official readme.txt is a good inspiration

sender-net-automated-emails/sender.php 85% from 13 tests

The primary PHP file in "Sender - Newsletter, SMS and Email Marketing Automation for WooCommerce" version 2.5.9 is used by WordPress to initiate all plugin functionality
It is important to fix the following:
  • Main file name: Name the main plugin file the same as the plugin slug ("sender-net-automated-emails.php" instead of "sender.php")
  • Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 249 characters long)

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
Good job! No executable or dangerous file extensions detected3,625 lines of code in 20 files:
LanguageFilesBlank linesComment linesLines of code
PHP16635663,020
CSS18213498
PO File1363985
JavaScript13020
SVG1002

PHP code Passed 2 tests

Analyzing cyclomatic complexity and code structure
This plugin has no cyclomatic complexity problems
Cyclomatic complexity
Average complexity per logical line of code0.38
Average class complexity30.00
▷ Minimum class complexity1.00
▷ Maximum class complexity105.00
Average method complexity3.44
▷ Minimum method complexity1.00
▷ Maximum method complexity16.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes12
▷ Abstract classes00.00%
▷ Concrete classes12100.00%
▷ Final classes00.00%
Methods130
▷ Static methods43.08%
▷ Public methods11185.38%
▷ Protected methods32.31%
▷ Private methods1612.31%
Functions3
▷ Named functions00.00%
▷ Anonymous functions3100.00%
Constants25
▷ Global constants00.00%
▷ Class constants25100.00%
▷ Public constants25100.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
3 PNG files occupy 0.03MB with 0.01MB in potential savings
Potential savings
Compression of 3 random PNG files using pngquant
FileSize - originalSize - compressedSavings
assets/images/white_check.png18.47KB11.83KB▼ 35.97%
assets/images/icon-256×256.png5.14KB2.37KB▼ 54.01%
assets/images/settings.png4.51KB1.35KB▼ 70.04%