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
Installation & First Setup
Configure the engine in the order below so every layer has a valid base configuration.
- Upload
woocommerce-delivery-date-time-rulesto/wp-content/plugins/. - Activate it from Plugins → Installed Plugins.
- Make sure WooCommerce is active.
- Open Delivery Rules in the WordPress admin menu.
- Configure global working days, lead time and cut-offs.
- Open Time Slots and keep at least one valid enabled slot.
- Add zones and date blocks if your store needs them.
- Review Appearance and Notifications.
- Use Tools → Delivery Availability Preview before going live.
Dashboard
The dashboard is an operational snapshot of the current delivery schedule.
| Metric | Meaning |
|---|---|
| Today's deliveries | Reserved deliveries for the current site-local date. |
| Next 7 days | Total reserved deliveries across the next seven days. |
| Active time slots | Configured slot records. |
| Full slots (7 days) | Capacity-limited slots that have reached capacity within the next seven days. |
Delivery Rules
Open Delivery Rules → Delivery Rules. This is the global rule layer.
General
Same-day & next-day
| Setting | Default | Effect |
|---|---|---|
| Same-day | On | Allows eligible current-day delivery. |
| Same-day cut-off | 14:00 | Controls same-day availability. |
| Same-day fee | 10 | Fee for eligible same-day delivery. |
| Next-day | On | Allows eligible next-day delivery. |
| Next-day cut-off | 18:00 | Controls next-day eligibility. |
| Next-day fee | 0 | Fee 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.
Time Slots
Open Delivery Rules → Time Slots. A slot is the actual delivery window offered to customers.
| Field | How it works |
|---|---|
| Label | Customer-facing name, e.g. 09:00 - 11:00. |
| Start / End | Delivery window. End must be later than Start. |
| Capacity | Positive value limits reservations; 0 = unlimited. |
| Fee | Slot-specific delivery fee; 0 = free. |
| Enabled | Off removes the slot from availability. |
| Weekdays | Days on which the slot operates. |
| Zones | Optional zone restriction; empty means all zones. |
| Shipping methods | Optional method restriction; empty means all methods. |
| Roles | Optional role restriction, including Guest; empty means all roles. |
Delivery Zones
Zones match the customer shipping address server-side and can be assigned to individual time slots.
| Field | Example |
|---|---|
| Name | Central Area |
| Priority | 1 |
| Countries | US, CA |
| States | CA, NY |
| Cities | Istanbul, Ankara |
| Postcodes | 10000-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.
Holidays & Blackout Dates
Use this screen to block dates or explicitly reopen normally closed dates.
| Type | Effect |
|---|---|
| Holiday | Blocks delivery. |
| Blackout | Blocks delivery. |
| Exception | Overrides a holiday/blackout and can reopen a normally closed weekday. |
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.
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.
Delivery Calendar
The admin calendar shows the next 14 days and current reservation load.
| Column | Meaning |
|---|---|
| Date | Site-local delivery date. |
| Status | Open or Closed. |
| Total reserved | Reserved deliveries for the date. |
| Per-slot load | Reserved/capacity information for each configured slot. |
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.
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.
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.
Advanced
Performance, diagnostics and uninstall behavior.
| Setting | Default | Purpose |
|---|---|---|
| Availability cache lifetime | 120 seconds | Short-lived availability cache; relevant rule/capacity changes flush it automatically. |
| AJAX rate limit | 30/min/IP | Limits availability AJAX requests; minimum 5. |
| Diagnostic logging | Off | Writes diagnostics to WooCommerce → Status → Logs. |
| Delete plugin data on uninstall | Off | When enabled, removes plugin-owned settings/table/product/category metadata. |
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.
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.
Shortcodes
Manual placement options provided by the plugin.
Product delivery card
[ideapldelivfry1245_product_delivery]
Checkout delivery selector
[ideapldelivfry1245_delivery]
Troubleshooting
Use this checklist before contacting support.
No dates available
- Confirm Delivery Rules is enabled.
- Check working days.
- Check at least one enabled slot.
- Check slot weekdays and times.
- Check zone matching.
- Check shipping-method and role restrictions.
- Check holidays/blackouts.
- Check lead time and product restrictions.
- Check cut-off times.
- Check capacity.
- 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.
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.
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.