Softminal Cart Reward Progress Bar displays a dynamic, live-updating progress bar in your store that motivates customers to add more items to their cart in order to unlock rewards like free shipping, discounts, or free gifts.
It works seamlessly with
WooCommerce,
SureCart, and
FluentCart — giving you the flexibility to use it across different eCommerce platforms on the same WordPress site.
When a shopper adds products to their cart, the bar updates in real time — no page reload required — showing how close they are to earning a reward. This creates a sense of urgency and encourages higher spending, directly increasing your average order value.
Reward Types
Discounts can be a percentage or a fixed amount, applied as a managed coupon (default for new stores) or a negative fee. Free-gift tiers may offer several gifts and let the shopper choose.
- Free Shipping — Show progress toward a free shipping threshold. Shipping cost is automatically zeroed when the goal is reached.
- Percentage Discount — Automatically apply a percentage discount to the cart when the spending goal is met.
- Free Gift — Automatically add a free product to the cart when the customer reaches the goal amount.
Display-Only Mode (Show the Bar Without Changing the Cart Total)
Prefer to use the bar purely as a marketing and motivation tool? Turn off
Apply rewards to cart under
Advanced → Reward Application. The progress bar, milestone markers, and messages (for example, "Add $50 more for 10% off") still display and update in real time, but the plugin will
not apply any discount, free shipping, or free gift, and will
never modify the WooCommerce order total.
This is ideal when your store already applies its own discounts (such as a payment-method discount) and you want to avoid stacking or double-discounting — the bar stays informational only.
Bar Styles
- Rounded — Pill-shaped bar with smooth edges.
- Flat — Clean, squared bar with no border radius.
- Striped — Animated diagonal stripes for a more dynamic look.
Celebration Animations
When a customer reaches the goal, the bar can celebrate with one of four animations:
- Pulse — A quick scale-up effect.
- Glow — A pulsing glow around the bar.
- Bounce — A playful bounce animation.
- Confetti — Colorful confetti sparkles appear around the bar.
Multi-Platform Support
- WooCommerce — Classic cart, block cart, block checkout, mini-cart, and HPOS compatible.
- SureCart — Native integration via Alpine.js event bridge.
- FluentCart — Native integration via wp.hooks event bridge.
The plugin auto-detects which eCommerce platform is active, or you can manually select one from the settings page.
Full Customization
- Bar and track colors, text colors, reached-state colors, empty-state colors.
- Gradient fills with configurable direction (horizontal, diagonal, vertical).
- Bar height, border radius, width, shadow, and border — all configurable.
- Font size, font family, font weight, and text alignment.
- Container padding, bar gap, and container background color.
- Per-state display modes: show bar + text, bar only, text only, or hidden.
- Per-state icons via emoji input or WordPress Media Library upload.
Messages & Placeholders
Customize the message shown at each stage using dynamic placeholders:
{remaining} — Amount still needed to reach the goal.
{percent} — Percentage of goal reached (0–100).
{reward} — The configured reward label.
{goal} — The goal amount with currency symbol.
{total} — Current cart subtotal with currency symbol.
Three separate message templates:
empty cart,
in-progress, and
goal reached.
Dark Mode
Softminal Cart Reward Progress Bar respects
prefers-color-scheme: dark automatically. You can also configure custom dark mode colors for the bar, track, and text.
RTL Support
Full right-to-left language support with auto-detection or manual override (LTR / RTL).
Currency Formatting
Configure the currency symbol position (before/after), decimal places (0–2), and thousand separator (comma, dot, space, or none) independently from your eCommerce platform.
Smart Cart Rules
Control exactly which cart items count toward the reward goal — so the bar never promises a reward the store doesn't intend to give:
- Exclude sale items — Discounted products don't count toward the goal.
- Only count specific categories — Restrict goal progress to selected product categories (by slug or ID).
- Exclude categories — Gift cards, deposits, bundles, or any category you choose never count.
- Exclude specific products — Blocklist individual product IDs.
- Free gifts added by the plugin itself never count toward the goal.
Category and product rules apply to WooCommerce stores.
Scheduling
Optionally restrict the progress bar to a specific date range — useful for seasonal promotions, flash sales, or holiday campaigns.
Accessibility
The progress bar is built with proper ARIA attributes (
role="progressbar",
aria-valuenow,
aria-valuemin,
aria-valuemax,
aria-label) so it is fully usable by screen readers and assistive technologies. Animations respect
prefers-reduced-motion.
Product Suggestions
Turn the gap into a sale: under the bar, show the products that get the shopper to the next reward, with a one-click
Add button. Automatic price matching, category-based, or hand-picked — with the same Smart Cart Rules applied.
Display Locations
- Cart, mini-cart and checkout — the classic places.
- Product pages — a bar beside the add-to-cart button that tells shoppers when the item they are looking at unlocks the next reward.
- Sticky site-wide bar — pinned to the top or bottom of every page so the goal follows shoppers around the store.
- Block and shortcode — the "Reward Progress Bar" block or
[cbpb_bar] anywhere else.
Shortcode
Place the bar anywhere using the
[cbpb_bar] shortcode. Works with the Block Editor (Gutenberg), Elementor, Divi, Bricks, and any other page builder that supports shortcodes.
Developer Friendly
- No custom database tables — all settings stored in
wp_options.
- Clean uninstall — all
cbpb_* options are removed on plugin deletion.
- CSS custom properties drive all styling — zero theme conflicts, no
!important.
- Fully namespaced PHP (
CartBoostPB\) with PSR-4 autoloading.
- REST API at
softminal-cart-reward-progress-bar/v1 with capability-based permission checks.
- The admin app's uncompiled source (
resources/) and build tooling (package.json, vite.config.js, build.sh) are available in the public development repository: https://github.com/softminal/softminal-cart-reward-progress-bar
- REST endpoint
GET /bar-state and a cbpb:updated browser event expose live progress to themes and other plugins. cbpb_sticky_bar_render filter controls where the sticky bar appears; cbpb_suggestions filter adjusts the suggested products; cbpb:suggestion-added browser event fires after a one-click add.
- Extensible via filters:
cbpb_subtotal (adjust the subtotal that drives goal progress — e.g. for multi-currency conversion), cbpb_reward_tiers (modify reward tiers at runtime — e.g. convert tier amounts into the visitor's currency), and cbpb_apply_rewards (control whether rewards are applied to the cart, for display-only mode).
100% Free
Every feature is included at no cost. There is no premium tier, no feature gating, and no upsells.
Automatic Installation
- Log in to your WordPress admin dashboard.
- Go to Plugins > Add New.
- Search for Softminal Cart Reward Progress Bar.
- Click Install Now and then Activate.
- Navigate to Softminal Rewards Bar in the admin sidebar to configure your settings.
Manual Installation
- Download the plugin ZIP file from WordPress.org.
- Log in to your WordPress admin dashboard.
- Go to Plugins > Add New > Upload Plugin.
- Choose the downloaded ZIP file and click Install Now.
- Click Activate after installation completes.
- Navigate to Softminal Rewards Bar in the admin sidebar to configure your settings.
Manual Installation via FTP
- Download and extract the plugin ZIP file.
- Upload the
softminal-cart-reward-progress-bar folder to /wp-content/plugins/ on your server.
- Log in to your WordPress admin dashboard and go to Plugins.
- Find Softminal Cart Reward Progress Bar in the list and click Activate.
- Navigate to Softminal Rewards Bar in the admin sidebar to configure your settings.
1.2.0 (01 October, 2026)
- New: Sticky site-wide bar (Locations → Sticky bar). A compact bar pinned to the top or bottom of every page, with "show when" rules (cart has items / goal not reached / always), device targeting, a close button with a configurable snooze, and automatic hiding on the cart and checkout pages. Updates live as the cart changes, including block-theme shop grids.
- New: Product-page bar (Locations → Product page). Shows above or below the add-to-cart form; when the viewed product alone unlocks the next reward the message switches to a configurable "Add this item to unlock {next_reward}!" variant with a
{product_price} placeholder.
- New: Product suggestions (Suggestions tab). While the goal is not yet reached, a short "Add one of these to unlock {next_reward}" list appears under the bar with products priced around the remaining amount and a one-click Add button. Automatic price matching, specific categories, or hand-picked products; honors Smart Cart Rules and skips items already in the cart. WooCommerce stores.
- New: Coupon-based discounts (Advanced → Reward Application → "Apply discounts as"). Discount tiers can be applied as plugin-managed WooCommerce coupons, so the reward shows up correctly in order emails, refunds and reports. Managed coupons are hidden from your coupon list and cannot be typed in by shoppers. Existing stores keep the negative-fee method they already use; new installs default to coupons.
- New: Fixed-amount discount tiers ("$10 off at $100") alongside percentage tiers.
- New: Free gift tiers can list several gift products; the shopper picks one in a small chooser when the tier unlocks (or the first option is added automatically — your choice).
- New: Optional sync of free-shipping tier thresholds with the WooCommerce Free Shipping minimum of the shopper's shipping zone (Advanced → Reward Application).
- New: "Reward Progress Bar" block for the block editor (WooCommerce category) with a live server-side preview, as an alternative to the
[cbpb_bar] shortcode.
- Improvement: Live bar refreshes use a dedicated REST endpoint (
GET /softminal-cart-reward-progress-bar/v1/bar-state) that is faster than admin-ajax and sends Cache-Control: no-store; admin-ajax remains as an automatic fallback.
- Improvement: Block cart and block mini-cart receive the bar state inside the WooCommerce Store API cart response (
extensions.cbpb), so no extra request is needed to detect changes.
- Improvement: The bar now also refreshes after add-to-cart from block-theme shop grids and the Interactivity API product button.
- Improvement: Admin settings UI polish — consistent form controls, grouped color cards, clearer Locations and Reward Tiers panels, and each settings section now has its own URL (e.g.
#/settings/appearance) so reloads and links land on the same tab.
- Fix: Free gift tiers now reliably add the gift when the threshold is reached. The gift logic ran at a point where WooCommerce had reset its totals, so the cart subtotal read as zero and the gift was never added on many setups.
- Developer: New
cbpb:updated browser event and window.cbpb API (refresh(), refreshAll(), getState(), show(), dismissSticky(), openGiftChooser()); cbpb:suggestion-added and cbpb:gift-chosen events.
- Developer: New PHP filters
cbpb_bar_state, cbpb_reward_method, cbpb_suggestions, cbpb_sticky_bar_render, cbpb_watch_store_api; new REST routes GET /bar-state and POST /gift-choice.
- Compatibility: Declares WooCommerce "tested up to 11.2".
1.1.3 (01 September, 2026)
- New: "When multiple tiers unlock" setting (Advanced → Reward Application) to control reward stacking. "Highest tier only" (the new default) applies just the top unlocked tier of each reward type, so a cart that passes several milestones no longer receives multiple discounts added together. Choose "Stack all unlocked tiers" to keep the previous cumulative behavior.
- Fix: Carts that qualified for more than one discount tier previously stacked every tier's discount at once (e.g. 1% + 2% + 3%), reducing the order total more than intended. Only the highest unlocked discount now applies by default. Applies to WooCommerce stores using multiple discount tiers.
1.1.2 (31 August, 2026)
- Fix: The reward bar now updates live on block-based cart and mini-cart (block themes / WooCommerce Cart & Checkout blocks). Previously the bar only refreshed on a full page reload because these carts use the Store API and do not fire the legacy fragment events the bar relied on. The bar now subscribes to the WooCommerce Store API cart data and refreshes in place as items and quantities change.
- Fix: The bar could stay hidden when a performance plugin's "Delay JavaScript" option deferred the script past page load. Added a reveal failsafe so the bar always becomes visible, and it now reveals correctly even when its script runs after the page has finished loading.
- Improvement: Classic shop/product AJAX add-to-cart now also refreshes the bar via the
added_to_cart / removed_from_cart events.
1.1.1 (30 August, 2026)
- New: "Apply rewards to cart" setting (Advanced → Reward Application) — turn it off to use the bar as a display-only marketing tool. The bar, markers, and messages still show, but no discount, free shipping, or free gift is applied and the cart/order total is never modified. Ideal for stores that already run their own discounts and want to avoid stacking. Defaults to on, so existing stores are unchanged.
- Developer: New
cbpb_apply_rewards filter to toggle reward application programmatically.
- Fix: Notification toasts in the admin no longer show a stray list marker and now clear the admin bar with a smooth slide animation.
1.1.0 (02 July, 2026)
- New: Smart Cart Rules — control which cart items count toward the reward goal.
- New: "Only Count These Categories" and "Exclude Categories" rules (WooCommerce) — restrict goal progress by product category, using slugs or IDs.
- New: "Exclude Products" rule (WooCommerce) — blocklist individual product IDs from the goal calculation.
- Fix: The "Exclude Sale Items" setting is now enforced — previously it was saved but sale items still counted toward the goal.
- Improvement: Free gifts added by the plugin no longer count toward the goal subtotal.
- Developer: New
cbpb_subtotal filter — adjust the subtotal that drives goal progress (multi-currency, custom eligibility) on all three platforms.
- Developer: New
cbpb_reward_tiers filter — modify reward tiers at runtime (e.g. convert tier amounts for multi-currency stores).
1.0.1 (17 June, 2026)
- New: Multi-tier rewards — stack multiple reward milestones (free shipping, discount, free gift) on a single progress bar.
- New: Milestone markers on the bar show each reward threshold and light up as shoppers unlock them.
- New: "Reward Tiers" admin editor with add/remove tiers, per-tier reward type, label, and marker color, plus a tier-aware live preview.
- New: Message placeholders {next_reward} and {unlocked_count}.
- Improvement: Fully backward compatible — existing single-goal stores keep working unchanged.
1.0.0 (03 May, 2026)