Free, open source

A sale countdown with no layout shift

Ticker adds a live countdown to the end of a sale on WooCommerce product pages. The end time is resolved on the server and counted down in the browser in plain JavaScript, with reserved space, so there is no layout shift.

Open source GPLv2
Open source, GPL licensed No account, no card No jQuery, zero layout shift

Works with

WooCommerceGutenbergStorefrontAstraGeneratePressKadence

Without time pressure, shoppers put off buying

A shopper sees a good price but has no reason to decide now. Without a visible sale deadline the purchase lands on a someday list, and often never comes back.

  • The sale is on, but shoppers cannot see when it ends
  • No time pressure lowers conversion
  • Countdown timers with heavy JavaScript slow the store down
  • Many timers shift the layout and hurt Core Web Vitals

Ticker shows how long is left in the sale

  • A live countdown to a product's sale end date or a global campaign
  • The end time comes from the server, so the visitor's clock cannot change it
  • Four placement options on the product page and three time formats to choose from
  • Server-rendered with reserved space, so no layout shift

What you get in the free version

Everything you need to add time pressure without slowing the store.

Sale countdown

A live countdown to a product's native WooCommerce sale end date.

Global campaign

One store-wide end date; the product sale date is used when present, with the campaign as a fallback.

Server-resolved end time

The end moment is resolved on the server as a fixed UTC timestamp, so the visitor clock cannot change when the sale ends.

Placement choice

Show the timer in the product summary, before/after the add-to-cart form, or the product meta area.

Three formats

Days:hours:minutes:seconds, hours:minutes:seconds, or compact.

Custom copy

An optional heading and a customisable message shown after the sale expires.

Graceful states

Nothing renders without an active sale; a friendly expired message replaces the clock when the sale ends.

Accessible, no jQuery

ARIA role=timer with a polite live region, plain JavaScript and server-rendered markup, so no layout shift.

Up and running in three steps

Enable the countdown and set a sale end date.

01

Install

Activate Ticker alongside WooCommerce.

02

Enable the countdown

In WooCommerce → Ticker enable the timer and pick the source, placement and format.

03

Set a deadline

Set a product sale end date or a global campaign date, the countdown appears on the product page.

Who it is for

When a sale has a real deadline and time pressure should lift conversion.

Time-limited sales

Ticker reads native product sale dates, set an end and the countdown appears on its own.

  • Native sale dates
  • Choice of format
  • No layout shift

Store campaigns

One deadline for the whole store, such as Black Friday, with a global campaign date.

  • Global date
  • Expired message
  • Server time

Accessible and light

Server-rendered, ARIA role=timer with a polite live region, and plain dependency-free JavaScript.

  • No jQuery
  • No layout shift
  • Screen-reader friendly

What PRO adds, and why it matters

Per-product campaign end date

A Ticker campaign end field on each product, countdown to a chosen date without native WooCommerce sale dates.

Scheduled campaign windows

Hide the countdown before a global or per-product campaign start time.

Recurring countdown campaigns

Weekly or monthly flash-sale windows that reset automatically and hide the timer between cycles.

Product targeting

Show or hide the countdown on selected products, categories or tags on WooCommerce → Ticker.

Countdown analytics

Track aggregate views and add-to-cart counts per product on WooCommerce → Ticker Analytics.

Extends free Ticker

Requires the active free Ticker plugin; delivered through Freemius with licensing and automatic updates.

What you get: FREE vs PRO

PRO keeps everything in the free plugin and adds the modules below.

Feature FREE PRO
Sale-end countdown
Global campaign date
Four placement options
Three time formats
Heading and expired message
Server-resolved end time
Server render, no layout shift
Accessible, no jQuery
Per-product campaign date ×

Need more? Ticker PRO

FREE covers sale and global campaign countdowns. Ticker Pro adds per-product campaign dates, scheduled windows and recurring campaigns.

  • Per-product campaign end date (shipped)
  • Scheduled campaign windows (shipped in PRO)
  • Recurring countdown campaigns (shipped in PRO)
  • Product, category and tag targeting (shipped in PRO)
  • Countdown analytics (shipped in PRO)

Support and resources

Every plugin has its own documentation with setup walkthroughs. Bugs and questions go to the public GitHub repository for that plugin, we answer in the open.

Frequently asked questions

Does Ticker require WooCommerce?

Yes. Ticker is a WooCommerce extension and requires WooCommerce 8.0 or later. It hooks into WooCommerce product pages and sale dates. If WooCommerce is not active, Ticker stays quiet and shows an admin notice.

Where does the countdown end time come from?

By default Ticker reads each product's WooCommerce "Sale price dates → To" value. You can instead count down to a single store-wide campaign date. The two can be combined: a product's own sale end date takes priority, and the global campaign date is used as a fallback when a product has none.

Does the timer cause layout shift?

No. The countdown markup is rendered on the server with the digit boxes already sized. The browser drops the numbers into reserved space instead of reflowing the page. That keeps the timer's Cumulative Layout Shift at zero.

Is the timer accurate if the visitor's clock is wrong?

Yes. The end moment is sent from the server as a fixed UTC timestamp. The browser only counts down to it and formats the remaining time. A visitor's misconfigured clock changes nothing about when the sale actually ends.

What happens when the sale ends?

When the countdown reaches zero the clock is hidden and replaced by a short sale-ended line. The default wording is "This sale has ended.", and you can set your own in the settings. After expiry the timer no longer counts.

Does Ticker use jQuery?

No. The countdown runs in plain, dependency-free JavaScript. The script is loaded deferred in the footer and only formats the time supplied by the server. There is no dependency on jQuery or any other library.

Where on the product page does the timer appear?

You can pick one of four spots: the product summary below the price, before the add-to-cart form, after it, or the product meta area. The placement is set in WooCommerce → Ticker. By default the timer appears in the product summary.

Does Ticker pair with Anchor and Notice?

Yes. Anchor keeps the buy button within reach, Notice announces a promotion at the top of the store, and Ticker adds time pressure on the product page.

Add time pressure to your sales

A live countdown from native sale dates or a global campaign, server-rendered with no layout shift. The full FREE edition under GPL.

Read the docs

FREE is a complete sale and global-campaign countdown, PRO adds per-product campaign dates, scheduled windows and recurring campaigns.