Better Usability for WooCommerce

Better Usability for WooCommerce

4.9/5 (21 ratings) 700 active installs Updated Nov 12, 2026
The Shop page: quantity −/+ buttons, AJAX "Add to cart" with its "Added ✓" notice, and "Buy now"

The Shop page: quantity −/+ buttons, AJAX "Add to cart" with its "Added ✓" notice, and "Buy now"

Better Usability for WooCommerce removes the small but persistent friction points that cause shoppers to abandon: waiting for full page reloads, hunting for quantity controls, a cart step they did not need and checkout fields nobody fills in. A Buy now button takes a shopper from the product straight to the checkout, the checkout asks only what your store needs, and quantities can be changed — and items removed — right on the checkout page, free. It covers five areas — Shop, Product, Cart, Checkout and the whole store — with settings you can mix and match to fit your store.


Free features:

Cart

  • Auto-refresh cart totals via AJAX when quantity changes — no “Update cart” click required
  • Show a confirmation prompt before quantity is reduced to zero
  • Hide the “Update cart” button

Checkout

  • Edit the order right on the checkout: change quantities and remove items without going back to the cart (classic checkout)
  • Take the fields your store does not need out of the checkout — Company, Address line 2, Phone, Order notes (classic checkout and Checkout block)
  • Hide the coupon form on the checkout; it stays on the cart (classic checkout and Checkout block)
  • Do not ask for the billing address when every product in the order is virtual — name and e-mail are enough (classic checkout)
  • Display the unit price next to each product name

Shop

  • Change product quantity directly on the shop/archive page before adding to cart
  • AJAX “Add to cart” on individual product pages (same as the shop-loop behaviour)
  • Skip the cart page and go straight to checkout after adding a product
  • Customise the “Add to cart” and “View cart” button labels

Product

  • “Buy now” button beside “Add to cart”, on the product page (simple and variable products) and in the shop (simple products): it adds the product and takes the shopper straight to the checkout — optionally with only that product in the cart; its text is yours
  • Low-stock urgency badge (“Only 3 left in stock!”) near the Add to Cart button on both single product and shop/archive pages — it reads WooCommerce’s own per-product stock quantity and low-stock threshold, shows only for stock-managed products at or below that threshold, and is fully customisable (badge text with a {stock} placeholder, optional custom threshold), giving hesitant shoppers a scarcity nudge with zero configuration beyond a toggle

General

  • Show −/+ buttons around the quantity field — choose where: Shop, Product page, Cart, Checkout
  • Show the quantity as a dropdown select instead of a numeric input — choose where: Shop, Product page, Cart, Checkout
  • Lock the numeric input so shoppers can only use the +/− buttons (prevents accidental typing)
  • One “Updating…” text for the cart and price refreshes
  • Convert simple-product “Add to Cart” buttons to AJAX site-wide
  • “Added ✓” on the button and a small “Added to your cart” notice with a link to the cart, after an AJAX add to cart (its text is yours)
  • Hide the “Added to cart” notice after adding a product
  • Hide the “View cart” link after adding a product
  • Set a global maximum quantity per product
  • Decimal quantity support for +/− buttons
  • Accessible, WCAG-friendly quantity controls — the −/+ buttons carry proper “Decrease quantity” / “Increase quantity” labels, work with the keyboard (Enter/Space), and announce the new quantity (and the cart refresh) to screen readers

PRO features:

  • Variation swatches — each option of a variable product as a colour dot, the variation’s own picture or a button instead of a drop-down, on the product page and in the shop; the colour is set on the attribute’s term (Products > Attributes); options with no variation left are greyed out (view demo)
  • Sale countdown — “Sale ends in 2d 05:14:09” under the price, on the product page and in the shop, counting down to the end date of the sale you scheduled on the product (never a made-up deadline); shown only when the sale ends within the days you choose (view demo)
  • Sticky Add to Cart bar — a floating bar slides in when the shopper scrolls past the Add to Cart button, keeping purchase intent alive without hunting for the button; on phones, computers or both, with a variable product’s options and the Buy now button in the bar (view demo)
  • Quick View modal — shoppers open a full product preview in a lightbox (image, price, description, Add to Cart) without leaving the Shop page; keyboard accessible (focus stays in the lightbox and returns to the button on close) (view demo)
  • Synchronize cart quantities automatically when changed (view demo)
  • Auto-update price on Product and Shop pages as quantity changes (view demo)
  • Change product variations directly on the Shop page — fewer clicks to buy (view demo)
  • Sync the MiniCart widget live from Shop or Product pages (view demo)
  • AJAX delete on the checkout page — no full page reload (view demo)
  • Change quantities inside the Mini-Cart widget, with −/+ buttons (view demo)

Get the PRO version here.

Developer hooks

Filters and actions for theme and plugin developers (in your theme’s functions.php or a small plugin):

  • wbu_select_max_quantity (filter) — the largest quantity the quantity select offers, also the Cart/Checkout blocks’ cap when a maximum is set; args: $max, $product
  • wbu_max_quantity_message (filter) — the notice when an add to cart goes past “Max product quantity allowed”; args: $message, $max, $product_id, $new_quantity
  • wbu_low_stock_badge_html (filter) — the low-stock badge’s HTML; args: $html, $product, $stock, $threshold
  • wbu_direct_checkout_url (filter) — where “Go to checkout directly” sends the shopper; args: $checkout_url, $url
  • wbu_cart_update_response (filter) — the classic cart’s AJAX refresh after a quantity change; args: $response, $cart_item_key
  • wbu_checkout_quantity_updated (action) — a quantity changed on the checkout page was saved; args: $cart_item_key, $quantity
  • wbu_export_settings_payload (filter) and wbu_settings_imported (action) — the Tools tab’s settings export and import
  • wbu_get_template (filter) — a template’s path, to use your own copy; args: $path, $name
  • wbu_buy_now_button_html (filter) — the “Buy now” button’s HTML; args: $html, $product, $place (product or shop)
  • wbu_buy_now_redirect_url (filter) — where “Buy now” sends the shopper; args: $checkout_url, $url
  • Also: wbu_is_shop_loop, wbu_enable_quantity_input, wbu_enable_qtybuttons, wbu_qtybtn_minus / wbu_qtybtn_plus, wbu_shop_quantity_value, wbu_low_stock_threshold, wbu_frontend_vars (the settings the scripts get) and mh_wbu_settings (the settings and their defaults)