IdeaPlugins · Premium WooCommerce Documentation

WooCommerce Delivery Date & Time Rules

A detailed end-user guide for configuring delivery dates, time slots, capacity, zones, holidays, product restrictions, checkout placement and customer notifications.

Version 1.2.2
01

Overview

WooCommerce Delivery Date & Time Rules is a server-validated delivery scheduling engine. It combines store rules, customer address, cart contents, shipping method, customer role, capacity and date restrictions before presenting an available delivery option.

What it controls

  • Working days and lead time
  • Same-day and next-day delivery
  • Cut-off times
  • Time-slot capacity and fees
  • Delivery zones
  • Holidays and blackout dates
  • Product/category restrictions

Customer-facing areas

  • Classic checkout
  • WooCommerce Blocks Checkout compatibility
  • Single product delivery card
  • Customer/admin order emails
  • My Account order view
Recommended setup: Delivery Rules → Time Slots → Zones (if needed) → Holidays → Appearance/Notifications → Tools preview.
02

Installation & First Setup

Configure the engine in the order below so every layer has a valid base configuration.

  1. Upload woocommerce-delivery-date-time-rules to /wp-content/plugins/.
  2. Activate it from Plugins → Installed Plugins.
  3. Make sure WooCommerce is active.
  4. Open Delivery Rules in the WordPress admin menu.
  5. Configure global working days, lead time and cut-offs.
  6. Open Time Slots and keep at least one valid enabled slot.
  7. Add zones and date blocks if your store needs them.
  8. Review Appearance and Notifications.
  9. Use Tools → Delivery Availability Preview before going live.
03

Dashboard

The dashboard is an operational snapshot of the current delivery schedule.

MetricMeaning
Today's deliveriesReserved deliveries for the current site-local date.
Next 7 daysTotal reserved deliveries across the next seven days.
Active time slotsConfigured slot records.
Full slots (7 days)Capacity-limited slots that have reached capacity within the next seven days.
04

Delivery Rules

Open Delivery Rules → Delivery Rules. This is the global rule layer.

General

Enable the delivery date & time selector at checkoutDefault: On. Turns the delivery engine on/off.
Working daysDefault: Monday–Saturday. Other rules can still block individual dates.
Minimum lead timeDefault: 0 days. Sets the earliest possible delivery offset.
Lead time typeBusiness days skips closed/blocked days. Calendar days counts calendar days. Default: Business days.
Max days in advanceDefault: 30.

Same-day & next-day

SettingDefaultEffect
Same-dayOnAllows eligible current-day delivery.
Same-day cut-off14:00Controls same-day availability.
Same-day fee10Fee for eligible same-day delivery.
Next-dayOnAllows eligible next-day delivery.
Next-day cut-off18:00Controls next-day eligibility.
Next-day fee0Fee for eligible next-day delivery.

Weekday cut-off overrides

Blank inherits the global same-day cut-off. Enter closed to disable same-day on that weekday. Example: Tuesday 16:00, Thursday closed.

Fees & thresholds

  • Free delivery from order total: default 0 = disabled; uses cart subtotal.
  • Minimum order total for same-day: default 0 = no minimum.

Where to show delivery information

  • Show on checkout.
  • Show on product page.
  • Product page position: above add-to-cart, inside form above button, below add-to-cart, or custom hook.
  • Upcoming product days: 3–14, default 7.

Checkout placement

Classic positions: before/after billing, before/after shipping, before/after payment/order review, or ideapldelivfry1245_checkout_delivery_selector. The delivery selector can also be placed with [ideapldelivfry1245_delivery].

When Require a delivery date & time is enabled, checkout must have a valid selection.

05

Time Slots

Open Delivery Rules → Time Slots. A slot is the actual delivery window offered to customers.

FieldHow it works
LabelCustomer-facing name, e.g. 09:00 - 11:00.
Start / EndDelivery window. End must be later than Start.
CapacityPositive value limits reservations; 0 = unlimited.
FeeSlot-specific delivery fee; 0 = free.
EnabledOff removes the slot from availability.
WeekdaysDays on which the slot operates.
ZonesOptional zone restriction; empty means all zones.
Shipping methodsOptional method restriction; empty means all methods.
RolesOptional role restriction, including Guest; empty means all roles.
Capacity protection: positive capacity is enforced server-side and the final reservation uses a database locking strategy to avoid silently double-booking the last available capacity.
06

Delivery Zones

Zones match the customer shipping address server-side and can be assigned to individual time slots.

FieldExample
NameCentral Area
Priority1
CountriesUS, CA
StatesCA, NY
CitiesIstanbul, Ankara
Postcodes10000-10999, SW1*

Postcode formats

  • Exact: 34000
  • Numeric range: 10000-10999
  • Wildcard: SW1*

Lower priority numbers are evaluated first. The first matching enabled zone is selected.

07

Holidays & Blackout Dates

Use this screen to block dates or explicitly reopen normally closed dates.

TypeEffect
HolidayBlocks delivery.
BlackoutBlocks delivery.
ExceptionOverrides a holiday/blackout and can reopen a normally closed weekday.
Example: if Sunday is closed globally, an Exception for a specific Sunday can make that date available.
08

Product & Category Rules

Product-specific controls live in WooCommerce Product data → Delivery. Category controls appear when editing a product category.

Product → Delivery

  • Preparation / lead time (days); blank inherits global/category.
  • Lead time type: Inherit, Business days or Calendar days.
  • Disable same-day delivery for this product.
  • Disable next-day delivery for this product.
  • Allowed delivery weekdays; all unchecked means every otherwise-open weekday.

Product category

  • Delivery lead time (days).
  • Disable same-day delivery for this category.

Category lead time is a fallback when the product has no product-level lead time. The longest applicable category lead time wins across multiple categories.

09

Mixed Cart Logic

The engine deliberately uses conservative cart logic so every item can meet the selected delivery.

  • The longest applicable lead time wins.
  • If any cart item disables same-day, same-day is unavailable.
  • If any cart item disables next-day, next-day is unavailable.
  • Weekday restrictions are combined rather than bypassed.
  • The final date and slot must remain valid for every cart line item.
10

Delivery Calendar

The admin calendar shows the next 14 days and current reservation load.

ColumnMeaning
DateSite-local delivery date.
StatusOpen or Closed.
Total reservedReserved deliveries for the date.
Per-slot loadReserved/capacity information for each configured slot.
11

Appearance

Open Delivery Rules → Appearance to style the storefront selector without editing code.

Presets

Simple, Premium, Pro, Light and Dark. Default: Premium.

Visual controls

  • Primary, accent, background, card background, text, muted, border, unavailable-date and selected-date colors.
  • Corner radius: 0–40px.
  • Shadow: None, Soft or Strong.

Text controls

  • Heading: Choose your delivery date & time
  • Date label: Delivery date
  • Time label: Delivery time
  • Product heading: Delivery options
  • Product note: You choose the exact delivery date and time at checkout.
12

Notifications

Control delivery information shown in WooCommerce emails and My Account, plus checkout errors.

  • Customer order emails — default On.
  • Admin new-order email — default On.
  • My Account order view — default On.

Editable error messages

Unavailable: The selected delivery slot is no longer available. Please choose another delivery time.

Full: This delivery slot is now full. Please pick another slot.

13

Tools

Use Tools for controlled testing, configuration migration and section resets.

Delivery Availability Preview

Enter Country, State, City, Postcode and Customer role, then run the preview to simulate the rule engine.

Export / Import

Export rules, slots, zones, holidays, appearance and notifications as JSON. Import accepts a valid export generated by this plugin.

Reset

Resets are section-specific. Appearance also has its own reset action.

14

Advanced

Performance, diagnostics and uninstall behavior.

SettingDefaultPurpose
Availability cache lifetime120 secondsShort-lived availability cache; relevant rule/capacity changes flush it automatically.
AJAX rate limit30/min/IPLimits availability AJAX requests; minimum 5.
Diagnostic loggingOffWrites diagnostics to WooCommerce → Status → Logs.
Delete plugin data on uninstallOffWhen enabled, removes plugin-owned settings/table/product/category metadata.
WooCommerce orders, customers and products are never deleted by this uninstall routine.
15

Orders, Emails & My Account

Delivery information is persisted with WooCommerce orders and can be displayed in several customer/admin locations.

Order admin

Delivery date, time, zone and fee can be shown in the order administration area.

Emails

Delivery schedule can be added to customer and admin WooCommerce emails without directly replacing WooCommerce email templates.

My Account

The customer can see the delivery schedule on the order view when enabled.

16

Validation, Capacity & Security

The browser is not treated as authoritative. The plugin recalculates and validates availability server-side.

Checkout validation

The selected date and slot are validated again during checkout. Capacity, address/zone, product rules, role, shipping method and current availability are considered.

Capacity reservation

A dedicated indexed table stores capacity reservations. The final capacity check and insert are protected by a database named lock.

Timezone

All date/time calculations use the WordPress timezone in Settings → General → Timezone.

17

Shortcodes

Manual placement options provided by the plugin.

Product delivery card

[ideapldelivfry1245_product_delivery]

Checkout delivery selector

[ideapldelivfry1245_delivery]
18

Troubleshooting

Use this checklist before contacting support.

No dates available

  1. Confirm Delivery Rules is enabled.
  2. Check working days.
  3. Check at least one enabled slot.
  4. Check slot weekdays and times.
  5. Check zone matching.
  6. Check shipping-method and role restrictions.
  7. Check holidays/blackouts.
  8. Check lead time and product restrictions.
  9. Check cut-off times.
  10. Check capacity.
  11. Run Tools → Delivery Availability Preview.

Same-day missing

Check same-day toggle, cut-off, weekday override, minimum order amount and product/category restrictions.

Slot missing

Check Enabled, Start/End, Weekdays, Capacity, Zones, Shipping methods and Roles.

19

FAQ

Common questions about the delivery engine.

Can each slot have a different fee?

Yes.

Can I use postcode ranges?

Yes, numeric ranges such as 10000-10999 are supported.

Can I use postcode wildcards?

Yes, such as SW1*.

Can I reopen a closed weekday?

Yes, use an Exception for the specific date.

What happens with mixed carts?

The longest applicable lead time wins and restrictive same-day/next-day rules are respected across all items.

Does uninstall delete orders?

No.

20

Changelog

Version history from the supplied plugin package.

1.2.2

  • Improved admin colour system and sidebar states.
  • Fixed top-bar/sidebar gap caused by a Support banner class clash.

1.2.1

  • Improved admin colour refresh.

1.2.0

  • Added framed admin hero header with IdeaPlugins logo.
  • Improved instant tab switching and page prefetching.

1.1.0

  • Added product-page delivery card, controls and shortcode.
  • Added toast notifications and premium controls.
  • Fixed dropdown, alert and holiday-row issues.
  • Improved Time Slots layout.

1.0.0

Initial release.