{"id":308161,"date":"2026-05-08T06:12:37","date_gmt":"2026-05-08T06:12:37","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/restaurant-pickup-for-woocommerce\/"},"modified":"2026-09-14T08:08:39","modified_gmt":"2026-09-14T08:08:39","slug":"restopick-restaurant-pickup-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/ja.wordpress.org\/plugins\/restopick-restaurant-pickup-for-woocommerce\/","author":14535365,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.2","stable_tag":"1.2.2","tested":"7.1.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"RestoPick - Restaurant Pickup for WooCommerce","header_author":"Nirwan","header_description":"Pickup ordering system for WooCommerce, designed for restaurants and food businesses.","assets_banners_color":"","last_updated":"2026-09-14 08:08:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/nirwan.work","rating":0,"author_block_rating":0,"active_installs":0,"downloads":356,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.3":{"tag":"1.1.3","author":"nirwannirwan","date":"2026-05-08 06:12:07","revision":3526181},"1.1.4":{"tag":"1.1.4","author":"nirwannirwan","date":"2026-05-09 07:02:40","revision":3527043},"1.1.5":{"tag":"1.1.5","author":"nirwannirwan","date":"2026-08-19 15:36:09","revision":3654933},"1.2.1":{"tag":"1.2.1","author":"nirwannirwan","date":"2026-09-14 07:50:43","revision":3694726},"1.2.2":{"tag":"1.2.2","author":"nirwannirwan","date":"2026-09-14 08:08:39","revision":3694749}},"upgrade_notice":{"1.2.2":"<p>Removes the &quot;incompatible plugin&quot; warning shown when WooCommerce High-performance order storage is enabled.<\/p>","1.2.1":"<p>Adds product modifiers, block checkout support (WooCommerce 11.1 or later), and an &quot;Edit modifiers&quot; popup in the cart. If your checkout uses blocks, open Restaurant Pickup -&gt; Checkout setup after updating.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3526181,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3526181,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3526181,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":{"restopick\/pickup":{"name":"restopick\/pickup","title":"Restopick Pickup"}},"tagged_versions":["1.1.3","1.1.4","1.1.5","1.2.1","1.2.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3694726,"resolution":"1","location":"assets","locale":"","width":1280,"height":1690},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3694726,"resolution":"2","location":"assets","locale":"","width":1280,"height":995},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3694726,"resolution":"3","location":"assets","locale":"","width":1280,"height":1217},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3694726,"resolution":"4","location":"assets","locale":"","width":1280,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3694726,"resolution":"5","location":"assets","locale":"","width":1280,"height":508}},"screenshots":{"1":"Pickup schedule: pickup status, ASAP option, weekly pickup windows, closed dates, and slot settings.","2":"Modifier page: shared modifier groups and global fields such as Special Requests.","3":"Product page: required and optional modifier choices with a live total.","4":"Block cart: modifier choices inside each item and the \"Edit modifiers\" popup.","5":"Block checkout: pickup date and time chosen before contact details."}},"plugin_section":[],"plugin_tags":[3148,12446,16222,20710,286],"plugin_category":[39,45],"plugin_contributors":[262262],"plugin_business_model":[],"class_list":["post-308161","plugin","type-plugin","status-publish","hentry","plugin_tags-checkout","plugin_tags-food","plugin_tags-pickup","plugin_tags-restaurant","plugin_tags-woocommerce","plugin_category-business","plugin_category-ecommerce","plugin_contributors-nirwannirwan","plugin_committers-nirwannirwan"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/restopick-restaurant-pickup-for-woocommerce\/assets\/icon.svg?rev=3526181","icon":"https:\/\/ps.w.org\/restopick-restaurant-pickup-for-woocommerce\/assets\/icon.svg?rev=3526181","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/restopick-restaurant-pickup-for-woocommerce\/assets\/screenshot-1.png?rev=3694726","caption":"Pickup schedule: pickup status, ASAP option, weekly pickup windows, closed dates, and slot settings."},{"src":"https:\/\/ps.w.org\/restopick-restaurant-pickup-for-woocommerce\/assets\/screenshot-2.png?rev=3694726","caption":"Modifier page: shared modifier groups and global fields such as Special Requests."},{"src":"https:\/\/ps.w.org\/restopick-restaurant-pickup-for-woocommerce\/assets\/screenshot-3.png?rev=3694726","caption":"Product page: required and optional modifier choices with a live total."},{"src":"https:\/\/ps.w.org\/restopick-restaurant-pickup-for-woocommerce\/assets\/screenshot-4.png?rev=3694726","caption":"Block cart: modifier choices inside each item and the \"Edit modifiers\" popup."},{"src":"https:\/\/ps.w.org\/restopick-restaurant-pickup-for-woocommerce\/assets\/screenshot-5.png?rev=3694726","caption":"Block checkout: pickup date and time chosen before contact details."}],"raw_content":"<!--section=description-->\n<p>Let customers choose a pickup time and customize their food orders. Manage pickup hours, preparation time, closed dates, and product modifiers in WordPress.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Pickup date, pickup time, and ASAP choices in Classic and block checkout.<\/li>\n<li>A Checkout setup page that adds the Pickup block to a block checkout for you.<\/li>\n<li>Weekly pickup hours, multiple daily windows, closed dates, and preparation time.<\/li>\n<li>Adjustable time slots and UTC offset.<\/li>\n<li>Product modifier groups with paid or free options, minimum and maximum choices, and an Active toggle.<\/li>\n<li>Shared modifier groups that can be reused across products.<\/li>\n<li>Text and textarea fields, including global fields such as Special Requests.<\/li>\n<li>Modifier support for Simple and Variable products; variations inherit the parent's choices.<\/li>\n<li>Live price total on the product page as customers pick options.<\/li>\n<li>Modifier choices shown one group per line in the cart and at checkout.<\/li>\n<li>An \"Edit modifiers\" popup in the block cart, so customers can change choices without leaving the cart. Different configurations remain separate items.<\/li>\n<li>Pickup details and selected modifiers in orders and emails, with HPOS support.<\/li>\n<\/ul>\n\n<h4>Pro version<\/h4>\n\n<p><strong>Restaurant Pickup Pro for WooCommerce<\/strong> is an optional companion plugin. Each feature gets its own page under Restaurant Pickup once Pro is active:<\/p>\n\n<ul>\n<li><strong>Menu Hours<\/strong> - 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.<\/li>\n<li><strong>Recurring Closed Days<\/strong> - weekly, monthly, and yearly closures on top of single closed dates.<\/li>\n<li><strong>Tips<\/strong> - preset percentages and a custom amount in Classic and block checkout, with a tips report.<\/li>\n<li><strong>Kitchen printing<\/strong> - print new orders through PrintNode or your own receiver, with retries and a print log.<\/li>\n<li><strong>Square Connection<\/strong> - shared Square settings used by the RestoPick Square Payment add-on for card and wallet payments.<\/li>\n<li><strong>Shortcode<\/strong> - <code>[restopick_form]<\/code> shows the pickup fields on any page.<\/li>\n<li><strong>API Access<\/strong> - a REST endpoint to turn pickup on or off remotely with a Bearer token.<\/li>\n<\/ul>\n\n<p>The free plugin works fully on its own. The <strong>Restaurant Pickup \u2192 Get Pro<\/strong> page, shown only when Pro is not active, lists these features. Learn more at <a href=\"https:\/\/nirwan.work\">https:\/\/nirwan.work<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>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.<\/li>\n<li>Activate the plugin through the Plugins screen in WordPress.<\/li>\n<li>Open Restaurant Pickup -&gt; Pickup schedule to set your pickup hours.<\/li>\n<li>Open Restaurant Pickup -&gt; Modifier to manage shared groups and global fields. Add product-specific choices in the product editor.<\/li>\n<\/ol>\n\n<p>WooCommerce must be installed and active. If it is not, the plugin shows an admin notice and skips registering the checkout fields.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20support%20block%20checkout%3F\"><h3>Does it support block checkout?<\/h3><\/dt>\n<dd><p>Yes, with WooCommerce 11.1 or later. Classic checkout works from WooCommerce 6.0. On a block checkout page, open Restaurant Pickup -&gt; 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.<\/p><\/dd>\n<dt id=\"are%20modifiers%20included%20in%20the%20free%20plugin%3F\"><h3>Are modifiers included in the free plugin?<\/h3><\/dt>\n<dd><p>Yes. Product modifiers, shared groups, global text fields, and cart editing are included. They also work when pickup is disabled.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20work%20with%20hpos%20%28high-performance%20order%20storage%29%3F\"><h3>Does this plugin work with HPOS (High-Performance Order Storage)?<\/h3><\/dt>\n<dd><p>Yes. Order meta is written via $order-&gt;update_meta_data() and is fully HPOS-compatible.<\/p><\/dd>\n<dt id=\"can%20i%20run%20multiple%20pickup%20time%20ranges%20per%20day%20%28lunch%20and%20dinner%29%3F\"><h3>Can I run multiple pickup time ranges per day (lunch and dinner)?<\/h3><\/dt>\n<dd><p>Yes. Add multiple rows in the weekly schedule (e.g. lunch 11:30\u201315:30 and dinner 17:00\u201321:00 on the same days).<\/p><\/dd>\n<dt id=\"where%20is%20the%20pickup%20info%20displayed%20after%20checkout%3F\"><h3>Where is the pickup info displayed after checkout?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"how%20does%20the%20timezone%20setting%20work%3F\"><h3>How does the timezone setting work?<\/h3><\/dt>\n<dd><p>The plugin uses a UTC offset (for example, +07:00) that is independent from the WordPress timezone setting. Daylight saving time is not applied.<\/p><\/dd>\n<dt id=\"can%20i%20block%20specific%20dates%20such%20as%20holidays%3F\"><h3>Can I block specific dates such as holidays?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"does%20the%20free%20plugin%20require%20the%20pro%20add-on%20to%20function%3F\"><h3>Does the free plugin require the Pro add-on to function?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Declare compatibility with WooCommerce High-performance order storage and Cart &amp; Checkout Blocks, so WooCommerce no longer lists the plugin as incompatible.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Show the live modifier total in the store's price format, matching option and cart prices.<\/li>\n<li>Remove stray spacing from the \"Choose X to Y\" message when a required modifier group is left empty.<\/li>\n<li>Show \"Cart updated.\" after saving modifier changes from the cart.<\/li>\n<li>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.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Add product modifiers, shared groups, and global text fields.<\/li>\n<li>Add cart editing, option pricing, and validation for modifier selections.<\/li>\n<li>Add pickup support for block checkout and improve Classic checkout spacing.<\/li>\n<li>Simplify admin navigation and add popup modifier editors.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>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.<\/li>\n<li>Rename the \"License\" stat in the settings page header to \"Edition\". The values, Free and Pro, are unchanged.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Internal: introduce <code>restopick_get_closed_dates( $start_ymd, $end_ymd )<\/code> helper and <code>restopick_pickup_closed_dates<\/code> filter 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.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>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.<\/li>\n<li>Rename the admin order list column key from <code>wpc_order_type<\/code> to <code>restopick_order_type_column<\/code> for consistent prefixing.<\/li>\n<li>Rename the checkout pickup HTML class from <code>woocommerce-pickup-fields<\/code> to <code>restopick-pickup-fields<\/code> (and the matching <code>__field-wrapper<\/code> modifier) so all in-plugin selectors share the same prefix.<\/li>\n<li>Rename the order-received pickup details HTML class from <code>woocommerce-pickup-details<\/code> to <code>restopick-pickup-details<\/code>.<\/li>\n<li>Drop redundant cross-plugin contract code comments and the now-unnecessary <code>phpcs:ignore<\/code> lines around prefixed hook names.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>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).<\/li>\n<li>Add a <strong>Get Pro<\/strong> admin sub-page that lists the Pro features and a CTA. The sub-page is only registered when the Pro plugin is not active.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Drop Menu Hours UI from the free plugin (the feature now lives entirely in the Pro companion plugin under its own admin page).<\/li>\n<li>Rename the admin JS global from <code>wpcPickupAdmin<\/code> to <code>restopickPickupAdmin<\/code> for consistent prefixing.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Pickup scheduling and product modifiers for WooCommerce restaurants.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/308161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=308161"}],"author":[{"embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nirwannirwan"}],"wp:attachment":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=308161"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=308161"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=308161"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=308161"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=308161"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=308161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}