1. Home
  2. Docs
  3. Order Delivery Scheduler ...
  4. Order Delivery Scheduler
  5. Order Delivery Scheduler for WooCommerce – Documentation

Order Delivery Scheduler for WooCommerce – Documentation

1. Overview

PowerfulWP – Order Delivery Scheduler for WooCommerce lets customers choose a delivery date, time slot, or “as soon as possible” at checkout. It works with both WooCommerce Legacy Checkout and WooCommerce Blocks Checkout, is HPOS compatible, and supports blackout dates, time-slot fees, and (in Premium) capacity limits, shipping rules, pickup locations, Google Calendar, and more.Requirements

  • WordPress 5.0+
  • WooCommerce 3.0+
  • PHP 7.4+

2. Installation

  1. Install the free plugin from WordPress.org or upload the plugin ZIP.
  2. Activate PowerfulWP – Order Delivery Scheduler for WooCommerce.
  3. (Optional) Activate a Premium license for advanced features.
  4. Go to WooCommerce → Delivery Slots (or Delivery Slots in the admin menu) to configure.

Please read our general installation & activation doc at the link below.

https://powerfulwp.com/docs/general/installation-activation/installing-and-activating-a-powerfulwp-plugin

3. Getting Started

  1. Delivery Slots → Settings → General
  • Enable the plugin.
  • Choose Delivery days (e.g. Mon–Fri).
  • Set Minimum days and Maximum days (e.g. 0 and 30).
  • Optionally add Blackout dates.
  • Set Delivery Date and Delivery Time Slot labels if needed.
  1. Delivery Slots → Settings → Slots & Fees
  • Add at least one time slot (e.g. 09:00–12:00, 14:00–18:00).
  • Optionally set same-day, next-day, and ASAP fees.
  1. Save. The delivery date and time picker will appear on checkout (Legacy and Blocks).

4. Admin Menu & Pages

  • Delivery Slots (main menu, podsfw-dashboard)
  • Dashboard (Premium): Today view, calendar, slot utilization, order filtering, complete orders, analytics.
  • Settings: All configuration tabs.
  • Settings URL: admin.php?page=powerfulwp-order-delivery-scheduler-for-woocommerce
  • Tabs: General, Slots & Fees, Shipping, Product/Category Rules, Pickup Locations, Advanced.

5. Settings Tabs

5.1 General

  • Enable plugin – Turn delivery scheduling on/off.
  • Require time slot – Make time slot required (recommended).
  • Delivery days – Weekdays when delivery is available.
  • Minimum / Maximum days – How many days from today customers can book (e.g. 0–30).
  • Blackout dates – Specific dates when delivery is disabled.
  • Enable ASAP – Allow “As soon as possible”.
  • Labels – “Delivery Date” and “Delivery Time Slot” (customizable).
  • Calendar theme – default, dark, material_blue, material_green, material_red, material_orange, airbnb, confetti.
  • Date language – en, es, fr, he, pt, ru, de, it, ar.

5.2 Slots & Fees

  • Time slots – Add slots (from, to, optional fee, optional capacity per slot).
  • Disable slot X minutes before start/end – Cutoff before slot start/end.
  • Global slot capacity (Premium) – Fallback limit for slots without individual capacity.
  • Show remaining capacity (Premium) – e.g. “5 / 10 left”.
  • Minimum / Maximum order amount – Hide delivery if cart is below/above these.
  • Order limit per day – Max orders per day across all slots.
  • Same-day / Next-day / ASAP fee – Flat fees.
  • Date-based fees (Premium) – Fee per date.
  • Slot-based fees (Premium) – Fee per slot.
  • Coupon-based delivery fees (Premium) – Rules by coupon.

5.3 Shipping (Premium)

  • Shipping zones – Enable delivery for “All zones” or “Selected zones”.
  • Shipping methods – “All methods” or “Selected methods”.
  • Slot-level shipping – Assign slots to zones/methods.

