RestoPick – Restaurant Pickup for WooCommerce
RestoPick – Restaurant Pickup for WooCommerce
Description
Let customers choose a pickup time and customize their food orders. Manage pickup hours, preparation time, closed dates, and product modifiers in WordPress.
Features
- Pickup date, pickup time, and ASAP choices in Classic and block checkout.
- A Checkout setup page that adds the Pickup block to a block checkout for you.
- Weekly pickup hours, multiple daily windows, closed dates, and preparation time.
- Adjustable time slots and UTC offset.
- Product modifier groups with paid or free options, minimum and maximum choices, and an Active toggle.
- Shared modifier groups that can be reused across products.
- Text and textarea fields, including global fields such as Special Requests.
- Modifier support for Simple and Variable products; variations inherit the parent’s choices.
- Live price total on the product page as customers pick options.
- Modifier choices shown one group per line in the cart and at checkout.
- An “Edit modifiers” popup in the block cart, so customers can change choices without leaving the cart. Different configurations remain separate items.
- Pickup details and selected modifiers in orders and emails, with HPOS support.
Pro version
Restaurant Pickup Pro for WooCommerce is an optional companion plugin. Each feature gets its own page under Restaurant Pickup once Pro is active:
- Menu Hours – time windows for specific products or categories, such as breakfast items only from 06:00 to 10:00. The pickup time list follows what is in the cart and checkout checks it again on the server.
- Recurring Closed Days – weekly, monthly, and yearly closures on top of single closed dates.
- Tips – preset percentages and a custom amount in Classic and block checkout, with a tips report.
- Kitchen printing – print new orders through PrintNode or your own receiver, with retries and a print log.
- Square Connection – shared Square settings used by the RestoPick Square Payment add-on for card and wallet payments.
- Shortcode –
[restopick_form]shows the pickup fields on any page. - API Access – a REST endpoint to turn pickup on or off remotely with a Bearer token.
The free plugin works fully on its own. The Restaurant Pickup Get Pro page, shown only when Pro is not active, lists these features. Learn more at https://nirwan.work.
Installation
- Upload the plugin files to the /wp-content/plugins/restopick-restaurant-pickup-for-woocommerce/ directory, or install the plugin through the WordPress plugins screen directly.
- Activate the plugin through the Plugins screen in WordPress.
- Open Restaurant Pickup -> Pickup schedule to set your pickup hours.
- Open Restaurant Pickup -> Modifier to manage shared groups and global fields. Add product-specific choices in the product editor.
WooCommerce must be installed and active. If it is not, the plugin shows an admin notice and skips registering the checkout fields.
Screenshots

Pickup schedule: pickup status, ASAP option, weekly pickup windows, closed dates, and slot settings.

Modifier page: shared modifier groups and global fields such as Special Requests.

Product page: required and optional modifier choices with a live total.

Block cart: modifier choices inside each item and the "Edit modifiers" popup.

Block checkout: pickup date and time chosen before contact details.
Faq
Yes, with WooCommerce 11.1 or later. Classic checkout works from WooCommerce 6.0. On a block checkout page, open Restaurant Pickup -> Checkout setup to add the Pickup block, or add it yourself in the checkout editor before Contact information. Modifier selections are carried through both checkout types.
Yes. Product modifiers, shared groups, global text fields, and cart editing are included. They also work when pickup is disabled.
Yes. Order meta is written via $order->update_meta_data() and is fully HPOS-compatible.
Yes. Add multiple rows in the weekly schedule (e.g. lunch 11:30–15:30 and dinner 17:00–21:00 on the same days).
Pickup date, pickup time, and order type appear on the admin order detail page, the Order Type column on the orders list, customer and admin order emails, and the customer’s thank-you page.
The plugin uses a UTC offset (for example, +07:00) that is independent from the WordPress timezone setting. Daylight saving time is not applied.
Yes. Use the Closed dates field on the settings page to add one or more dates. The checkout datepicker greys those dates out and the server rejects submissions for them.
No. The free plugin is fully functional on its own. Pro is optional and adds Menu Hours, Recurring Closed Days, Tips, kitchen printing, Square Connection, the shortcode, and a REST API.
Reviews
Changelog
1.2.2
- Declare compatibility with WooCommerce High-performance order storage and Cart & Checkout Blocks, so WooCommerce no longer lists the plugin as incompatible.
1.2.1
- Show the live modifier total in the store’s price format, matching option and cart prices.
- Remove stray spacing from the “Choose X to Y” message when a required modifier group is left empty.
- Show “Cart updated.” after saving modifier changes from the cart.
- Show modifier choices one group per line inside each cart and checkout item. The block cart shows an “Edit modifiers” link in each row that opens a popup with that product’s modifiers, replacing the separate list below the cart.
1.2.0
- Add product modifiers, shared groups, and global text fields.
- Add cart editing, option pricing, and validation for modifier selections.
- Add pickup support for block checkout and improve Classic checkout spacing.
- Simplify admin navigation and add popup modifier editors.
1.1.5
- Wording only, no functional change. The Pro add-on removed license activation in its 1.6.0 release, so this plugin no longer tells users to activate a license key, and no longer lists license management among the Pro features.
- Rename the “License” stat in the settings page header to “Edition”. The values, Free and Pro, are unchanged.
1.1.4
- Internal: introduce
restopick_get_closed_dates( $start_ymd, $end_ymd )helper andrestopick_pickup_closed_datesfilter so add-ons (e.g. the Pro recurring closed days feature) can extend the closed-pickup-dates list within a window. JS config, settings header summary, and checkout validation now route through the helper.
1.1.3
- Register the admin JS script handle on every admin page (not just the Settings page) so other admin sub-pages in the same menu can enqueue it without re-declaring the asset path.
- Rename the admin order list column key from
wpc_order_typetorestopick_order_type_columnfor consistent prefixing. - Rename the checkout pickup HTML class from
woocommerce-pickup-fieldstorestopick-pickup-fields(and the matching__field-wrappermodifier) so all in-plugin selectors share the same prefix. - Rename the order-received pickup details HTML class from
woocommerce-pickup-detailstorestopick-pickup-details. - Drop redundant cross-plugin contract code comments and the now-unnecessary
phpcs:ignorelines around prefixed hook names.
1.1.2
- Drop the Tips and Shortcode tab placeholders from the Settings page (those features now live entirely in the Pro companion plugin under their own admin sub-pages).
- Add a Get Pro admin sub-page that lists the Pro features and a CTA. The sub-page is only registered when the Pro plugin is not active.
1.1.1
- Drop Menu Hours UI from the free plugin (the feature now lives entirely in the Pro companion plugin under its own admin page).
- Rename the admin JS global from
wpcPickupAdmintorestopickPickupAdminfor consistent prefixing.
1.0.0
- Initial release.