Skip to content
GPLWP Guides

How to let customers schedule delivery slots in WooCommerce

WooCommerce Time About 30–60 minutes 7 steps Updated 2 Oct 2026

WOOCOMMERCE
The short answer

WooCommerce does not provide customer-selected delivery dates and time slots by default. You can add a basic date field with custom checkout code, but a delivery-scheduling plugin is the practical route when you need working days, holidays, cutoffs, slot capacity, fees or rescheduling.

The route
  1. 01Define your delivery rules
  2. 02Use custom fields for a basic setup
  3. 03Choose a scheduling extension
  4. 04Create dates and time slots
  5. 05Set cutoff and mixed-cart behaviour
  6. 06Test the complete checkout
  7. 07Take the fast route

What you need

  • A WooCommerce store with a working checkout
  • Administrator access to WordPress
  • Your delivery days, time windows, cutoff rules and daily capacity
  • A staging site or recent backup for checkout changes

Define your delivery rules

Write down which days you deliver, how far ahead customers can book, your daily cutoff time, delivery holidays and the time windows you can actually support. Decide whether every slot has its own order limit and whether customers must choose a slot before paying.

Keep the rule simple at first. Mixed carts, different product categories, local delivery areas and same-day orders are where scheduling systems usually need extra logic.

Use custom fields for a basic setup

For a small shop that only needs a preference such as “deliver on Tuesday”, you can add a checkout field with custom code. On the classic checkout, WooCommerce documents the woocommerce_checkout_fields filter for changing checkout fields. The Checkout Block uses its additional checkout field API instead, including date-field limits such as minimum and maximum dates.

This manual route is fine when the value is only stored with the order and someone checks availability by hand. It does not, by itself, reserve a slot, count bookings, hide a full day, apply a cutoff, calculate delivery fees or stop two customers taking the final slot.

Choose a scheduling extension

Use a delivery-date and time-slot extension when customers need to choose from live availability. Proper scheduling tools commonly provide delivery days, holidays, buffer or lead time, time frames, order limits and checkout display settings. WooCommerce’s own extension documentation describes date ranges, non-delivery days, time frames and order limits as separate configuration areas.

Check that the extension supports your checkout type. A date picker that works on the classic shortcode checkout may need separate support for the WooCommerce Checkout Block. Test the actual checkout rather than relying on the settings screen.

Create dates and time slots

Install and activate your chosen extension, then create the delivery calendar. Add working days, lead or buffer time, blocked holidays and the maximum date range customers may select. Create slots such as 9:00–11:00 and 11:00–13:00, then set a maximum number of orders for each slot if your operation has limited capacity.

Make the date and time fields required if every order must be scheduled. Some WooCommerce delivery extensions also support fees by date or slot, product or category rules and shipping-method-specific schedules; use those only when your fulfilment process can honour them.

Set cutoff and mixed-cart behaviour

Set the cutoff using the site’s WordPress timezone and decide what happens after it. A same-day option should disappear after the cutoff, or the next available delivery day should be shown. Also decide how the calendar behaves when one cart contains products with different lead times or delivery rules.

Do not assume the selected slot is reserved just because it appears on the checkout screen. Confirm that the extension reduces capacity when the order is placed and handles abandoned or unpaid orders appropriately. A Friday-after-cutoff order is a common place for an otherwise good setup to show the wrong Monday or same-day option.

Test the complete checkout

Place test orders for the earliest valid date, a blocked holiday, a full slot, an order just before the cutoff and an order just after it. Test logged-in and guest checkout, different delivery postcodes and a mixed cart containing products from different categories.

Check the selected date and slot on the order screen, customer emails, admin order notifications and any fulfilment view your staff use. Also test a failed payment, a cancelled order and a rescheduled order if your chosen extension supports those workflows.

Take the fast route

For a ready-made setup, use WPC Delivery Date and Time Slots for WooCommerce. Configure its checkout date picker, time slots, working days, blocked holidays, lead times, daily cutoffs and capacity limits instead of building those rules yourself.

It is a good fit when you also need slot surcharges, category-specific rules, mixed-cart lead-time calculation, customer rescheduling, delivery reminders or admin change logs. Add the picker automatically at checkout or place it manually with the supplied [wpcdt_picker] shortcode, then repeat the checkout tests above.

The fast route

Let WPC Delivery Date and Time Slots for WooCommerce do it

Checkout date and time-slot booking with capacity limits, cutoffs, surcharges, and rescheduling for scheduled deliveries.

Get WPC Delivery Date and Time Slots for WooCommerce

Sources

  1. developer.woocommerce.com /docs/code-snippets/customising-checkout-fields/?utm_source=…
  2. woocommerce.com /document/woocommerce-order-delivery/?utm_source=openai
  3. woocommerce.com /document/order-delivery-date-and-time-scheduler/?utm_source…

Questions

Does WooCommerce support delivery slots without a plugin?
No, WooCommerce does not include a complete customer-facing delivery-slot booking system in its core settings. You can add and save a simple date or time field with custom code, but capacity counting, cutoffs, blocked dates, fees and rescheduling require additional development or an extension.
Can I add only a preferred delivery date?
Yes, a simple preferred-date field can be added to checkout and saved with the order. The classic checkout can be customised with WooCommerce’s checkout-field filter, while the Checkout Block uses its additional checkout field API. This is suitable when staff confirm availability manually and customers are not booking limited slots.
How do I stop customers booking a full delivery slot?
Use a scheduling extension with order limits for each date or time slot. The system should reduce the remaining capacity when an order is placed and remove a full slot from checkout. A manually added dropdown or date field cannot reliably prevent two customers from selecting the last available space.
Why is the delivery date wrong after the cutoff time?
The usual causes are an incorrect WordPress timezone, a cutoff configured in a different timezone, weekends not excluded, or lead time being counted as calendar days instead of working days. Check the site timezone, cutoff rule, enabled delivery days and holiday list, then test an order immediately before and after the cutoff. WooCommerce delivery documentation treats cutoffs, lead time and disabled dates as separate settings.
Will delivery slots work with the WooCommerce Checkout Block?
Only if the delivery solution explicitly supports the Checkout Block or uses its extension APIs. Some older checkout-field snippets target the classic shortcode checkout and will not appear or validate correctly in the block. Test the live block checkout with a real payment method before publishing the schedule.