Skip to content

Configuration

Ticker is configured on one screen: WooCommerce → Ticker. Enable the countdown, then set the source, look and copy.

Where the end time comes from:

  • Product sale date — reads each product’s native WooCommerce Sale price dates → To field. Set a sale end on a product and its countdown appears automatically.
  • Global campaign date — a single store-wide end date, used on every product.
  • Both — the product sale date is used when present, with the global campaign date as a fallback.

Because the end moment is resolved on the server as a fixed timestamp, a visitor’s misconfigured clock cannot change the actual end time — the browser only formats the remaining time.

Where the timer renders on the single product page:

  • Product summary
  • Before the add-to-cart form
  • After the add-to-cart form
  • Product meta area

How the remaining time reads:

  • days:hours:minutes:seconds — the full breakdown.
  • hours:minutes:seconds — for shorter windows.
  • compact — a condensed form.
  • Heading — optional text above the clock, for example Sale ends in.
  • Expired message — the friendly message that replaces the clock when the sale ends, for example This sale has ended.

Optionally show “Only N left in stock” for products that manage stock and whose remaining quantity is at or below the threshold (default 5). Products that do not track stock never show it. This is independent of the countdown — a product can show scarcity, a countdown, both, or neither.

  • No sale and no low stock — nothing renders.
  • Sale ended — the clock is replaced by the expired message.

So an unconfigured or expired product never shows a broken or zeroed-out timer.

The markup is server-rendered with reserved space, so the timer fills in without layout shift (good for CLS), and there is no jQuery. The timer is an ARIA role="timer" with a polite live region, screen-reader labels and focus-visible controls, and it respects prefers-reduced-motion. Settings live in wp_options with no custom tables; uninstall removes Ticker’s options and per-product campaign meta, leaving the database clean.

Ticker exposes the ticker/end_timestamp filter so the resolved end time can be overridden in code — the basis for custom or scheduled campaign windows (a PRO use case).