Custom product labels in WooCommerce turn passive browsers into active buyers by making sales, new arrivals, and low-stock items impossible to miss. You can add these labels using a plugin in under 20 minutes without writing code, making it a direct path to higher conversion rates and average order values. This guide walks you through both plugin-based and manual approaches so you can choose the method that fits your technical comfort level.
Why Custom Product Labels Boost Sales
Product labels like "Sale," "Best Seller," and "Low Stock" grab attention immediately. They help shoppers make faster buying decisions by pointing out the products that matter most. eCommerce websites that use product badges strategically experience conversion rate increases of up to 55%. Another analysis found that implementing product badges can improve click-through rates by 10-35% and add-to-cart rates by 8-25% depending on placement and design. For a store owner, that is a direct path to higher revenue without changing your inventory or prices.
What You'll Need
- An active WooCommerce store with administrator access
- A plugin that supports custom product labels (or comfort editing theme files)
- Approximately 15-20 minutes of setup time
- Basic familiarity with the WordPress admin dashboard
Full documentation: WooCommerce Product Badges and Labels Documentation
You can implement custom labels using a dedicated plugin, or you can add them manually with code. This guide covers both approaches, starting with the plugin method because it is faster and safer.
The most reliable way is to use a plugin built for product badges. This gives you a visual editor, multiple label types, and control over placement without touching your site's code. Below are the exact steps.
What You Need to Know Before Adding Labels
To create custom product labels in WooCommerce, you can either use a dedicated plugin or add custom CSS/PHP code. The plugin approach is easiest: install and activate the plugin, then go to the plugin settings to create label templates with custom text, colors, and positioning. For a code-based approach, you can add a filter to your themes functions.php file to output a custom badge on product images.
Before you start, you need to understand two things: how WooCommerce displays product data and what kind of label you want. Product labels fall into two categories:
Static labels display the same message on every product (e.g., "New Arrival" for all items in a category).
Dynamic labels change based on product conditions, such as stock status ("Out of Stock"), sale price ("20% Off"), or product tags ("Best Seller"). Most store owners prefer dynamic labels because they update automatically without manual intervention.
You also need to decide how the label will be applied. Plugins handle the logic and styling for you. A code-based approach gives you full control but requires you to create or tweak a child theme. If you use custom code, you must add it to your child themes functions.php file. Editing the parent theme directly will cause your changes to disappear when the theme updates. If you do not have a child theme set up, Custom Product Addons provides a plugin-based alternative that avoids all theme editing.
No matter which method you choose, the core task remains the same: define the label text and condition, then position it on the product image or archive page. Labels placed in the top-left corner of product images tend to get the most attention, according to eye-tracking studies on ecommerce stores.
Method 1: Using a Product Labels for WooCommerce Plugin
The Product Labels WooCommerce plugin is designed to let you create product options and allow customers to personalize items they are looking to buy. While its primary strength is adding custom fields like text boxes, drop-downs, and checkboxes to products, it can also be used to create visual indicators and labels on your product pages. You can charge separately for each product option that customers select, giving you full control over premium add-ons. This plugin works within your existing WooCommerce setup and does not require any developer assistance.
Step 1: Install and Activate Custom Product Addons
Why this matters: You need the plugin installed before you can create any custom labels or options.
Action: In your WordPress admin dashboard, go to Plugins and click Add New. Upload the plugin ZIP file you downloaded, then click Activate. Once activated, you will see a new menu item labeled "Product Addons" in your WordPress sidebar.
Result: You should now see the Product Addons settings page, which is where you will build your custom labels.
Based on the Product Badges and Labels for WooCommerce documentation you provided, here's the rewritten section following that format and style:
Step 2: Create Your First Badge
Why this matters: A well-designed badge catches the shopper's eye without cluttering your product images. After activation, go to Product Badges and Labels → Add New Badge. You'll see a settings panel with these key options:
Badge Type: Choose between three types: text badges (custom text like "Sale" or "New"), image badges (from the predefined library including BOGO, Clearance, Popular, and Bestseller), or countdown badges that display a live timer. Text badges work best for simple messaging while countdown badges create urgency.
Badge Text and Color: For text badges, enter the text that will appear on the badge, like "Sale", "New", or "Limited Stock". Keep it to 2-3 words for readability at small sizes. Choose a background color and text color that contrast with your product images. Red and orange badges perform well for sales, while green works for "In Stock" or "Eco-Friendly" labels.
Badge Position: Use the drag-and-drop positioning tool to place the badge exactly where you want it on the product image. Simply drag the badge in the live preview panel to position it top-left, top-right, center, or anywhere else that looks right for your products.
Badge Shape and Style: Pick from various shape options including round, square, and ribbon styles. Customize the size, padding, border radius, and opacity to match your brand. You can even add 3D rotation effects for more visual impact. Rounded rectangles are the most universal and work across different product categories.
Live Preview: The plugin shows you exactly how your badge will look before you save it, allowing you to preview changes in real-time and ensure it matches your store's aesthetic.
Save your badge. You should now see it listed in the Product Badges and Labels dashboard, ready to be applied to specific products or categories.
Step 3: Apply the Badge to Products
Why this matters: Applying badges to specific products or categories keeps your store organized and ensures the right message reaches the right customers. You don't want a "New Arrival" badge on every item in your clearance section.
In the same plugin's interface, you can apply the badge in three ways:
By Specific Products: Hand-select individual products to display the badge. Useful for highlighting your best sellers or seasonal items.
By Category: Apply the badge to all products within specific categories automatically. Perfect for applying "Sale" badges to your entire clearance section or "New Arrival" badges to a new products category.
By Display Conditions: Set automatic display rules so badges appear based on product conditions like sale status, stock level, price range, or whether a product is featured. For example, a "Low Stock" badge automatically appears on all products with fewer than 5 units available, without any manual intervention.
You can also use role-based visibility to show different badges to different customer types. Wholesale customers might see different badges than retail customers, and VIP members can see exclusive messaging.
Method 2: Custom Code (Flexible & Free)
If you prefer a hands-on approach and want complete control over the design and logic of your product labels without relying on a third-party plugin, adding custom code is a solid option. This method works well for store owners who are comfortable editing theme files or have a developer on hand.
The example below adds a "New" badge to any product published in the last 30 days. You can adjust the time frame, change the label text, or style the badge to match your store's look.
Step 1: Add the PHP Snippet to Your Child Theme
Why this matters: The PHP code checks each product's publish date and adds a custom label class onto the product container, which you can then style with CSS. Placing it in a child theme ensures your changes survive theme updates.
Action:
- Navigate to Appearance → Theme File Editor from your WordPress dashboard.
- Open your child theme's functions.php file.
- Add the following snippet at the end of the file:
// Add a "New" product badge for items published within the last 30 days
add_action( 'woocommerce_before_shop_loop_item_title', 'add_new_product_badge', 10 );
function add_new_product_badge() {
global $product;
$post_date = get_the_date( 'U' );
$current_date = current_time( 'timestamp' );
$days_difference = floor( ( $current_date - $post_date ) / ( 60 * 60 * 24 ) );
if ( $days_difference <= 30 && $product->is_in_stock() ) {
echo '<span class="custom-new-badge">New</span>';
}
}
Result: Any product published within 30 days and currently in stock will now output a <span class="custom-new-badge">New</span> element inside the shop loop.
Step 2: Style the Badge with CSS
Why this matters: Without CSS, the badge text appears unstyled and invisible to shoppers. A few lines of CSS turn it into a visible, attention-grabbing label.
Action:
- Go to Appearance → Customize → Additional CSS in your WordPress dashboard.
- Paste the following CSS to style the badge:
.custom-new-badge {
background-color: #ff6b6b;
color: #ffffff;
padding: 4px 10px;
font-size: 12px;
font-weight: bold;
text-transform: uppercase;
border-radius: 3px;
position: absolute;
top: 10px;
left: 10px;
z-index: 10;
}
Result: A red "NEW" badge appears in the top-left corner of products published within the last 30 days. You can adjust colors, position, or font by editing the CSS values.
Customizing the Logic
You can modify the snippet to create different label scenarios. For example:
- Change 30 to 7 if you want the badge to show only on items published in the last week.
- Replace 'New' with 'Just In' or any other text.
- Add a condition for sale items by checking $product->is_on_sale() and outputting a different badge class.
- Combine multiple conditions to show different labels on different products.
Important Considerations
This method requires basic PHP and CSS knowledge. If you are not comfortable editing theme files, stick with a plugin-based approach. Always test custom code on a staging site first to avoid breaking your live store. If you update your theme, the code will remain intact only if it resides in a child theme.
For store owners who want to apply labels based on stock status (like "Low Stock" or "Sold Out") or add multiple custom fields per product, using a dedicated plugin such as the product badges and labels for WooCommerce by Extendons can save time and reduce risk while still offering strong customization options.
How to Display Labels Only on Sale Products or Low Stock
Running a blanket label across every product is rarely the smartest move. A 'New' badge on a year-old item confuses buyers, and a 'Sale' tag on full-price goods erodes trust. You want labels that appear only when they mean something, like a 'Low Stock' badge when inventory drops below five units or a 'Sale' flag only on discounted items. This keeps your store honest and drives urgency exactly where it counts.
Plugins give you point-and-click control over these conditions. With the product labels for WooCommerce, you can set rules that tie a label to a specific product property, such as stock quantity, sale status, or category. For a low-stock badge, you would create a new label, choose the 'Stock Quantity' condition, and set the threshold to 5 or fewer. The plugin then checks every product page load and applies the badge only when the rule matches. You do not write a single line of code.
If you prefer a code-only approach, you can add a conditional snippet to your theme's functions.php file via a child theme. The logic checks $product->is_on_sale() for sale status or $product->get_stock_quantity() for stock levels, then outputs a custom label inline. However, this method requires a staging site for testing and a backup in place before editing any core template files. One misplaced bracket can break your shop, so plugin-based rules are the safer bet for most store owners.
Avoid the common mistake of overcomplicating your rules. Stick to one or two conditions per label. A badge that only shows when a product is both on sale AND low stock AND in a specific category becomes invisible to most shoppers. Keep it simple: one trigger, one label, one clear message.
Design Tips: Make Your Labels Stand Out (Without Looking Cluttered)
A product label that blends into the product image or background is useless. The goal is to catch a shopper's eye without blocking the product itself. This matters more than you might think. eCommerce websites that use product badges strategically see conversion rate increases of up to 55%. But slapping a badge on every image without thinking about design will hurt, not help, your results.
The most effective labels use one strong, contrasting color and keep text to 1-3 words. If you are running a site-wide sale, a red badge with the word "Sale" in white works because the contrast draws the eye immediately. For new arrivals, a green or blue badge saying "New" signals freshness. For limited stock, try an orange or yellow "Low Stock" label to create urgency. The color should never match your product image's dominant color, or the label will disappear.
Your label size matters just as much as its color. A badge that covers 25% of the product image hides the details that help customers decide whether to click. Aim for a label that is roughly 15-20% of the image width on desktop. On mobile, badges that look perfect on a 27-inch monitor can become tiny specks or massive blocks. Always preview your labels on a phone screen before publishing.
Basic CSS can help you control label sizing and animation without weighing down your store. Here is a simple example you can adapt for your label container:
- Badge size: Use width: 80px; height: 80px; for circular badges and padding: 8px 16px; for rectangular ones. This keeps labels proportional across devices.
- Positioning: Set position: absolute; top: 10px; left: 10px; to place the label in the upper-left corner, a common spot that avoids overlapping product faces.
- Subtle animation: A gentle pulse using @keyframes pulse { 0% {transform: scale(1);} 50% {transform: scale(1.03);} 100% {transform: scale(1);} } can draw attention without being distracting. Apply it sparingly, maybe only to sale labels.
One final tip: never place a label over the product's main focal point. If you are selling a camera, do not slap a badge over the lens. If you are selling a t-shirt, keep the label away from the printed design. Your labels should highlight the promotion, not hide the product.
Troubleshooting: My Label Isn't Showing Up
You have configured your labels, saved the settings, and refreshed your storefront, but nothing appears. This happens for a few predictable reasons. Here is how to diagnose and fix each one.
Cache Plugin Interference
Most performance plugins cache the HTML of your product pages, so a label you just added won't appear until the cache refreshes. If you use WP Rocket, W3 Total Cache, or a similar tool, clear the page cache first. Then check your storefront. If the label appears, the issue is solved. For ongoing reliability, exclude your product and shop pages from caching or set a short cache expiry.
Theme Incompatibility
Your theme may override WooCommerce's default template files, and the label hook might not fire. Switch temporarily to the default Storefront theme. If labels appear, your theme is blocking the hook. Check whether your theme has a "WooCommerce compatibility" setting or a dedicated theme options panel for badges. If not, you may need to use custom code to set a lower hook priority or contact the theme developer.
Wrong Hook Priority
If the label content exists in the page source but is invisible, another element (like the product image or price block) is rendering on top of it. In your plugin or code, try changing the hook priority from the default 10 to a higher number like 20 or 30. This tells WooCommerce to render the label later in the page load order so it does not get buried.
The most common cause is simply that the label was not assigned to any products. Open your plugin settings and verify that you have selected the correct product categories, tags, or individual products. Many plugins have a separate "assign labels" step after you design the label. If you skipped that step, the label exists in the system but has no products to display on.
Best Practices for Long-Term Label Success
Getting labels set up is only the first step. Keeping them effective requires ongoing attention. Here are a few guidelines to follow after you have your badges running.
- Audit your labels every quarter. A "New Arrival" badge loses its meaning after a few months. Review which labels are still relevant and which ones have expired, then update or remove them.
- Use no more than one label per product. Stacking "Sale", "Best Seller", and "Low Stock" on the same product image clutters the design and confuses shoppers. Choose the single most relevant badge.
- Monitor performance with A/B testing. Test different badge colors, positions, and text. For example, compare a red "Sale" badge against a yellow one on the same product category to see which drives more clicks.
- Coordinate labels with your marketing campaigns. If you run a flash sale for 48 hours, schedule a corresponding "Flash Sale" badge to appear and disappear automatically. Most label plugins support scheduling.
Conclusion
Adding custom product labels in WooCommerce is a straightforward change that can directly impact your bottom line. Whether you choose a plugin like WooCommerce Product Labels for its ease of use and flexibility or prefer a code-based approach for complete control, the key is to start with a simple, clear label that communicates value to your customers.
The businesses that see the highest conversion gains treat labels as a core part of their store design, not an afterthought. By following the steps in this guide, you can deploy badges that increase click-through rates by 10-35% and conversion rates by up to 55%, based on verified industry data. For a zero-code solution that handles dynamic labels, stock-based badges, and custom field assignments, product labels for WooCommerce gives you everything you need in one plugin.


30-day money back guarantee
Dedicated Support Team
Safe & Secure Free Update
Safe Customized Solutions