Configure delivery times and pickup

Delivery time rules manages delivery estimates, customer date and time choices, and a pickup or home-delivery selector. Store managers configure it in Settings → POM Tweaks → E-Commerce → Shipping → Delivery time rules. It works with classic WooCommerce checkout, including POM Theme's checkout layouts, and with WooCommerce HPOS order storage.

Use a classic checkout page containing [woocommerce_checkout]. The date picker and delivery-type selector are not Checkout block controls. Configure shipping zones and payment methods in WooCommerce before adding delivery rules.

Add a schedule

  1. Open Delivery time rules, select Enable, and click Add new in its repeater.
  2. Enter a Rule name and, optionally, a description for your team.
  3. Add the opening windows under each weekday. Enter the preparation time in Estimated delivery time, then the start and end time. Keep windows within the same day, in chronological order, without overlaps.
  4. Leave Slot interval (minutes) empty to use the preparation time for each slot, or enter a separate interval. With First slot starts → Window start plus preparation time, a 09:00 opening, 30-minute preparation and 30-minute interval produce a first slot of 09:30–10:00. A slot must finish before the window closes.
  5. Optionally set Max order per delivery rule for each window. The limit applies to each slot; leave it empty for no limit. Zero closes the slot.
  6. Configure customer selection, availability and labels as described below, then click Save.
  7. Go to WooCommerce → Settings → Shipping → Shipping zones, edit a shipping method, and select its Delivery time rule. Select Show fixed times, no ranges if you want individual arrival times instead of slot ranges.
  8. Repeat for other shipping methods. Each instance can use a different rule. Use Default delivery rule in POM Tweaks if methods without an explicit assignment should share a schedule.

Keep a rule's identifier when adjusting its hours: shipping methods refer to that rule. Deleting a rule also removes its schedule from methods that still reference it. A default rule applies to virtual-only carts as well as unassigned shipping methods. An optional comma-separated list of Product category IDs limits a rule to carts containing a product in one of those categories.

Choose how customers select a time

Without Allow customers to choose delivery date / time, the rule displays an estimated arrival time. The server recalculates that estimate when the order is created. Estimates do not reserve a slot or prevent checkout when no estimate is available.

With customer selection enabled, choose among:

  • Same day: choose one of today's remaining times, accounting for preparation time.
  • Same day and subsequent days: choose the first available time today or a custom date and time.
  • Only days after: select a date from the configured availability start. With no lead time, today's remaining times are also available.

The calendar loads times for the selected date. Weekdays without windows and dates in Not available dates have no selectable times. First available date number and First date period exclude today through the specified offset for schedules whose first slot includes preparation time. Schedules using At window start (legacy schedule) allow the offset date itself. For example, a one-day offset starts the day after tomorrow for the former and tomorrow for the latter.

Allow checkout without a selected date permits an empty date selection; it does not permit a blocked date or invalid time. Choose the first available time automatically hides the time dropdown while retaining the date rules. Accept same-day orders only during opening hours also restricts ordering to an open window; use it when the shop should not accept orders before opening.

Configure Text before date, Timepicker label, Calendar label, Calendar description, Prepend of the first option, and Unavailable message to match your delivery process. The date input uses the browser's native date control and formatting. All time choices and saved dates use the store's WordPress timezone, even when a customer's device is in another timezone.

Capacity is checked again when checkout is submitted. An earlier order can fill a slot while a customer is completing checkout. Limits retain a shared count across delivery rules for the same time window, including historical orders; order statuses do not release that capacity automatically. The delivery type and shipping costs are independent of slot capacity.

Offer pickup and home delivery

  1. Select Enable delivery method selector.
  2. Set the selector title, pickup and home-delivery labels, and Default delivery type.
  3. Use Hide local pickup or Hide home delivery to restrict the choices. Leave at least one type available.
  4. Local pickup method IDs initially contains local_pickup,pickup_location. Add another extension's method ID, without its instance number, if that method represents collection.
  5. Optionally enable Hide native address fields for pickup. Names, email, phone and other custom checkout fields retain their own configuration. Switching to home delivery restores address requirements.
  6. Optionally enter Collection points, one per line. A pickup customer must choose an entry from this list. These labels do not create shipping methods or change their availability or prices.
  7. Click Save, then verify both choices in checkout.

The selector filters the rates WooCommerce actually makes available for each package. Pickup offers only configured pickup methods; home delivery excludes them. A selection with no available rate cannot be completed. Configure a matching method in each relevant shipping zone.

If Order from table is enabled, the selector also offers that type. Table orders use their table method and required table code, without a delivery-date selection.

Verify and review orders

Use a staging product to verify today's first available time, a later time, a future date, a blocked date, and each pickup or delivery method. If the store splits shipments into packages, choose separate dates and confirm that both are retained. Also verify the final slot near closing time and any capacity limit.

WooCommerce → Orders includes a Delivery date column. Opening an order shows its delivery information, including historical saved dates. Processing-order emails include the delivery date; pickup or home-delivery details and the collection point appear in Processing and On hold emails. Plain text emails are supported. Multiple shipping packages retain separate delivery dates.

If no calendar appears, confirm that the module is enabled, checkout is classic, the chosen shipping method has an existing rule or default rule, category restrictions match the cart, and customer date selection is enabled. If a date has no times, check weekday windows, preparation time, blocked ranges and the first available date. A time cannot finish after the closing time.

Disabling the whole module stops its checkout controls and calculations. Existing order data is retained. Shipping rates, costs and zone configuration remain managed by WooCommerce.