5.4 Product/Category Rules (Premium)

  • Disable delivery for specific products, categories, or user roles.
  • Enable delivery only for selected products, categories, or roles.
  • Processing rules – Processing time by product, category, zone, weekday (multi-condition).

5.5 Advanced

  • Debug notice on checkout – Show admins why delivery might be hidden (no days, no slots, etc.).
  • Disable for virtual/downloadable – Hide delivery when cart is only virtual/downloadable.
  • Disabled payment methods – Hide delivery for selected payment methods.
  • Google Calendar (Premium) – Enable, Client ID, Client Secret, selected calendar.
  • Special days – Recurring open/closed or special rules (Premium).
  • Hide fully booked slots – Don’t show slots with 0 capacity.
  • Show slot capacity (Premium) – “X left” on checkout.
  • Show empty slots – Show slots even when no capacity (for debugging).
  • Weekday restrictions (Premium) – Extra rules per weekday.
  • Real-time updates – Refresh slot availability (Premium).
  • Customer delivery notes – Allow a notes field.
  • Enable/Hide shipping methods – Restrict by shipping method (Premium).

6. Options Reference (key get_option names)

OptionTypeDescription
podsfw_enabled0/1Plugin on/off
podsfw_time_slots_required0/1Time slot required
podsfw_delivery_days_arrayarrayMon–Sun toggles
podsfw_min_daysintMin days from today
podsfw_max_daysintMax days from today
podsfw_blackout_dates_arrayarrayBlackout dates
podsfw_asap_enabled0/1ASAP option
podsfw_label_datestringDate field label
podsfw_label_timestringTime field label
podsfw_calendar_themestringTheme key
podsfw_date_langstringLanguage code
podsfw_time_slots_arrayarraySlots (from, to, fee, capacity…)
podsfw_slot_disable_minutesintMinutes before start
podsfw_slot_disable_minutes_before_endintMinutes before end
podsfw_order_limit_per_dayintDaily order cap
podsfw_slot_lockout0/1Use global capacity (Premium)
podsfw_slot_lockout_maxintGlobal capacity (Premium)
podsfw_show_slot_capacity0/1Show “X left” (Premium)
podsfw_same_day_feefloatSame-day fee
podsfw_next_day_feefloatNext-day fee
podsfw_asap_feefloatASAP fee
podsfw_min_order_amountfloatMin order for delivery
podsfw_max_order_amountfloatMax order for delivery
podsfw_debug_notice_checkout0/1Admin debug on checkout
podsfw_disable_virtual0/1Disable for virtual/downloadable
podsfw_disabled_payment_methodsarrayPayment methods that hide delivery
podsfw_google_calendar_enabled0/1Google Calendar (Premium)
podsfw_google_client_idstringOAuth client ID
podsfw_google_client_secretstringOAuth client secret
podsfw_google_selected_calendarstringCalendar ID (e.g. primary)
podsfw_special_daysarraySpecial open/closed (Premium)
podsfw_hide_fully_booked0/1Hide slots at capacity
podsfw_pickup_locationsarrayPickup locations (Premium)
podsfw_shipping_zones_modeall/configureZones rule (Premium)
podsfw_shipping_methods_modeall/configureMethods rule (Premium)
podsfw_* (product/processing)variousProduct/category/role rules (Premium)

7. Checkout Behavior

  • Legacy checkout: Fields are added after billing; date picker and time dropdown (or ASAP) load via AJAX; fees are applied with woocommerce_cart_calculate_fees.
  • Blocks checkout: Same logic is driven by REST API and Store API; script is powerfulwp-order-delivery-scheduler-for-woocommerce-blocks.js; fees are applied via REST and cart updates.

Delivery is hidden when: plugin disabled, no delivery days, no slots, min/max days invalid, all dates blacked out, cart below min or above max order, virtual-only cart (if set), disabled payment method, or (Premium) product/category/zone/method rules not met.

8. Order Meta Keys

Stored on the order (HPOS and legacy):

  • _podsfw_delivery_date – Selected date (e.g. Y-m-d).
  • _podsfw_delivery_time – Selected slot key (e.g. 09:00-12:00) or asap.
  • _podsfw_pickup_location – Selected pickup location ID/name (if used).
  • _podsfw_delivery_fee – Calculated delivery fee amount.

Use $order->get_meta( ‘_podsfw_delivery_date’ ) etc. in code.

9. REST API (Blocks checkout & integrations)

Base namespace: podsfw/v1. All below are used by the Blocks checkout; /slots and /fees can be used by custom apps.

MethodRouteAuthPurpose
GET/podsfw/v1/slotsPublicGet available slots for a date. Query: date (Y-m-d).
POST/podsfw/v1/save-sessionPublicSave delivery date, time, pickup_location in session. Body: date, time, pickup_location.
POST/podsfw/v1/feesPublicGet fee breakdown for a date/time. Body: date, time.
POST/podsfw/v1/update-feePublicApply delivery fee to cart. Body: date, time_slot (and optionally coupons).
GET/podsfw/v1/debug-infoAdmin onlyDebug info (config, why delivery might be hidden).

Example – get slots for a date:

GET /wp-json/podsfw/v1/slots?date=2026-02-01

10. Filters (for developers)

FilterWherePurpose
podsfw_asap_labelCheckout, admin, slotsChange “As soon as possible” label.
podsfw_pickup_location_labelCheckoutChange “Pickup Location” label.
podsfw_pickup_location_placeholderCheckoutChange “Select a pickup location” placeholder.
podsfw_addon_enqueue_admin_assetsAdminControl whether to enqueue plugin admin assets (default true on relevant pages).

Example:

add_filter( ‘podsfw_asap_label’, function( $label ) {

    return __( ‘As fast as possible’, ‘your-theme’ );

} );

11. Action

  • podsfw_fs_loaded – Fired when Freemius is loaded (for licensing/add-ons). No args documented in core.

12. Google Calendar (Premium)

  • Optional. Enable in Delivery Slots → Settings → Advanced.
  • Uses OAuth (Client ID + Secret). Choose which calendar to use.
  • When an order has a delivery date/time, the plugin can create an event (customer, date, time, address, notes). No data is sent to Google until you enable and connect.

See README “External Services” and Google’s Calendar API terms and privacy policy.

13. Troubleshooting

Delivery picker not showing

  • Ensure Delivery Slots → Settings → General: plugin enabled, at least one delivery day, min/max days valid (min < max), and at least one time slot in Slots & Fees.
  • If you use Blackout dates or Special days, ensure some dates remain available.
  • Check Order requirements: min/max order amount, and (if used) payment method, virtual/downloadable, and (Premium) product/category/shipping rules.
  • As an admin, enable Debug notice on checkout in Advanced to see a short message explaining why delivery is hidden.

Slots not loading / wrong slots

  • Check time slot format (from/to). Check capacity and “order limit per day”. For Premium, check shipping zone/method and pickup location rules.

Fees not applying

  • Verify same-day, next-day, ASAP, and (Premium) date/slot/coupon fees in Slots & Fees. For Blocks, ensure REST /fees and /update-fee are not blocked by security/cache.

HPOS

  • Plugin stores delivery data in order meta (_podsfw_*). Use $order->get_meta() / update_meta_data(); compatible with HPOS.

14. FAQ (short)

  • Blocks checkout? Yes, fully supported.
  • Legacy checkout? Yes, fully supported.
  • HPOS? Yes.
  • Different settings per product/category? Yes, in Premium (Product/Category Rules).
  • Block specific dates? Blackout dates (all versions); recurring/special days in Premium.
  • Extra fees for slots/dates? Yes; Premium adds date-, slot-, and coupon-based fees.
  • Google Calendar? Optional, Premium; disabled by default.
  • Restrict by order amount? Yes; min/max order in Slots & Fees; more rules in Premium.

15. Support & Changelog

  • Docs: https://powerfulwp.com/docs
  • Support: https://powerfulwp.com/contact-us/ (response within 24 hours)
  • Changelog: See README.txt in the plugin or your dashboard after updates.