

Rows of seats as the customer sees them: pick a date, a time, then a seat.
Seat & Table Booking for WooCommerce is a table reservation and seat booking plugin that
turns any WooCommerce shop into a booking system for a room with a layout: a restaurant’s
tables, a cinema’s seats, a theatre’s rows, a co-working space’s desks, a wedding hall’s
seating plan. It adds a Booking venue product type to WooCommerce, and one product is one
floor plan.
Upload a photo or a drawing of the room, drag the tables to where they really are, give each
one a price and a capacity, and set the timeslots it can be booked in. Customers then pick a
date, a timeslot and a table straight off the seating chart, and the table goes into the cart
like any other WooCommerce product. WooCommerce handles the payment, the order and the emails –
there is no second checkout, no second dashboard, no subscription and no external service.
Every paid reservation gets a QR check-in code, and door staff scan it from a full-screen
scanner page built into the plugin.
For the shop owner
For the customer
Adding a table to the cart creates a short-lived hold on that exact unit, date and timeslot.
The hold is enforced by a database uniqueness constraint, so two customers racing for the last
table cannot both win – the second is told the table has just gone. Holds that are never paid
for expire on their own and the table returns to the floor plan.
Every paid reservation gets a QR check-in code, shown on the confirmation email, the thank-you
page and My Account. Staff scan it at /table-check-in/, a full-screen scanner page built into
the plugin, restricted to a “Scanner” role that can check guests in and nothing else. The
scanner has a flashlight toggle and a type-in field for a desk without a camera.
The same check-in also works over a REST API, so a third-party scanner app – a phone app, a
handheld reader, whatever the door already uses – can call it too. The API is off by default;
a shop owner turns it on under Seats & Tables > Settings > Scanner / API, and a scanner app
authenticates with a WordPress Application Password over HTTPS, the same mechanism WordPress
ships for any external app that needs to act as a user.
.pot file.Bundles Fabric.js 7.4.0 (MIT) for the admin floor plan editor, in
inc/product-type/js/lib/, as published on npm (fabric/dist/index.min.js,
https://www.npmjs.com/package/fabric/v/7.4.0). Unminified source (the project tags this
release v740): https://github.com/fabricjs/fabric.js/tree/v740
Also bundles endroid/qr-code 4.8.2 (MIT) for generating check-in QR codes, together with its
dependencies bacon/bacon-qr-code 2.0.8 (https://github.com/Bacon/BaconQrCode) and dasprid/enum
1.0.7 (https://github.com/DASPRiD/Enum), both BSD-2-Clause, installed with Composer,
unmodified, in inc/qr/lib/qrcodegen/. The MIT licence applies to endroid/qr-code itself only.
Source: https://github.com/endroid/qr-code
And jsQR 1.4.0 (Apache-2.0) for decoding QR codes in the check-in scanner, in
inc/scanner/js/jsqr.js. Source: https://github.com/cozmo/jsQR
No other minified or compiled code is shipped, and no assets are loaded from a CDN.
None. This plugin makes no outbound requests, sends no analytics or telemetry, and needs no
account anywhere. QR codes are generated on your own server by the bundled library, and every
script and stylesheet is served from your own site.
This plugin ships no compiled or obfuscated code. Every PHP, JavaScript and CSS file
written for this plugin is included in readable, editable form, and no build step
(npm, webpack, Composer, etc.) is required to run or modify it.
The following third-party libraries are bundled unmodified. Each is the upstream
distribution file, at the version listed:
endroid/qr-code 4.8.2 – QR code generation – https://github.com/endroid/qr-code – MIT
(bundled in inc/qr/lib/qrcodegen/, installed with Composer, together with its
dependencies bacon/bacon-qr-code 2.0.8 and dasprid/enum 1.0.7)
Fabric.js 7.4.0 – the admin floor plan editor canvas – MIT – bundled minified in
inc/product-type/js/lib/fabric.min.js, exactly as published on npm
(https://www.npmjs.com/package/fabric/v/7.4.0, file fabric/dist/index.min.js).
Unminified source: https://github.com/fabricjs/fabric.js/tree/v740 – the project tags
this release v740, not v7.4.0.
jsQR 1.4.0 – decoding QR codes from the camera in the check-in scanner – Apache-2.0 –
bundled in inc/scanner/js/jsqr.js. Source: https://github.com/cozmo/jsQR
The highest PHP requirement among these is endroid/qr-code’s “^8.0”, which is the
plugin’s declared minimum.