HomePluginsSeat & Table

v1.8.1

Seat & Table Booking for WooCommerce

Turns a WooCommerce shop into a booking system for a room with a layout. Draw the floor plan, price every table, and take bookings with QR check-in.

Requires WordPress 6.8 Requires PHP 8.0 Tested to 7.1.1 Needs WooCommerce
A Booking venue product page, where the customer picks a date, a sitting and then a table off the dining room floor plan.

Who it is for

One product is one floor plan, so anything with a fixed layout works: a dining room, an auditorium, a hall or a studio.

Restaurants and bars

Tables of different sizes and prices, several sittings an evening, and a table held back for walk-ins.

Cinemas and theatres

Seat-by-seat booking from a seating chart, with a row tool for laying out rows quickly and a find-seats-together button for groups.

Events and workspaces

A wedding, gala or conference is a timeslot rule whose first and last day are the same. Desks and studios book by the hour or by the day.

What it does

One product is one floor plan. WooCommerce handles the payment, the order and the emails, so there is no second checkout, no second dashboard and no external service.

Visual floor plan editor

Upload a photo or drawing of the room and drag tables and seats onto it, with a grid, undo, rotation and a row tool for cinema-style seating. Every unit carries its own price, label, capacity and internal note.

Timeslots and blackout dates

Recurring rules per weekday with optional first and last dates, so a wedding or a gala is simply a rule whose first and last day are the same. Blackout dates close a whole day or a single sitting.

What the customer picks

A date, then a timeslot, then a table or seats from the floor plan. Only dates that can actually be booked are offered, booked tables are visibly unavailable, tables too small for the party are not shown, and the whole picker works with a keyboard and a screen reader.

Double bookings are impossible

Adding a table to the cart takes a short-lived hold on that exact unit, date and timeslot, enforced by a database uniqueness constraint. Two customers racing for the last table cannot both win, and unpaid holds expire on their own. The hold duration is configurable, per site or per venue.

A day view for staff

Every table against every sitting for a day, with guests, arrivals and a needs-attention bar. A staff block per sitting holds a table back for walk-ins, and reservations show as a column on the WooCommerce orders list.

Check in at the door

Every paid reservation gets a QR code on the confirmation email, the thank-you page and My Account. Staff scan it at a full-screen page built into the plugin, with a flashlight toggle and a type-in field for a desk with no camera. Each venue sets its own QR colours, logo and caption.

A role that only scans

A dedicated Scanner role that checks guests in and nothing else, with no access to orders, products or the dashboard. An optional REST endpoint lets a third-party scanner app call the same validation, off by default and requiring an Application Password over HTTPS.

Follows your theme

Fifteen optional colour overrides with a live preview and a contrast warning. Left alone the booking controls inherit your theme's own colours, so the card fits a dark or branded theme with nothing to configure.

Screenshots

Straight from the WordPress.org listing, so what you see here is what the plugin actually renders.

The floor plan editor in wp-admin, with tables dragged onto a drawing of the dining room and the editor panel beside it.
The floor plan editor, where tables are dragged onto a picture of the room.
A Booking venue product page, where the customer picks a date, a sitting and a table off the floor plan.
A restaurant product page, with the table picked straight off the floor plan.
The same picker as a seating chart, with numbered rows of seats and a find-seats-together button.
A cinema seating chart, with a find-seats-together button for groups.
The floor plan editor laying out rows of numbered seats with the row tool, for a cinema or a theatre.
The row tool, for laying out cinema and theatre rows quickly.
The Bookings screen, showing every table against every sitting for one day.
The Bookings day view, every table against every sitting.
The Appearance tab, with colour overrides for the picker and a live preview beside them.
Appearance settings, with a live preview and a contrast warning.

Requirements and fine print

WooCommerce must be installed and active. The plugin makes no outbound requests, sends no telemetry and needs no account anywhere. QR codes are generated on your own server by a bundled library.

wordpress

6.8 or higher, tested up to 7.1.1.

php

8.0 or higher.

woocommerce

Required. HPOS and the block cart and checkout are both supported.

licence

GPLv2 or later. Translation ready, with a POT file.

third_party

Five bundled libraries, all unmodified: Fabric.js, endroid/qr-code, BaconQrCode, dasprid/enum and jsQR.

0.00Price, now and later
0.00Fee per booking
GPLv2Licence, or later
noneTelemetry, ever