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:
- Install the plugin. In your WordPress admin go to Plugins → Add New, search for "Easy Delivery Date", then install and activate it.
- Open the settings. Go to WooCommerce → Settings → Delivery Date.
- Set a minimum lead time. For example, "earliest delivery = today + 1 day" so you have time to prepare orders.
- Set a booking window. Decide how many days ahead customers can schedule (e.g. up to 30 days).
- 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.
- 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.
Add a delivery date in 2 minutes
Easy Delivery Date for WooCommerce is lightweight, locale-safe, and works on classic and block checkout. Free version available; Pro adds time slots, blocked dates and delivery fees.
Get the plugin →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.