Discount Rules and Dynamic Pricing for WooCommerce

WooCommerce discount plugin, pricing and discounts, category discount, smart coupon, quantity discount, bulk discount, shipping method, storewide.

v9.1.0AsanaPluginsUpdated 2026-06-01Added Apr 13, 201910k+ installs94% rating100% support resolved
28
Score
182
Errors
334
Warnings
+0
Change

Category Scores

Security0
Repo88
Performance90
Maintainability31

Top Issues by Category

security243
maintainability200
i18n45
performance11

Issues Details

516 issues found in latest scan

ERROR72
WordPress.Security.EscapeOutput.OutputNotEscaped

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

WARNING56
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

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

WARNING51
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING50
WordPress.DB.DirectDatabaseQuery.NoCaching

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

WARNING42
WordPress.DB.PreparedSQL.InterpolatedNotPrepared

Use placeholders and $wpdb->prepare(); found interpolated variable $column at "SELECT $column FROM $this->table_name WHERE $column_where = %s LIMIT 1;"

WARNING38
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

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

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

ERROR23
WordPress.DateTime.RestrictedFunctions.date_date

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

WARNING18
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

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

WARNING17
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

ERROR14
WordPress.DB.PreparedSQL.NotPrepared

Use placeholders and $wpdb->prepare(); found $columns

WARNING12
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

Detected usage of a non-sanitized input variable: $_GET['_wccs_notice_nonce']

WARNING11
WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude

Using exclusionary parameters, like exclude, in calls to get_posts() should be done with caution, see https://wpvip.com/documentation/performance-improvements-by-removing-usage-of-post__not_in/ for more information.

ERROR10
WordPress.Security.EscapeOutput.UnsafePrintingFunction

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

ERROR9
wp_function_not_compatible_with_requires_wp

Function "rest_authorization_required_code()" requires WordPress 4.7.0, but your plugin minimum supported version is WordPress 4.4.2.

ERROR8
WordPress.WP.I18n.TextDomainMismatch

Mismatched text domain. Expected 'easy-woocommerce-discounts' but got 'wc-extension-activation'.

ERROR6
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $order_ids_sql used in $wpdb->get_col()\n$order_ids_sql assigned unsafely at line 72.

WARNING6
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

WARNING5
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $this->primary_key used in $wpdb->get_row()

ERROR4
WordPress.WP.I18n.NonSingularStringLiteralText

The $text parameter must be a single text string literal. Found: $label

WARNING3
WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare

Replacement variables found, but no valid placeholders found in the query.

WARNING3
WordPress.DB.SlowDBQuery.slow_db_query_meta_query

Detected usage of meta_query, possible slow query.

WARNING3
WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound

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

WARNING3
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "activate_wc_conditions".

WARNING2
WordPress.DB.SlowDBQuery.slow_db_query_meta_key

Detected usage of meta_key, possible slow query.

Latest Snapshot

Findings

516

Errors

182

Warnings

334

Score History

First score snapshot

First scan completed Jun 20, 2026

v9.1.0 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

Jun 20, 2026

v9.1.0

28

Latest

Findings
516
Errors
182
Warnings
334
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins