WooCommerce discount plugin, pricing and discounts, category discount, smart coupon, quantity discount, bulk discount, shipping method, storewide.
Category Scores
Top Issues by Category
security243
maintainability200
i18n45
Issues Details
516 issues found in latest scan
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$active'.
$_GET['_wccs_notice_nonce'] not unslashed before sanitization. Use wp_unslash() or similar
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Use placeholders and $wpdb->prepare(); found interpolated variable $column at "SELECT $column FROM $this->table_name WHERE $column_where = %s LIMIT 1;"
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$_wp_query".
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.
date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'get_template_part_' . $slug".
Processing form data without nonce verification.
Detected usage of a non-sanitized input variable: $_GET['_wccs_notice_nonce']
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.
All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.
Function "rest_authorization_required_code()" requires WordPress 4.7.0, but your plugin minimum supported version is WordPress 4.4.2.
Mismatched text domain. Expected 'easy-woocommerce-discounts' but got 'wc-extension-activation'.
Unescaped parameter $order_ids_sql used in $wpdb->get_col()\n$order_ids_sql assigned unsafely at line 72.
Processing form data without nonce verification.
Unescaped parameter $this->primary_key used in $wpdb->get_row()
The $text parameter must be a single text string literal. Found: $label
Replacement variables found, but no valid placeholders found in the query.
Detected usage of meta_query, possible slow query.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$name".
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "activate_wc_conditions".
Detected usage of meta_key, possible slow query.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$active'. | 72 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET['_wccs_notice_nonce'] not unslashed before sanitization. Use wp_unslash() or similar | 56 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 51 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 50 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable $column at "SELECT $column FROM $this->table_name WHERE $column_where = %s LIMIT 1;" | 42 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$_wp_query". | 38 |
| WordPress.WP.I18n.MissingTranslatorsComment | ERROR | 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. | 33 |
| WordPress.DateTime.RestrictedFunctions.date_date | ERROR | date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead. | 23 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'get_template_part_' . $slug". | 18 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 17 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $columns | 14 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_GET['_wccs_notice_nonce'] | 12 |
| WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude | WARNING | 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. | 11 |
| WordPress.Security.EscapeOutput.UnsafePrintingFunction | ERROR | All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'. | 10 |
| wp_function_not_compatible_with_requires_wp | ERROR | Function "rest_authorization_required_code()" requires WordPress 4.7.0, but your plugin minimum supported version is WordPress 4.4.2. | 9 |
| WordPress.WP.I18n.TextDomainMismatch | ERROR | Mismatched text domain. Expected 'easy-woocommerce-discounts' but got 'wc-extension-activation'. | 8 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | ERROR | Unescaped parameter $order_ids_sql used in $wpdb->get_col()\n$order_ids_sql assigned unsafely at line 72. | 6 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 6 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $this->primary_key used in $wpdb->get_row() | 5 |
| WordPress.WP.I18n.NonSingularStringLiteralText | ERROR | The $text parameter must be a single text string literal. Found: $label | 4 |
| WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare | WARNING | Replacement variables found, but no valid placeholders found in the query. | 3 |
| WordPress.DB.SlowDBQuery.slow_db_query_meta_query | WARNING | Detected usage of meta_query, possible slow query. | 3 |
| WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$name". | 3 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "activate_wc_conditions". | 3 |
| WordPress.DB.SlowDBQuery.slow_db_query_meta_key | WARNING | Detected usage of meta_key, possible slow query. | 2 |
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
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 28 | 516 | 182 | 334 | v9.1.0 | 2.0.0 | 2026.06-mvp-static-v2 |