SendWP

Say hello to the easy solution to transactional email in WordPress.

v1.4.9Kevin StoverUpdated 2026-05-15Added Mar 13, 201910k+ installs82% rating
37
Score
47
Errors
42
Warnings
+0
Change

Category Scores

Security0
Repo83
Performance100
Maintainability75

Top Issues by Category

security52
maintainability31
i18n3
repo_compliance3

Issues Details

89 issues found in latest scan

ERROR22
WordPress.Security.EscapeOutput.OutputNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$vars['disabled']'.

ERROR13
missing_direct_file_access_protection

PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

WARNING8
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

WARNING6
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

Detected usage of a non-sanitized input variable: $_POST['security']

WARNING6
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

$_POST['security'] not unslashed before sanitization. Use wp_unslash() or similar

WARNING5
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$config".

WARNING5
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

WARNING4
WordPress.WP.EnqueuedResourceParameters.MissingVersion

Resource version not set in call to wp_enqueue_script(). This means new versions of the script may not always be loaded due to browser caching.

ERROR3
WordPress.Security.EscapeOutput.UnsafePrintingFunction

All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.

WARNING3
trademarked_term

The plugin name includes a restricted term. Your chosen plugin name - "SendWP" - contains the restricted term "wp" which cannot be used at all in your plugin name.

ERROR1
WordPress.DateTime.RestrictedFunctions.date_date

date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.

WARNING1
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "trustedlogin/sendwp/auth_screen".

WARNING1
WordPress.Security.SafeRedirect.wp_redirect_wp_redirect

wp_redirect() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed.

WARNING1
WordPress.Security.ValidatedSanitizedInput.InputNotValidated

Detected usage of a possibly undefined superglobal array index: $_SERVER['REMOTE_ADDR']. Check that the array index exists before using it.

ERROR1
WordPress.WP.AlternativeFunctions.parse_url_parse_url

parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead.

ERROR1
WordPress.WP.AlternativeFunctions.rand_rand

rand() is discouraged. Use the far less predictable wp_rand() instead.

WARNING1
WordPress.WP.EnqueuedResourceParameters.NotInFooter

In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.

ERROR1
WordPress.WP.I18n.MissingArgDomain

Missing $domain parameter in function call to __().

ERROR1
WordPress.WP.I18n.MissingTranslatorsComment

A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders.

ERROR1
WordPress.WP.I18n.UnorderedPlaceholdersText

Multiple placeholders in translatable strings should be ordered. Expected "%1$s, %2$s", but got "%s, %s" in 'The SendWP plugin is installed, but the service is currently disabled or disconnected on this site. %sConnect or register.%s'.

WARNING1
missing_composer_json_file

The "/vendor" directory using composer exists, but "composer.json" file is missing.

ERROR1
outdated_tested_upto_header

Tested up to: 6.9 < 7.0. The "Tested up to" value in your plugin is not set to the current version of WordPress. This means your plugin will not show up in searches, as we require plugins to be compatible and documented as tested up to the most recent version of WordPress.

ERROR1
plugin_header_no_license

Missing "License" in Plugin Header. Please update your Plugin Header with a valid GPLv2 (or later) compatible license.

ERROR1
readme_mismatched_header_requires_php

Mismatched Requires PHP: 5.6.0 != 5.6. "Requires PHP" needs to be exactly the same with that in your main plugin file's header.

Latest Snapshot

Findings

89

Errors

47

Warnings

42

Score History

First score snapshot

First scan completed Jun 20, 2026

v1.4.9 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

Jun 20, 2026

v1.4.9

37

Latest

Findings
89
Errors
47
Warnings
42
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins