=== Restaurant for WooCommerce ===
Contributors: wpexpertshub, jodhavishalsingh
Tags: woocommerce restaurant, online food ordering, restaurant menu, food delivery, woocommerce food
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=jodhavishalsingh@gmail.com&item_name=Donation+For+Restaurant+for+WooCommerce
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Requires at least: 6.3
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.2
WC requires at least: 8.0
WC tested up to: 11.1

Turn WooCommerce into a one-page restaurant ordering menu with dish popups, quantity steppers, a Veg / Non-veg filter and a slide-in basket.

== Description ==

**Restaurant for WooCommerce** turns your WooCommerce products into a fast, modern, one-page online ordering menu. Customers browse your dishes, choose sizes and options in a popup, change quantities and go to checkout from a slide-in basket without leaving the page. It is built for phones first and works just as well on desktops.

Add the menu to any page with the shortcode `[wxp_restaurant]`.

Perfect for restaurants, cafés, takeaways, pizzerias, bakeries, food trucks and cloud kitchens that take orders for delivery or collection.

= The menu =

* All categories and dishes on one page: a sticky category list on desktop and swipeable category chips on phones, both following the scroll.
* Dish rows with photo, price (sale prices included), short description and a Vegetarian / Non-vegetarian mark.
* Live search in dish names and descriptions, plus a "Veg only" / "Non-veg only" filter.
* Sold-out and unavailable dishes stay visible and are clearly marked.

= Ordering =

* One-tap "Add" button that turns into a quantity stepper (- 2 +) once the dish is in the basket.
* Dish popup with a large photo and the full description.
* Variable products (sizes, crusts, spice levels...) are chosen with option buttons. Out-of-stock combinations are disabled and the price updates as you choose.
* Floating basket button with the item count and total (a full-width bar on phones) and a slide-in basket with quantity controls, subtotal and Checkout / View cart buttons.

= Works with your WooCommerce store =

* Uses your products, categories, prices, photos and stock - there is no separate menu to maintain.
* Orders go through the normal WooCommerce cart and checkout, so your payment gateways, shipping methods (delivery or local pickup), coupons, taxes and order emails work as usual.
* Follows your product and category order, catalog visibility, "Hide out of stock items", stock limits and "Sold individually".
* Compatible with the classic and block Cart / Checkout, the Mini-Cart block, HPOS, block themes and full-page caching.
* External and grouped products link to their own product page.

= Fast, accessible and easy to customise =

* Lightweight: no jQuery plugins and no icon fonts, and the CSS and JavaScript load only on pages that show the menu.
* Accessible: real buttons, keyboard navigation, focus handling in the popup and basket, and reduced-motion support.
* Change the colours with a few CSS variables and override the templates in your theme.
* Translation ready.

= Shortcode =

* `[wxp_restaurant]` - all product categories that have published products.
* `[wxp_restaurant categories="starters,mains,drinks"]` - only these category slugs, in this order.

= ⭐ Premium: Advanced Restaurant for WooCommerce =

**Take orders for the right day and time.** The premium version adds extras, opening hours and delivery slots, so customers can customise their dishes and choose when their food arrives.

* ✅ **Extras and add-ons** - PPOM for WooCommerce fields (toppings, sides, notes...) in the dish popup, with their prices added to the dish.
* ✅ **Delivery day and time slots** - customers pick the delivery date and time on the classic checkout and in the Checkout block, based on your opening hours and your slot length.
* ✅ **Opening hours** for each day of the week, with an "Open now" / "Closed" status and your closed days.
* ✅ **Closed switch** - show the restaurant as closed with your own message; the delivery fields are hidden at checkout.
* ✅ **Header message** on the menu page, for offers or delivery news.
* ✅ **Menu options** - turn the search bar, the Veg / Non-veg filter and the basket on or off.
* ✅ **Your colours** for the menu, basket, buttons and popup, without code.
* ✅ **Dedicated support** from the plugin developers.

👉 **[Get Advanced Restaurant for WooCommerce](https://wpexpertshub.com/plugins/advanced-restaurant-for-woocommerce/)**

== Installation ==

1. Make sure WooCommerce is installed and active.
2. Go to Plugins > Add New Plugin, search for "Restaurant for WooCommerce", then install and activate it.
3. Put your dishes in product categories (for example Starters, Mains, Drinks) and tick "Is Non-Vegetarian" for meat and fish dishes.
4. Add the shortcode `[wxp_restaurant]` to a page (Shortcode block) and publish it.

WooCommerce > Restaurant in your dashboard shows these steps, the shortcodes to copy and the pages that already show your menu.

== Frequently Asked Questions ==

= How do I mark a dish as non-vegetarian? =

Edit the product and tick "Is Non-Vegetarian" next to the product type. All other dishes show the vegetarian mark.

= How do customers pay, and how do they get their food? =

The menu uses the normal WooCommerce checkout, so customers can pay with any payment method you have enabled, including Cash on delivery. Use WooCommerce shipping methods for delivery and "Local pickup" for collection. Choosing a delivery day and time slot is a Pro feature.

= Can I show only some categories? =

Yes: `[wxp_restaurant categories="starters,mains,drinks"]` shows only these category slugs, in this order. You can put different menus on different pages.

= In which order are dishes and categories shown? =

Categories follow the order under Products > Categories (child categories right after their parent) and dishes follow the order under Products > Sorting. Dishes in a child category are listed in that category's own section.

= Why is a dish or category missing? =

Only published products that are visible in the catalog are listed, and a category is shown when it has at least one of them. With "Hide out of stock items" enabled in WooCommerce, out-of-stock dishes are hidden too.

= Does it work with my theme? =

The menu is designed to work with any theme and adapts to the width of your content area. It has been tested with Storefront and with the Twenty Twenty-Five block theme.

= Does it work with page caching? =

Yes. If a cached page carries an expired security token, the menu gets a fresh one and retries automatically.

= Can I change the colours? =

Yes. Add CSS in Appearance > Customize > Additional CSS (or Appearance > Editor > Styles > Additional CSS with a block theme), for example `.wxp-root { --wxp-accent: #0f766e; --wxp-accent-hover: #115e59; --wxp-accent-soft: #e6f4f2; }`.

= The floating basket covers my theme's mobile footer bar. =

Raise it with `body { --wxp-basket-lift: 60px; }` (the height of the bar). Storefront's handheld footer bar is handled automatically.

= Can I change the layout? =

Copy `templates/menu.php` or `templates/basket.php` from the plugin folder to `your-theme/restaurant-for-woocommerce/` and edit the copy.

= Can I use the free and Pro version together? =

When the Pro version is active this plugin stays inactive, so you can deactivate and delete it. The shortcode is the same.

= Where can I get help? =

See WooCommerce > Restaurant in your dashboard, or open a topic in the [support forum](https://wordpress.org/support/plugin/restaurant-for-woocommerce/).

== Screenshots ==

1. The menu: category list, search, Veg / Non-veg filter and dish rows with Add buttons and quantity steppers.
2. Dish popup with option buttons for sizes and crusts, quantity and live price.
3. Basket drawer with quantity controls, subtotal and checkout.
4. The menu on a phone: swipeable categories and the basket bar.
5. WooCommerce > Restaurant: getting started, shortcodes to copy and the pages that show your menu.
6. Tick "Is Non-Vegetarian" in the product editor to show the non-veg mark on a dish.

== Changelog ==

= 1.2 - 29/09/2026 =
* New - Redesigned menu: dish rows with photos, one-tap Add buttons that become quantity steppers, category chips on phones, sticky category list on desktop, live search in names and descriptions.
* New - Dish popup (native dialog, no jQuery plugins) with option buttons for variations, disabled out-of-stock combinations, default attributes, variation photo and price, quantity and live total.
* New - Basket drawer with quantity steppers, line totals, subtotal, Checkout and View cart; floating basket button with item count and total (bar at the bottom on phones).
* New - Shortcode attribute categories="slug1,slug2".
* New - Nested categories are listed parent first, then their children; dishes of a child category are no longer repeated in the parent's section.
* New - Dishes follow the product sort order, and products hidden from the catalog or out of stock (with "Hide out of stock items") are not listed.
* New - External, grouped and other product types link to their product page; sold-out and unavailable dishes are marked.
* New - Templates can be overridden in your-theme/restaurant-for-woocommerce/; colours can be changed with CSS variables.
* New - WooCommerce > Restaurant screen with getting started steps, copyable shortcodes, pages using the menu and FAQ.
* New - Declared compatibility with HPOS and Cart/Checkout blocks; header mini carts refresh after changes from the menu.
* Fix - Only 10 items per category were shown (default query limit); all published dishes are now listed.
* Fix - "Any" variations with custom attributes of more than one word (for example "Extra Hot") could not be added to the basket.
* Fix - Stock limits, "Sold individually" and other plugins' add-to-cart validation are applied to menu orders and quantity changes; WooCommerce error messages are shown to the customer.
* Fix - Pages served from a full-page cache with an expired security token now retry automatically instead of failing.
* Fix - Menu styles and scripts were not loaded with block themes.
* Fix - Fatal error when the add-to-cart request contained a missing or invalid product.
* Fix - "Is Non-Vegetarian" flag was reset to "no" whenever a product was saved outside the product editor (quick edit, REST API, imports).
* Fix - Add-to-cart failures (out of stock, expired session, network error) left the menu blocked.
* Fix - The plugin also loaded next to the Pro version on multisite when WooCommerce was network-activated.
* Fix - The plugin screen hid all admin notices.
* Fix - PHP 8.2+ deprecations; all output escaped; Plugin Check clean.
* Tweak - Removed fancybox, the icon font and the BlockUI dependency (smaller, faster pages).
* Tweak - AJAX requests use the WooCommerce AJAX endpoint (the old endpoint still works).
* Tweak - Text domain changed to restaurant-for-woocommerce; tested with WordPress 7.1, WooCommerce 11.1 and PHP 8.2 - 8.5.

= 1.1 - 30/07/2022 =
* Tweak - Minor fix and compatibility check.

= 1.0 - 04/05/2021 =
* Initial release.

== Upgrade Notice ==

= 1.2 =
New menu design with quantity steppers, dish popup and basket drawer, plus many fixes. If you customised the old menu with CSS, check your menu page after updating.
