Paid Plugins for Restaurants: Bookings, Menus and Orders
Bookings, menus and orders are three different problems. Here are the paid plugins that solve them, with prices and versions checked on 16 October 2026.
Ana Ferreiro · @aferreiro
WooCommerce engineering
- Topic
- WOO
- Section
- WooCommerce & Storefront
- Published
- 16 OCT 2026
- Reading time
- 7 MIN
- Words
- 1571W
Saturday at 19:40, the phone rings through to a dining room where nobody can answer it, and the party of six books somewhere else. That is the failure a restaurant website exists to prevent, and it is not a design problem. It is an availability problem, and free WordPress plugins solve it badly because availability is stateful: two people must not be able to hold the same table at 20:00.
Menus are the opposite. A menu is content: a list of dishes, prices that change seasonally, an allergen note, a photo or two. Free plugins and a block theme handle that properly, and the free roundup in this pair covers the whole free stack. The paid money goes to reservations, online orders and the page that has to load on a phone in a car park.
Prices and versions below were read from the vendors' own pages on 16 October 2026. Where a vendor does not publish a readable version number, this article says so instead of filling the gap.
Affiliate disclosure
Some links in this article are affiliate links, so WPSifero may earn a commission if you buy through one. That does not change which plugins are recommended or where we say each one stops being enough. Nothing here is a commission figure; the licence price is the only number you pay.
A restaurant site has three jobs, and the free stack covers one
The first job is telling people what you serve and when you are open. That is a menu page, opening hours and a map. The free plugins in our restaurant plugin roundup do this, and doing it with free tools is not a compromise.
The second job is taking a booking without a phone call. That needs a calendar with capacity: tables or covers per slot, a cut-off time, a buffer between sittings, and a way to stop two parties taking the same table. Free booking plugins exist, and most of them store a request rather than a confirmed reservation, which means somebody still has to reconcile it against the paper diary.
The third job is taking an order. A fixed menu with collection times is straightforward. A full menu with modifiers, sold-out items, delivery zones and a kitchen printer is a shop, and it needs shop software. The distinction matters because the two are priced an order of magnitude apart, and buying the shop when you needed the request form is the most common way a restaurant site ends up with a licence nobody uses.
There is also a fourth job that nobody puts in the brief: being findable at 19:00 by somebody holding a phone. That is the page-weight problem, and it is the one where a cheap licence changes the most visible number.
Bookings: the paid layer that stops double-booking a table
WooCommerce Bookings, for restaurants that take reservations online
Bookings turns a WooCommerce product into a bookable resource. You define availability, buffers between slots, a maximum number of bookings per slot, and whether a booking is confirmed immediately or held for approval. Because it sits on WooCommerce, payment, deposits and no-show fees use the same checkout the rest of the site already has.
The vendor's own product description states that it prevents double-booking, syncs with Google Calendar, and works with any WooCommerce payment gateway. Checked on 16 October 2026: the WooCommerce Bookings product page lists the one-year plan at $249, with a 30-day money-back guarantee. The extension's version number is rendered client-side on that page and did not resolve during our check, so no version is printed here.
It runs on WooCommerce itself, which is free. The wordpress.org plugin page listed WooCommerce version 11.2.1 on 16 October 2026, which is the same date we checked the extension.
Where it stops being enough: it is a resource scheduler, not a restaurant host. It does not know that table 12 seats four and can be pushed together with table 13, and it will not optimise a floor plan. If the restaurant runs a complex seating chart, the booking system belongs in the reservations software the front desk already trusts, and the website should hand off to it.
Menus and enquiries: the paid forms that do the rest
WPForms, for menu updates and simple enquiries
A restaurant site needs forms constantly: a large-party enquiry, a private-hire request, a Christmas menu waitlist, a "tell us about an allergy before you book" box. WPForms' paid tiers add conditional logic, multi-page forms, file uploads and stored entries, which is what separates a form that reaches the manager from one that reaches a spam folder.
Checked on 16 October 2026: the changelog lists version 1.10.1, and the WPForms pricing page showed a 50% first-year discount, putting Basic at $49.50 against a list price of $99 a year, with higher tiers for multi-page and payment forms.
Where it stops being enough: it is a form builder, not a booking engine. Using it to collect reservation requests works until two people request the same 20:00 slot, at which point someone is reconciling emails. Use it for enquiries that a human will read, and use a real booking system for anything with capacity.
Gravity Forms, for bookings forms with deposits and routing
Gravity Forms earns its licence on restaurants that take bookings in a specific way: a deposit taken at the time of booking, a form whose questions change depending on party size, and entries routed to different inboxes for events, private hire and the general book. Calculations, conditional logic and file uploads are all in the paid tiers, and entries live in WordPress rather than in a third-party inbox.
Checked on 16 October 2026: the vendor changelog lists version 3.1.3.4, and the Gravity Forms pricing page lists Basic at $59 a year for one site, with Pro at $159 and Elite at $259. Payment add-ons are sold separately, so a deposit-taking form costs more than the $59 headline.
Where it stops being enough: it needs somebody who enjoys building forms. A conditional booking form with a deposit is an afternoon's work, and every seasonal change is another afternoon. It is also the heavier of the two form plugins on the page, which is why the speed licence below often arrives in the same project.
The licence that pays for itself on the busiest page of the week
WP Rocket, for the menu page full of photographs
Restaurant pages are image-heavy and they are read on phones, on mobile data, by somebody deciding where to eat in the next ten minutes. WP Rocket caches the page, delays third-party JavaScript such as the booking widget and the map, removes unused CSS, and preloads the cache after a menu edit so the first visitor after a change does not pay for it.
Checked on 16 October 2026: the site identifies itself as version 3.20.0.2, and the WP Rocket pricing page lists $59.95 a year for one site, $119.95 for three, and a 14-day trial. For a single restaurant site that is the whole licence cost, which makes it an easy comparison against one lost table.
Where it stops being enough: it will not compress the photographs for you, and a menu page with twelve 4 MB images stays slow behind the best cache. Fix the images first. It also cannot make a third-party booking widget fast; if the widget takes two seconds, the honest fix is a smaller widget.
It is worth knowing which of those two problems you have before buying anything. Time the server and time the whole page separately, from a phone on mobile data rather than from the office wifi.
curl -s -o /dev/null -w 'ttfb %{time_starttransfer}s total %{time_total}s\n' https://restaurant.example/menu/
A fast TTFB with a slow total means the server is fine and the browser is the problem, which is the case a caching plugin actually addresses. A slow TTFB means the host is the problem and no plugin will fix it.
Who should stay on the free stack
A single-location restaurant that takes bookings by phone, keeps a PDF menu and posts a specials photo now and then does not need any of this. The free stack handles menus, opening hours, maps, gallery and a contact form, and the free roundup covers all of those. Pay for a booking system only when the cost of a missed call is larger than $249 a year, which for most busy restaurants is about two covers.
A word on what the paid layer does not fix. None of these plugins makes a restaurant answer its phone, and none of them handles a table that has been double-booked in the paper diary. If the front of house will not use the online system, the licence buys nothing. That decision comes before the plugin, not after.
What to do on Monday
- Count the missed calls for a week. That number decides whether a booking licence is worth anything.
- Compress the existing menu and gallery images. This costs nothing and is the single largest speed change on most restaurant sites.
- Decide between a booking request form and real availability. Requests suit a small room; capacity needs a scheduler.
- If you sell a fixed menu for collection, start with WooCommerce, which is free, and add paid extensions only when the menu needs modifiers or collection slots.
- Test the booking flow on a phone with the mobile network on. That is the only environment the customer uses.
Ana Ferreiro · @aferreiro
WooCommerce engineering
Covers the WooCommerce order lifecycle: checkout, HPOS, session handling, transactional email and the post-purchase layer where most storefront complaints actually originate.
Continue