

Automatic badges on a shop listing.
Sale & Stock Badges puts badges on your WooCommerce products. Some appear on their own from each
product’s current state (Sale, New, Low stock, Bestseller, and a few
others), and you can also set one manual badge per product using a store-wide label
and colour.
The badges are drawn with CSS and sit over the product image, so they add no
JavaScript and don’t shift the layout when the page loads. They show on the single
product page and on shop, category and tag listings.
The code is open and lives on GitHub if you want to read
it, file a bug or send a patch.
Configuration lives under a top-level Sale & Stock Badges admin menu: a global on/off
toggle, placement controls, per-rule toggles with custom labels, thresholds, an
appearance section (shape, uppercase, per-context caps) and the manual badge
label and colour. Settings are sanitised and clamped on save.
[marks_badges] shortcode to place badges anywhere.Use [marks_badges] to drop a product’s badges into any page, post or widget. With
no attributes it uses the current product (inside a loop or on a single product
page). Pass id to target a specific product and context (single or loop) to
pick the render style:
[marks_badges id="123" context="loop"]
The free edition ships the core CSS badges (Sale, New, Low stock, Bestseller, manual). Sale & Stock Badges PRO adds campaign and rules-based badging:
Everything in the free edition stays free and open. Sale & Stock Badges PRO starts at 19 EUR per year (PLN shown at checkout).
Compare editions and pricing: plogins.com/plogins-marks-pro/pricing
Sale & Stock Badges does not connect to any external services. Badges are computed and drawn entirely on your own server from WooCommerce data already in your database (price, stock, sales, product dates and shipping class), and the badge CSS is served from the plugin’s own assets.
The plugin stores its configuration in two WordPress options (marks_settings and marks_db_version) and reads per-product post meta (_marks_manual_text and _marks_manual_style) for the manual badge. No visitor or store data is sent anywhere, and the plugin does not call home, load remote scripts or fonts, or send email.
Sale & Stock Badges includes Polish, German and Spanish translations for the plugin interface. The text domain is plogins-sale-stock-badges, so WordPress.org language packs can also override or extend these bundled translations.