Product Labels For Woocommerce (Sale Badges)

Create custom product labels and sale badges for WooCommerce products to highlight offers and promotions.

v1.5.14acowebsUpdated 2026-06-01Added Jul 9, 202010k+ installs92% rating100% support resolved
36
Score
90
Errors
48
Warnings
+0
Change

Category Scores

Security0
Repo94
Performance98
Maintainability59

Top Issues by Category

maintainability64
security58
i18n13
performance1
repo_compliance1

Issues Details

138 issues found in latest scan

ERROR29
WordPress.Security.EscapeOutput.OutputNotEscaped

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

ERROR16
WordPress.DateTime.RestrictedFunctions.date_date

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

WARNING11
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING11
WordPress.DB.DirectDatabaseQuery.NoCaching

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

ERROR10
WordPress.WP.I18n.MissingArgDomain

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

ERROR7
WordPress.DB.PreparedSQLPlaceholders.UnescapedLiteral

Found unescaped literal "%" character.

ERROR6
PluginCheck.Security.DirectDB.UnescapedDBParameter

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

ERROR6
WordPress.DB.PreparedSQLPlaceholders.LikeWildcardsInQuery

SQL wildcards for a LIKE query should be passed in through a replacement parameter. Found: LIKE '%.

WARNING6
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

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

ERROR4
WordPress.DB.PreparedSQL.NotPrepared

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

WARNING4
WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound

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

ERROR4
missing_direct_file_access_protection

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

WARNING3
WordPress.DB.PreparedSQL.InterpolatedNotPrepared

Use placeholders and $wpdb->prepare(); found interpolated variable $productID at "SELECT ID FROM {$wpdb->prefix}posts WHERE post_status = 'publish' AND post_parent IN ($productID) AND post_type = 'product_variation'"

ERROR3
WordPress.DB.PreparedSQLPlaceholders.QuotedSimplePlaceholder

Simple placeholders should not be quoted in the query string in $wpdb->prepare(). Found: '%s'.

WARNING3
WordPress.DB.SlowDBQuery.slow_db_query_meta_query

Detected usage of meta_query, possible slow query.

WARNING2
WordPress.DB.SlowDBQuery.slow_db_query_tax_query

Detected usage of tax_query, possible slow query.

WARNING2
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

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

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

ERROR2
WordPress.WP.I18n.NonSingularStringLiteralContext

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

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.

ERROR1
WordPress.WP.DeprecatedParameters.Get_termsParam2Found

The parameter "['taxonomy' => 'product_cat', 'hide_empty' => false, 'fields' => 'id=>name']" at position #2 of get_terms() has been deprecated since WordPress version 4.5.0. Instead do not pass the parameter.

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

WARNING1
WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_post__not_in

Using exclusionary parameters, like post__not_in, 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.

WARNING1
mismatched_plugin_name

Plugin name "Product Labels For Woocommerce (Sale Badges)" is different from the name declared in plugin header "Acowebs Product Labels For Woocommerce".

ERROR1
plugin_header_no_license

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

Latest Snapshot

Findings

138

Errors

90

Warnings

48

Score History

First score snapshot

First scan completed Jun 20, 2026

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

Jun 20, 2026

v1.5.14

36

Latest

Findings
138
Errors
90
Warnings
48
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins