Store Timings & Delivery Cutoff
On this page
Store Timing & Delivery Cutoff controls when customers can order for delivery and for pickup. You set opening days and hours separately for each service, remove break periods, allow pre-orders or next-day ordering, add holidays, and make quick changes for the current day only.
RestroPress 3.4 already includes free Weekly store hours (one open and close time per day, or closed), up to five Holidays, and an Order time slot interval (minutes). While this extension is active those free schedule fields are not shown, and the extension adds:
- Separate schedules for delivery and for pickup.
- Cut-off (break) time ranges for each weekday, and removal of chosen slots on a specific date.
- Pre-orders with a range in days, separately for delivery and pickup, and a next-day-only mode.
- Unlimited holidays.
- A "Todays Timing" tab to disable all or some slots for today and set a production delay.
- A message for each service when it is unavailable, and a date format for the date dropdown.
- A separate schedule for each branch when the Multilocation extension is active.
Requirements#
- RestroPress must be active. Otherwise the extension shows a notice and deactivates itself.
- WordPress 4.0 or higher and PHP 5.4 or higher, as stated in the readme. Timing follows the WordPress timezone set in Settings › General.
- The Pre-Order for RestroPress extension cannot be used together with this one. Activating Store Timing deactivates it and shows a notice.
Installation#
- Go to Plugins › Add New › Upload Plugin, choose the ZIP and click Install Now.
- Click Activate.
- Open RestroPress › Settings › General › Store Timing. A Settings link is also added to the plugin row.
- Open the General Settings tab and tick Enable Store Timing?, then save.
The plugin contains no licence field or update checker, so there is no licence key to enter.
Settings#
The screen is RestroPress › Settings › General › Store Timing. It has four tabs. The delivery and pickup tabs appear according to the enabled service type in RestroPress settings. Times accept values such as 9:00am and are saved in the format chosen by the RestroPress store time format (12 hour or 24 hour).

General Settings tab#
| Setting | What it does | Default |
|---|---|---|
| Enable Store Timing? | Master switch. Nothing in this extension changes ordering until it is ticked (with Multilocation active, the per-branch settings are used). | Off |
| Next day order checkbox | "Ordering for today will be disabled if you turn on next day ordering. Make sure you have pre-orders turned on to use this." | Off |
| Date Format | PHP date format for the date dropdown. Empty or a literal example date falls back to the WordPress date format. | WordPress date format |
| Holidays | Add Holiday and Remove buttons with a date picker. Holiday dates are closed for both delivery and pickup. | None |
| Slots Want To Remove / Date | Rows pairing a comma separated list of slot times with a date. Those slots are removed on that date. Example: 09:00am,11:00am,02:00pm (12 hour) or 18:00,18:30,20:00 (24 hour). | None |
The code contains a Time Slot Mode option (single or multiple) that is hidden in the screen, so it cannot be changed from the admin.
Delivery Open/Close Days and Pickup Open/Close Days tabs#
Both tabs have the same layout. For every weekday there is a checkbox (service available), Start Time, End Time and Delivery Cut Off Hours(s) (or Pickup). Cut-off hours are time ranges separated by commas, for example 9:00am-10:00am, 11:00am-12:00pm, 2:00pm-3:30pm. Slots inside these ranges are removed for that weekday.
| Setting | What it does | Default |
|---|---|---|
| Delivery Service Unavailable Message / Pickup Service Unavailable Message | Shown when that service is closed. When empty, the RestroPress "store closed" message is used. | Empty |
| Enable Pre-Orders | Lets customers pick a future date for that service. A date dropdown ("Select delivery order date" or "Select pickup order date") is added to the time selector. | Off |
| Pre Order Range | "Upto how many days a pre order can be done". Whole number from 1 to 365. Days that are not enabled, and holidays, are left out of the list. | 1 when saved empty |
Todays Timing tab#

Headed "Quick Time Changes for Today", with the note that the settings apply only for today. For each service:
- Disable Slots: tick Disable All or individual slots. They are removed for today only. The saved list is ignored on any later date.
- Production Delay: a number of minutes, with buttons Default, 5, 10 and 15. In the code this value is the spacing between time slots for that service (default 30), and it is not reset at midnight.
- Save and Reset To Default act immediately through AJAX, without saving the whole page.
Multilocation#
With the Multilocation extension active, the screen becomes an accordion with one panel per branch, each with the same four tabs. Settings are stored per branch and the branch chosen by the customer decides which schedule applies.
How it works#
- The extension replaces the list of time slots that RestroPress builds (filter
rpress_store_timings) with slots built from the selected weekday's Start Time, End Time, cut-off hours and slot spacing. The RestroPress preparation time is added to the current time, and past slots are hidden for today. - Because it builds the slots itself, the free RestroPress Order time slot interval is not used; the spacing is the Production Delay value for the service.
- Today's service is shown as closed when the weekday is not enabled, the date is a holiday, the current time is outside the Start and End times, or "Disable All" was ticked. With pre-orders enabled, the date must be in the list of allowed dates.
- Future dates are refused unless pre-orders are enabled for that service. With Next day order on, the list of dates starts tomorrow.
- Closed services show the unavailable message for that service.
- Core's Opening Hours display is fed the extension's schedule and holidays through the 3.4 filters
rpress_store_hours_for_dateandrpress_basic_holidays. - An email tag
{service_date}prints the customer's selected delivery or pickup date.
Developer reference#
| Hook | Type | Parameters | Purpose |
|---|---|---|---|
rpress_get_store_timing | filter | $store_timing | Change the saved timing settings (options rpress_store_timing or rpress_store_timing_{location_id}). |
rpress_timing_settings | filter | $store_time_settings | Change the field definition registered in the General tab. |
rp_get_holidays_lists | filter | $holidays_arr | Change the list of holiday dates (Y-m-d). |
rp_st_extend_preorder_range_for_closed_days | filter | $extend, $location_id, $service_type | Return true to add the number of closed days to the pre-order range. |
rp_store_time_interval_delivery / rp_store_time_interval_pickup | filter | $final_timing | Change the final list of slots for that service. |
AJAX actions: rp_st_render_timings, save_today_setting and reset_today_setting. Example, adding a fixed holiday:
add_filter( 'rp_get_holidays_lists', function ( $holidays ) {
$holidays[] = gmdate( 'Y' ) . '-12-25';
return $holidays;
} );
Troubleshooting#
- Nothing changes after saving. Tick Enable Store Timing? in General Settings.
- The schedule falls back to a single open and close time. While the extension is active but not enabled, RestroPress hides its free weekly hours grid, and only the older Open Time and Close Time fields apply. Enable Store Timing and set the days.
- No dates in the dropdown. Pre-orders are on but no day in the range is enabled, or every day in the range is a holiday or has no slots.
- Holiday appears a day early or late. Versions before 2.1.9 shifted dates in negative UTC timezones; update to 2.1.9.
- Slots are spaced wrongly. Check the Production Delay value in Todays Timing; it persists and sets the spacing.
- Time zone is off. The extension uses the WordPress timezone.
Changelog highlights#
- 2.1.9 (2026-09-03): fixed holiday dates shifting by a day in negative UTC timezones.
- 2.1.8 (2026-07-29): fixed PHP 8.3 errors in break hour and slot calculations when intervals or break hours are invalid or empty.
- 2.1.7 (2026-07-04): RestroPress 3.4 compatibility: the schedule and holidays feed the Opening Hours display.
