WooCommerce Tax (formerly WooCommerce Shipping & Tax)

We’re here to help with tax rates: collect accurate sales tax, automatically.

v3.6.5WooCommerceUpdated 2026-06-08Added Jan 28, 2017600k+ installs40% rating100% support resolved
30
Score
103
Errors
198
Warnings
+0
Change

Category Scores

Security0
Repo94
Performance100
Maintainability29

Top Issues by Category

maintainability168
i18n67
security58

Issues Details

301 issues found in latest scan

WARNING65
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound

Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "WC_Connect_API_Client".

ERROR35
WordPress.WP.I18n.TextDomainMismatch

Mismatched text domain. Expected 'woocommerce-services' but got 'woocommerce'.

WARNING34
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

WARNING28
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'wc_services_pointer_' . $hook".

ERROR27
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.

ERROR18
missing_direct_file_access_protection

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

WARNING13
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING13
WordPress.DB.DirectDatabaseQuery.NoCaching

Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().

WARNING11
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

$_GET['carrier'] not unslashed before sanitization. Use wp_unslash() or similar

WARNING9
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

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

ERROR8
WordPress.WP.AlternativeFunctions.rand_mt_rand

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

WARNING7
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.

ERROR4
WordPress.WP.I18n.MissingArgDomain

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

WARNING3
WordPress.PHP.DevelopmentFunctions.error_log_print_r

print_r() found. Debug code should not normally be used in production.

WARNING3
WordPress.WP.EnqueuedResourceParameters.NotInFooter

In footer ($in_footer) is not set explicitly wp_register_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.

WARNING3
trademarked_term

The plugin name includes a restricted term. Your chosen plugin name - "WooCommerce Tax (formerly WooCommerce Shipping & Tax)" - contains the restricted term "woocommerce" which cannot be used within in your plugin name, unless your plugin name contains one of the allowed patterns: "for woocommerce", "with woocommerce", "using woocommerce", or "and woocommerce". The term must still not appear anywhere else in your name.

WARNING2
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

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

ERROR2
WordPress.Security.EscapeOutput.ExceptionNotEscaped

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

ERROR2
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.

WARNING1
PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound

load_plugin_textdomain() has been discouraged since WordPress version 4.6. When your plugin is hosted on WordPress.org, you no longer need to manually include this function call for translations under your plugin slug. WordPress will automatically load the translations for you as needed.

WARNING1
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $escaped_list used in $wpdb->get_results()\n$escaped_list assigned unsafely at line 375.

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.NonPrefixedConstantFound

Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DONOTCACHEPAGE".

WARNING1
WordPress.PHP.DevelopmentFunctions.error_log_error_log

error_log() found. Debug code should not normally be used in production.

ERROR1
WordPress.Security.EscapeOutput.OutputNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found 'wc_esc_json'.

Latest Snapshot

Findings

301

Errors

103

Warnings

198

Score History

First score snapshot

First scan completed Jun 19, 2026

v3.6.5 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

Jun 19, 2026

v3.6.5

30

Latest

Findings
301
Errors
103
Warnings
198
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins