Blog · Tutorial

How to add a delivery date to WooCommerce checkout

If you run a bakery, florist, fresh-food or grocery store, customers need to tell you when they want their order delivered. WooCommerce doesn't include a delivery date field by default — this guide shows the fastest way to add one, on both the classic and the new block checkout, without writing any code.

Why add a delivery date field?

Letting customers pick a delivery date at checkout reduces back-and-forth emails, prevents deliveries on days you're closed, and lets you plan your delivery runs. It's essential for any store that delivers perishable or scheduled goods.

Option 1: Use a plugin (recommended, no code)

The simplest way is a dedicated plugin. Here's how to do it with the free Easy Delivery Date for WooCommerce plugin:

  1. Install the plugin. In your WordPress admin go to Plugins → Add New, search for "Easy Delivery Date", then install and activate it.
  2. Open the settings. Go to WooCommerce → Settings → Delivery Date.
  3. Set a minimum lead time. For example, "earliest delivery = today + 1 day" so you have time to prepare orders.
  4. Set a booking window. Decide how many days ahead customers can schedule (e.g. up to 30 days).
  5. Set a same-day cut-off (optional). For example 2:00 PM — orders after that automatically roll to the next day, calculated in your store's timezone.
  6. Save. The delivery date field now appears at checkout for every customer.

The chosen date is saved to the order and shown on the thank-you page, in order emails, in My Account, and in your admin orders list — so you and the customer always see it.

Classic checkout vs block checkout

WooCommerce now has two checkouts: the older classic (shortcode) checkout and the newer block checkout. Many delivery date plugins only support one. Make sure your plugin supports both:

  • Classic checkout: a native date picker that respects the customer's locale.
  • Block checkout: a dropdown of available dates, added through WooCommerce's official Additional Checkout Fields API.

Option 2: Custom code

Developers can add a field with the woocommerce_after_order_notes hook (classic) or woocommerce_register_additional_checkout_field() (block), then validate and save the value to order meta. This works, but you'll need to handle validation, timezone-correct cut-off logic, email display and HPOS compatibility yourself — which is exactly what a good plugin already does.

Common mistake: wrong timezone & cut-off

The most common bug in delivery date setups is using UTC instead of the store timezone, so a customer ordering "after 2pm" still gets today's date. Always calculate the earliest date in your store's timezone. Easy Delivery Date does this for you.

Frequently asked questions

Does WooCommerce have a delivery date field by default?

No. WooCommerce doesn't include a delivery date field. You add one with a plugin or custom code.

Will the date show in order emails?

Yes — with Easy Delivery Date the date appears in HTML and plain-text order emails, on the thank-you page and in My Account.

Can customers also pick a delivery time?

Yes, delivery time slots are available in the Pro version.