Skip to content
Docs
Get RestroPress

Store Timings & Delivery Cutoff

Updated 6 min read
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#

  1. Go to Plugins › Add New › Upload Plugin, choose the ZIP and click Install Now.
  2. Click Activate.
  3. Open RestroPress › Settings › General › Store Timing. A Settings link is also added to the plugin row.
  4. 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).

Store Timing screen with the Delivery Open/Close Days tab

General Settings tab#

SettingWhat it doesDefault
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 FormatPHP date format for the date dropdown. Empty or a literal example date falls back to the WordPress date format.WordPress date format
HolidaysAdd Holiday and Remove buttons with a date picker. Holiday dates are closed for both delivery and pickup.None
Slots Want To Remove / DateRows 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.

SettingWhat it doesDefault
Delivery Service Unavailable Message / Pickup Service Unavailable MessageShown when that service is closed. When empty, the RestroPress "store closed" message is used.Empty
Enable Pre-OrdersLets 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#

Todays Timing tab with Disable Slots and Production Delay

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#

  1. 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.
  2. 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.
  3. 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.
  4. Future dates are refused unless pre-orders are enabled for that service. With Next day order on, the list of dates starts tomorrow.
  5. Closed services show the unavailable message for that service.
  6. Core's Opening Hours display is fed the extension's schedule and holidays through the 3.4 filters rpress_store_hours_for_date and rpress_basic_holidays.
  7. An email tag {service_date} prints the customer's selected delivery or pickup date.

Developer reference#

HookTypeParametersPurpose
rpress_get_store_timingfilter$store_timingChange the saved timing settings (options rpress_store_timing or rpress_store_timing_{location_id}).
rpress_timing_settingsfilter$store_time_settingsChange the field definition registered in the General tab.
rp_get_holidays_listsfilter$holidays_arrChange the list of holiday dates (Y-m-d).
rp_st_extend_preorder_range_for_closed_daysfilter$extend, $location_id, $service_typeReturn true to add the number of closed days to the pre-order range.
rp_store_time_interval_delivery / rp_store_time_interval_pickupfilter$final_timingChange 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.
Was this page helpful?