Obydullah Order Time Slots for WooCommerce

Description

Obydullah Order Time Slots for WooCommerce lets you define configurable time slots for pickup and delivery orders, controlling how many orders your store can accept in each window.

Features

  • Time Slot Generation — Automatically creates slots from your opening hours with configurable duration (5–120 minutes)
  • Capacity Limiting — Set a maximum number of orders per slot to prevent overloading your kitchen
  • Pickup & Delivery — Support both order types with separate labels and per-type capacity awareness
  • Checkout Integration — Customers select their preferred time slot and order type on both the classic shortcode checkout and the block-based Checkout
  • Race Condition Protection — Double-checks slot availability after payment to prevent overselling during high traffic
  • Admin Settings — Configure slot duration, max orders, opening hours per day, and enable/disable pickup or delivery
  • Shop Open/Closed Notices — Automatically shows “shop closed” messages outside of configured business hours
  • Translation Ready — Full text domain obydullah-order-time-slots with /languages domain path

How It Works

  1. Configure your opening hours and slot settings under WooCommerce > Order Slots
  2. Customers see available time slots on the checkout page based on current day and capacity
  3. The plugin validates slot availability at checkout and saves the selected slot as order meta
  4. Admins can view slot data in order details

Use Cases

  • Restaurants limiting delivery orders per time window
  • Bakeries controlling pickup slot capacity
  • Food trucks scheduling order windows
  • Any business that needs to throttle orders across the day

Privacy

This plugin processes all data locally on your WordPress installation. No data is sent to external servers. No tracking or telemetry is collected. Order slot selections are stored as order meta in your WooCommerce database.

Installation

  1. Upload the obydullah-order-time-slots folder to /wp-content/plugins/
  2. Activate the plugin through the Plugins menu
  3. Navigate to WooCommerce > Order Slots in your admin menu
  4. Configure your opening hours and slot settings
  5. Ensure WooCommerce pages (Shop, Cart, Checkout) are set up

FAQ

Does this plugin require WooCommerce?

Yes. WooCommerce must be installed and active.

Can I customize the slot duration?

Yes. Slot duration can be set from 5 to 120 minutes in 5-minute increments under WooCommerce > Order Slots.

What happens when a slot is full?

The slot is no longer displayed as an available option on the checkout page. If a slot fills up during checkout (race condition), the order is cancelled with a notice.

Can I disable pickup or delivery?

Yes. Both pickup and delivery can be independently enabled or disabled in the settings.

Does this work with High-Performance Order Storage (HPOS)?

Yes. The plugin uses the WooCommerce CRUD API and is fully HPOS-compatible.

Does this work with the block-based Checkout?

Yes. The plugin supports both the classic [woocommerce_checkout] shortcode checkout and the block-based Checkout, using the WooCommerce Additional Checkout Fields API. Required-field validation and slot availability checks work on both.

Can I customize the checkout field markup?

The fields are rendered with the standard woocommerce_form_field() API, so you can adjust them via the woocommerce_form_field_args filter in your theme or a custom plugin.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Obydullah Order Time Slots for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.0

  • Initial release
  • Time slot generation from configurable opening hours
  • Capacity limiting with max orders per slot
  • Pickup and delivery order type support
  • AJAX-powered slot refresh on checkout
  • Race condition protection with re-validation
  • Admin settings page under WooCommerce menu
  • Shop open/closed notices
  • Block checkout support via the Additional Checkout Fields API
  • Plugin settings removed on uninstall
  • Translation ready with full text domain support