Skip to content

How scheduling works

Pickup adds a location and time-slot picker to checkout when the order uses WooCommerce Local Pickup. This page explains how the slots are produced, how availability is enforced, and where the chosen pickup shows up afterwards.

The pickup location and slot fields only show when the customer’s chosen shipping method is Local Pickup. For every other method they stay hidden and are never required, so non-pickup orders are unaffected. Switching shipping method at checkout shows or hides the fields accordingly.

Slots are built from two settings: your weekly opening windows for the location, and your slot length. Pickup divides each window into back-to-back slots of that length.

A 09:00–12:00 window with a 30-minute slot length offers 09:00, 09:30, 10:00, 10:30, 11:00 and 11:30.

Slots are generated in your store timezone and shown in your WordPress date format.

A generated slot is only offered to a customer if it is genuinely bookable. Pickup automatically hides a slot when:

  • it falls within the lead time (too soon to prepare), or
  • it falls beyond the booking horizon (too far ahead), or
  • it has already reached its per-slot capacity.

Because full slots drop off the picker, two customers cannot book the same location + date + slot past its capacity — there is no double-booking.

If you turn off Require a time slot, the customer only chooses a location and no date/time is requested. The rest of the flow is the same — the location is validated and saved to the order.

The selection is validated server-side when the order is placed, not just in the browser. An order cannot be completed with an invalid or unavailable location/slot, so the data saved to the order is always trustworthy.

Once the order is placed, the chosen location and slot appear:

  • on the admin order screen in wp-admin,
  • in the order emails, and
  • on the customer’s order and thank-you pages.

Everything is stored as order meta, so the pickup detail travels with the order wherever WooCommerce displays it.

Pickup is self-contained — no custom tables and no external services — and is compatible with WooCommerce HPOS and the Cart/Checkout Blocks. It is translation ready (POT included) and uninstalls cleanly.