Christmas Delivery Cut-Off Dates on WooCommerce and Shopify Stores

To show Christmas delivery cut-off dates in WooCommerce or Shopify, take the last order dates from your own carriers, then show them in three places: a site-wide notice, near the add to cart button on product pages, and on the cart page or shipping method names at checkout. Set the dates yourself, make the message switch off (or change) automatically once each cut-off passes, and remove it after Christmas.

Why cut-off dates belong on the product and cart pages

In December, the question in most shoppers’ heads is not “how much?” but “will it arrive by the 25th?”. If the answer is hidden on a delivery page they never open, some will leave to check, and some will buy elsewhere. If they order after your cut-off without knowing, you get late parcels, refund requests and support emails during your busiest weeks.

A clear “Order by [date] for Christmas delivery” line does two jobs. It gives people a reason to order now, and it sets honest expectations so you are not blamed for a carrier’s timetable. You can measure the effect yourself: compare delivery-related support tickets and “where is my order” emails this December against last December.

Get the dates right first

Never guess carrier dates, and do not copy dates from another shop. Each carrier publishes its own last posting or collection dates for Christmas, and they differ by service (standard, tracked, express) and by destination. Your own cut-off also depends on how fast you pick and pack.

For each shipping method you offer, write down:

  1. The carrier’s published last date for that service and destination.
  2. Your own dispatch time (for example, orders placed before your daily cut-off time ship the same day).
  3. Your customer-facing cut-off, which is the carrier’s date minus your handling time, with a margin you are comfortable with.
  4. The time of day and timezone the cut-off applies to.

If you sell abroad, repeat this per country. A UK store shipping to Germany, Canada or Australia will have earlier international dates than domestic ones. Also decide what happens after the last date: express delivery only, collection in store, gift cards, or delivery after Christmas and Boxing Day (26 December in the UK, Australia and Canada).

Where to show the cut-off

  • Site-wide notice or announcement bar. One short line with the next cut-off date. Link it to your delivery page with the full table.
  • Product pages, near the price or add to cart button. This is where the buying decision happens.
  • Cart page, above the totals. A reminder before checkout reduces surprises.
  • Shipping method names at checkout. For example “Standard delivery (order by [your date] for Christmas)”. This is the last thing people read before paying.
  • Delivery or FAQ page with every method and destination in one table.

Keep the wording identical everywhere. Two different dates on the same site will cause more support emails than no date at all.

How to set it up in WooCommerce

Store notice and shipping method names

Many classic WooCommerce themes support the built-in store notice (Appearance > Customize > WooCommerce > Store Notice). Some block themes and custom themes do not display it, so check on the front end after turning it on.

Under WooCommerce > Settings > Shipping you can edit the title of each shipping method in each zone. Adding the cut-off to the method title shows it on the cart and checkout without any code. Edit the zone for each country separately so each customer sees the right date for their destination.

A small snippet for product and cart pages

For a message near the add to cart button that hides itself after the cut-off, a short snippet in a child theme or a code snippets plugin is enough. You fill in your own date. Until you do, it shows nothing.

<?php
add_action( 'woocommerce_single_product_summary', 'bk_christmas_cutoff_notice', 25 );
add_action( 'woocommerce_before_cart', 'bk_christmas_cutoff_notice' );

function bk_christmas_cutoff_notice() {
    // Your own cut-off, from your carrier's published dates.
    // Format: 'Y-m-d H:i' in the store timezone (Settings > General).
    $cutoff_string = '';

    if ( '' === $cutoff_string ) {
        return;
    }

    $tz     = wp_timezone();
    $cutoff = date_create_immutable( $cutoff_string, $tz );
    $now    = new DateTimeImmutable( 'now', $tz );

    if ( ! $cutoff || $now >= $cutoff ) {
        return;
    }

    printf(
        '<p class="bk-xmas-cutoff">Order by %s for Christmas delivery (standard UK delivery).</p>',
        esc_html( wp_date( 'l j F, g:ia', $cutoff->getTimestamp() ) )
    );
}

Three things to know before you use it:

  • The woocommerce_before_cart hook runs on the classic cart template. If your store uses the block-based Cart and Checkout, it will not fire there. Use a block placed above the cart block in the editor, or the shipping method title, instead.
  • Page caching will keep serving the old message until the cache is cleared. Purge your page cache and CDN just after each cut-off time, or the date will still show after it has passed.
  • Change the wording in brackets to match your method and destination. If you have several methods, store each date and message in an array and show the next one that has not passed.

How to set it up in Shopify

Announcement bar and shipping rate names

Most Shopify themes include an announcement bar section in the theme editor (Online Store > Themes > Customize). Put the next cut-off there and link it to your delivery page. If your theme lacks one, check the theme’s documentation before installing an app for it.

In Settings > Shipping and delivery you can rename the custom shipping rates you have created, so “Standard” can become “Standard (order by [your date] for Christmas)”. This shows at checkout. Rates calculated by a carrier app may not allow renaming; check the app’s settings.

Product and cart pages

In themes built on Online Store 2.0, you can usually add a text block to the product information section and the cart page from the theme editor. Some themes also offer a Custom Liquid block if you want the message to hide itself after a date. Remember to remove or update the block yourself after the cut-off, because a text block will not expire on its own. For a store with several themes or markets, ask a Shopify developer to build a small section that reads the dates from theme settings.

The same approach suits a direct-to-consumer brand such as the PAWS fresh dog food Shopify store, where delivery timing is part of the product. On WooCommerce, a food and drink store like Nana’s Drinks has similar questions about when orders can still be sent.

Timeline for this Christmas

Now (late October to early November)

  • Collect each carrier’s published Christmas dates as they are released, for every service and destination you use.
  • Work out your own cut-offs and write the delivery page table.
  • Build and test the notices on staging. Keep them switched off on live.

After Black Friday and Cyber Monday (from 1 December)

  • Switch the notices on once your Black Friday (27 November) and Cyber Monday (30 November) banners come down, so the two messages do not compete.
  • Check each country’s shipping zone shows the right date.

On each cut-off date

  • Confirm the message changes or disappears, and purge the page cache.
  • Update the announcement bar to the next option (express, collection or gift cards).

After 25 December

  • Remove all Christmas wording from notices, product pages and shipping method names.
  • Restore the normal shipping method titles and delivery page.

If you want this set up properly on your store, you can hire a WooCommerce developer to add the notices, shipping method changes and automatic expiry in one go.

Frequently asked questions

Does WooCommerce have a built-in Christmas cut-off feature?

Not as a dedicated feature. You can use the store notice, edit shipping method titles per zone, or add a small snippet. Some delivery date plugins add cut-off logic; check what each extension actually does before buying.

Where do I find the right Christmas delivery dates?

From your own carriers. Each one publishes its last recommended posting or collection dates for each service and destination. Subtract your own handling time and add a margin.

Why does my cut-off message still show after the date has passed?

Almost always page caching. The page was cached before the cut-off. Purge your caching plugin, server cache and CDN after each cut-off time.

Can I show different cut-off dates for different countries?

Yes. Use one shipping zone per country or region in WooCommerce, or separate shipping zones in Shopify (Settings > Shipping and delivery), and put each date in that zone’s shipping method name. Site-wide banners should then link to a table rather than show one date for everyone.

If you want me to look at how your store shows delivery dates before the December rush, send me the URL and the carriers you use.

Related updates

CallWhatsApp