{"id":335395,"date":"2026-07-06T16:23:42","date_gmt":"2026-07-06T16:23:42","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dinekit-restaurant-menu-qr-menus-allergen-labels\/"},"modified":"2026-08-03T04:40:05","modified_gmt":"2026-08-03T04:40:05","slug":"dinekit","status":"publish","type":"plugin","link":"https:\/\/gax.wordpress.org\/plugins\/dinekit\/","author":23464368,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.17","stable_tag":"1.2.17","tested":"7.0.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"DineKit","header_author":"Web Level Up","header_description":"Beautiful restaurant menus with UK allergen support (Natasha's Law), QR table cards and opening hours. No dependencies, works with any theme.","assets_banners_color":"a4a2bf","last_updated":"2026-08-03 04:40:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/weblevelup.co.uk\/dinekit","header_author_uri":"https:\/\/weblevelup.co.uk\/","rating":5,"author_block_rating":0,"active_installs":10,"downloads":1159,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"weblevelup","date":"2026-07-06 16:23:04"},"1.1.0":{"tag":"1.1.0","author":"weblevelup","date":"2026-07-09 19:17:18"},"1.2.10":{"tag":"1.2.10","author":"weblevelup","date":"2026-07-25 10:42:42"},"1.2.11":{"tag":"1.2.11","author":"weblevelup","date":"2026-07-26 16:26:10"},"1.2.12":{"tag":"1.2.12","author":"weblevelup","date":"2026-07-26 20:12:20"},"1.2.13":{"tag":"1.2.13","author":"weblevelup","date":"2026-07-27 20:44:23"},"1.2.14":{"tag":"1.2.14","author":"weblevelup","date":"2026-07-28 22:23:50"},"1.2.15":{"tag":"1.2.15","author":"weblevelup","date":"2026-08-02 00:02:30"},"1.2.16":{"tag":"1.2.16","author":"weblevelup","date":"2026-08-02 17:43:39"},"1.2.17":{"tag":"1.2.17","author":"weblevelup","date":"2026-08-03 04:40:05"},"1.2.2":{"tag":"1.2.2","author":"weblevelup","date":"2026-07-10 22:55:28"},"1.2.3":{"tag":"1.2.3","author":"weblevelup","date":"2026-07-11 08:13:08"},"1.2.4":{"tag":"1.2.4","author":"weblevelup","date":"2026-07-24 22:01:47"},"1.2.5":{"tag":"1.2.5","author":"weblevelup","date":"2026-07-24 22:54:04"},"1.2.6":{"tag":"1.2.6","author":"weblevelup","date":"2026-07-24 23:18:02"},"1.2.7":{"tag":"1.2.7","author":"weblevelup","date":"2026-07-25 00:10:29"},"1.2.8":{"tag":"1.2.8","author":"weblevelup","date":"2026-07-25 00:43:19"},"1.2.9":{"tag":"1.2.9","author":"weblevelup","date":"2026-07-25 01:10:44"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3625224,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3625224,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3625224,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3625224,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"dinekit\/hours":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"dinekit\/hours","version":"0.1.0","title":"DineKit Opening Hours","category":"widgets","icon":"clock","description":"Show your opening hours with a live open\/closed status.","keywords":["hours","opening","times","schedule","restaurant"],"textdomain":"dinekit","editorScript":"dinekit-hours-editor","style":"dinekit-menu","supports":{"html":false,"align":["wide"]},"attributes":{"showStatus":{"type":"boolean","default":true},"title":{"type":"string","default":""}}},"dinekit\/booking":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"dinekit\/booking","version":"0.1.0","title":"DineKit Booking Form","category":"widgets","icon":"calendar-alt","description":"Let diners book a table from your site \u2014 commission-free.","keywords":["booking","reservation","table","restaurant","reserve"],"textdomain":"dinekit","editorScript":"dinekit-booking-editor","style":"dinekit-booking","supports":{"html":false,"align":["wide"]},"attributes":{"heading":{"type":"string","default":""},"intro":{"type":"string","default":""}}},"dinekit\/menu":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"dinekit\/menu","version":"0.1.0","title":"DineKit Menu","category":"widgets","icon":"food","description":"Display a restaurant menu with prices, allergens and dietary labels.","keywords":["menu","restaurant","food","allergen","price"],"textdomain":"dinekit","editorScript":"dinekit-menu-editor","style":"dinekit-menu","supports":{"html":false,"align":["wide","full"]},"attributes":{"menu":{"type":"number","default":0},"sections":{"type":"array","default":[]},"layout":{"type":"string","default":"list"},"columns":{"type":"number","default":0},"showImages":{"type":"boolean","default":true},"showAllergens":{"type":"boolean","default":true},"showDietary":{"type":"boolean","default":true},"showMatrix":{"type":"boolean","default":true},"showFilter":{"type":"boolean","default":true}}}},"tagged_versions":["1.0.0","1.1.0","1.2.10","1.2.11","1.2.12","1.2.13","1.2.14","1.2.15","1.2.16","1.2.17","1.2.2","1.2.3","1.2.4","1.2.5","1.2.6","1.2.7","1.2.8","1.2.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3631992,"resolution":"1","location":"assets","locale":"","width":2720,"height":1800},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3621972,"resolution":"10","location":"assets","locale":"","width":1440,"height":900},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3623773,"resolution":"11","location":"assets","locale":"","width":2720,"height":1800},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3631398,"resolution":"12","location":"assets","locale":"","width":2720,"height":1800},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3626496,"resolution":"13","location":"assets","locale":"","width":2720,"height":1800},"screenshot-14.png":{"filename":"screenshot-14.png","revision":3631992,"resolution":"14","location":"assets","locale":"","width":2720,"height":1800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3626496,"resolution":"2","location":"assets","locale":"","width":2720,"height":1800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3631992,"resolution":"3","location":"assets","locale":"","width":2720,"height":1800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3603454,"resolution":"4","location":"assets","locale":"","width":1440,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3631398,"resolution":"5","location":"assets","locale":"","width":2720,"height":1800},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3603454,"resolution":"6","location":"assets","locale":"","width":1440,"height":900},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3603454,"resolution":"7","location":"assets","locale":"","width":1440,"height":900},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3603454,"resolution":"8","location":"assets","locale":"","width":1440,"height":900},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3631398,"resolution":"9","location":"assets","locale":"","width":2720,"height":1800}},"screenshots":{"1":"Your menu on any website \u2014 the Signature template out of the box: dietary filters, UK-14 allergen icons and a one-tap Order online button.","2":"The Menu Builder \u2014 sections and dishes with allergens and multiple prices, all autosaved. Bulk-edit the whole menu in a spreadsheet with CSV export and import.","3":"The Design Studio \u2014 click any part of the live preview to style it: seven venue-matched templates, per-element sizes and colours, changes appear instantly, and a copy-paste shortcode.","4":"Commission-free online ordering for diners \u2014 takeaway, collection and delivery, straight from your own site.","5":"The live orders board \u2014 new orders appear by themselves, every order shows where it came from (online, QR table, till, phone), and tomorrow's pre-orders wait in their own Scheduled group. You keep 100%.","6":"The public table-booking form \u2014 live availability, party size and deposits, as a block or shortcode.","7":"Reports \u2014 covers, revenue, no-show rate and your best-selling dishes.","8":"Set-menu events with per-guest pre-orders via a share link, and a consolidated kitchen prep sheet.","9":"Take Order opens on your live floor plan \u2014 every table colour-coded with its stage and timer (Ordered, Cooking, Served), parties seated from the bookings diary already lit, reserved-soon warnings on free tables (\"19:45 \u00b7 4p\", \"free til 21:45\") and settled tables flagged for clearing. The floor and the diary always agree.","10":"The drag-and-drop floor plan \u2014 zones, joinable tables and covers, driving live booking availability.","11":"Kitchen Display \u2014 a live New \u2192 Preparing \u2192 Ready board; every fired round is its own ticket with a wait timer, and a full-screen mode for a kitchen TV.","12":"Staff rota \u2014 the week grouped by role in colour-coded bands with today and tomorrow highlighted, split shifts, automatic unpaid breaks, day-off and sick markers, a live \"who's on today\" panel and a running labour-cost total.","13":"Service carries on when the internet drops \u2014 keep opening tables, adding rounds and firing to the kitchen. Anything not yet sent is clearly marked \"on this device\" and syncs itself the moment you're back online.","14":"The till knows the guest \u2014 open a table and see who's sitting there: VIP flag, allergies, the booking's note and their standing service note, right above the order pad."}},"plugin_section":[61],"plugin_tags":[126475,43684,187656,23280,127709],"plugin_category":[39],"plugin_contributors":[258039],"plugin_business_model":[],"class_list":["post-335395","plugin","type-plugin","status-publish","hentry","plugin_section-featured","plugin_tags-allergen","plugin_tags-online-ordering","plugin_tags-qr-menu","plugin_tags-restaurant-menu","plugin_tags-restaurant-reservations","plugin_category-business","plugin_contributors-weblevelup","plugin_committers-weblevelup"],"banners":{"banner":"https:\/\/ps.w.org\/dinekit\/assets\/banner-772x250.png?rev=3625224","banner_2x":"https:\/\/ps.w.org\/dinekit\/assets\/banner-1544x500.png?rev=3625224","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dinekit\/assets\/icon-128x128.png?rev=3625224","icon_2x":"https:\/\/ps.w.org\/dinekit\/assets\/icon-256x256.png?rev=3625224","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-1.png?rev=3631992","caption":"Your menu on any website \u2014 the Signature template out of the box: dietary filters, UK-14 allergen icons and a one-tap Order online button."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-2.png?rev=3626496","caption":"The Menu Builder \u2014 sections and dishes with allergens and multiple prices, all autosaved. Bulk-edit the whole menu in a spreadsheet with CSV export and import."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-3.png?rev=3631992","caption":"The Design Studio \u2014 click any part of the live preview to style it: seven venue-matched templates, per-element sizes and colours, changes appear instantly, and a copy-paste shortcode."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-4.png?rev=3603454","caption":"Commission-free online ordering for diners \u2014 takeaway, collection and delivery, straight from your own site."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-5.png?rev=3631398","caption":"The live orders board \u2014 new orders appear by themselves, every order shows where it came from (online, QR table, till, phone), and tomorrow's pre-orders wait in their own Scheduled group. You keep 100%."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-6.png?rev=3603454","caption":"The public table-booking form \u2014 live availability, party size and deposits, as a block or shortcode."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-7.png?rev=3603454","caption":"Reports \u2014 covers, revenue, no-show rate and your best-selling dishes."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-8.png?rev=3603454","caption":"Set-menu events with per-guest pre-orders via a share link, and a consolidated kitchen prep sheet."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-9.png?rev=3631398","caption":"Take Order opens on your live floor plan \u2014 every table colour-coded with its stage and timer (Ordered, Cooking, Served), parties seated from the bookings diary already lit, reserved-soon warnings on free tables (\"19:45 \u00b7 4p\", \"free til 21:45\") and settled tables flagged for clearing. The floor and the diary always agree."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-10.png?rev=3621972","caption":"The drag-and-drop floor plan \u2014 zones, joinable tables and covers, driving live booking availability."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-11.png?rev=3623773","caption":"Kitchen Display \u2014 a live New \u2192 Preparing \u2192 Ready board; every fired round is its own ticket with a wait timer, and a full-screen mode for a kitchen TV."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-12.png?rev=3631398","caption":"Staff rota \u2014 the week grouped by role in colour-coded bands with today and tomorrow highlighted, split shifts, automatic unpaid breaks, day-off and sick markers, a live \"who's on today\" panel and a running labour-cost total."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-13.png?rev=3626496","caption":"Service carries on when the internet drops \u2014 keep opening tables, adding rounds and firing to the kitchen. Anything not yet sent is clearly marked \"on this device\" and syncs itself the moment you're back online."},{"src":"https:\/\/ps.w.org\/dinekit\/assets\/screenshot-14.png?rev=3631992","caption":"The till knows the guest \u2014 open a table and see who's sitting there: VIP flag, allergies, the booking's note and their standing service note, right above the order pad."}],"raw_content":"<!--section=description-->\n<p>DineKit turns WordPress into a complete, commission-free restaurant platform \u2014 menus, online ordering, table bookings and card payments \u2014 with nothing to pay per cover, per order or per month. You bring your own Stripe account and keep 100% of every sale.<\/p>\n\n<p><strong>Menus &amp; allergens<\/strong><\/p>\n\n<ul>\n<li><strong>Menu builder<\/strong> \u2014 menus (Lunch, Dinner, Drinks\u2026), sections and dishes with photos, badges and multiple prices; drag-and-drop ordering with autosave.<\/li>\n<li><strong>Seven designer templates, one click apart<\/strong> \u2014 each built for a venue type: Signature (the modern default), Maison for fine dining, Counter for fast-casual, Noir for evening menus and bars, Bistro, Fresh for caf\u00e9s and brunch, Mono for minimalists. The Fraunces display font ships inside the plugin \u2014 no external font services.<\/li>\n<li><strong>Design Studio<\/strong> \u2014 click any part of the live menu preview to style exactly that element: per-element text sizes, colours and corner rounding, updating live as you drag. Your accent colour carries over to the Order Online page automatically, so everything matches your brand.<\/li>\n<li><strong>UK-14 allergens built in<\/strong> \u2014 the 14 regulated allergens pre-loaded with icons, tooltips, sub-sources (e.g. \"cereals containing gluten \u2192 wheat, barley\") and a printable matrix (Natasha's Law friendly), plus your own custom allergens and dietary labels. Declare <strong>\"may contain\" traces<\/strong> separately \u2014 quieter badges on the menu, \u00b1 in the matrix, and diners avoiding an allergen also avoid traces of it.<\/li>\n<li><strong>Bulk-edit in a spreadsheet<\/strong> \u2014 export the whole menu to CSV, tweak prices and dishes in Excel or Google Sheets, re-import to update everything at once (never duplicates).<\/li>\n<li><strong>Costs, margins &amp; calories<\/strong> \u2014 record a dish's cost to make and see its gross-profit margin (kept private), and show calories on the public menu for UK calorie-labelling.<\/li>\n<li><strong>QR table cards<\/strong> and A4 posters that open your live menu on a phone, and <strong>Menu \/ MenuItem \/ LocalBusiness schema.org<\/strong> output for SEO.<\/li>\n<li><strong>Opening hours<\/strong> with holiday overrides and a live \"open now\" status.<\/li>\n<\/ul>\n\n<p><strong>Online ordering<\/strong><\/p>\n\n<ul>\n<li><strong>Takeaway, collection and delivery<\/strong> ordering with a diner-facing menu, dish customizations (removable ingredients, choose-your-options with prices) and an accept \/ hold \/ refund workflow that only captures payment when you accept.<\/li>\n<li><strong>A live orders board<\/strong> \u2014 new orders appear by themselves (no refreshing) with a count in the browser tab; every order carries a \"where's it from\" badge with a channel filter; history is day-scoped and searchable by date; phone orders are keyed in on a fast POS-style pad.<\/li>\n<li><strong>Pre-orders days ahead<\/strong> \u2014 optionally let diners order for later in the week: a Day picker at checkout, only your real opening hours offered, kitchen capacity respected per day, and scheduled orders held in their own group until you accept.<\/li>\n<li><strong>Per-slot capacity<\/strong> \u2014 cap how many online orders each time slot can take so a rush never swamps the pass; full slots grey out in the diner's picker.<\/li>\n<li><strong>Contactless QR \"order at the table\"<\/strong> so diners order from their phone \u2014 straight onto that table's tab, or pay-upfront.<\/li>\n<li><strong>Kitchen Display (KDS)<\/strong> \u2014 a live New \u2192 Preparing \u2192 Ready board for the kitchen, with per-ticket timers, item lists and notes, one-tap advance and a full-screen mode for any tablet or kitchen TV.<\/li>\n<li><strong>Kitchen &amp; bar ticket routing<\/strong> \u2014 printable tickets per station, or emailed directly to a kitchen printer on accept.<\/li>\n<li><strong>86 a dish in one tap<\/strong> \u2014 sold-out dishes stay on the menu (SEO-safe) marked unavailable and can't be ordered anywhere.<\/li>\n<li><strong>Branded, editable email templates<\/strong> for order and booking notifications, with a live preview.<\/li>\n<\/ul>\n\n<p><strong>Point of sale \u2014 Take Order<\/strong><\/p>\n\n<ul>\n<li>A real <strong>POS for dine-in service<\/strong>, in any browser on any tablet \u2014 no proprietary hardware, nothing to lease.<\/li>\n<li><strong>Live floor plan that reads your diary<\/strong> \u2014 Take Order opens on your real room layout: every table colour-coded by how long it's been seated (green \u2192 amber \u2192 red against your turn time) with its stage (Seated \u2192 Ordered \u2192 Cooking \u2192 Served), parties seated from the bookings diary lit before they've even ordered, reserved-soon warnings on free tables (\"free until 22:00\"), and settled tables flagged for clearing. Starting an order on a free table books the walk-in into the diary automatically \u2014 every screen tells the same story.<\/li>\n<li><strong>The till knows the guest<\/strong> \u2014 open a table and see who's sitting there: name, VIP flag, allergies, and their standing notes (\"always tops up the wine\"), pulled from the same guest record the diary uses.<\/li>\n<li><strong>Tabs with coursing<\/strong> \u2014 build each table's order and fire courses in rounds; firing confirms exactly what's being sent and takes a ticket note (\"allergy at seat 2\") that shows on the Kitchen Display and prints on station tickets.<\/li>\n<li><strong>Bill splitting<\/strong> \u2014 evenly, by item, or partial payments; service charge and tips.<\/li>\n<li><strong>Every tender<\/strong> \u2014 cash with change calculation, card via a Stripe smart reader, pay-by-QR from the guest's phone, vouchers and comps; manager-gated voids.<\/li>\n<li><strong>Mistakes are fixable<\/strong> \u2014 pressed voucher but meant cash? Wrong amount? A manager can change a payment's method in place, remove a mis-keyed payment (the tab reopens to settle correctly) or reopen a tab settled by accident \u2014 every amend logged, so the books always tally.<\/li>\n<li><strong>Keeps working when the internet drops<\/strong> \u2014 carry on opening tables, adding rounds, firing to the kitchen and taking cash through an outage. Everything is held on the tablet and syncs itself the moment you're back, with nothing lost and nothing charged twice.<\/li>\n<li><strong>Cash-up<\/strong> with opening float and X\/Z reports at close.<\/li>\n<li><strong>Loyalty built in<\/strong> \u2014 members earn points on spend and redeem them as a bill discount.<\/li>\n<\/ul>\n\n<p><strong>Bookings &amp; events<\/strong><\/p>\n\n<ul>\n<li><strong>Commission-free table reservations<\/strong> \u2014 take bookings on a drag-and-drop floor plan with joinable tables, via a public reservation form (block + <code>[dinekit_booking]<\/code> shortcode) with live availability, waitlist and covers-per-hour pacing, deposits, and a booking diary with email notifications and printable slips. Repeat no-shows get a red flag so you can ask for a deposit.<\/li>\n<li><strong>Full-width service timeline<\/strong> \u2014 the whole service at a glance with a live \"now\" line and the past greyed out; drag a booking exactly where you want it, click to seat or edit. Walk-ins are a one-tap popup with the best-fit table pre-selected.<\/li>\n<li><strong>Set-menu events with per-guest pre-orders<\/strong> via a share link \u2014 guests choose their courses and flag allergens; the kitchen gets a consolidated prep sheet.<\/li>\n<\/ul>\n\n<p><strong>Payments, guests &amp; staff<\/strong><\/p>\n\n<ul>\n<li><strong>Card payments with your own Stripe keys<\/strong> (encrypted at rest) \u2014 booking deposits, order payments and at-the-table card-present payments via Stripe smart readers, with Apple Pay and Google Pay. You keep 100%.<\/li>\n<li><strong>Unified guest CRM<\/strong> \u2014 one profile per guest across bookings, orders and loyalty: lifetime spend, visits, average order, allergies, VIP flag, service notes and past no-shows \u2014 shown on the Guests screen, on every booking, and at the till.<\/li>\n<li><strong>Staff rota &amp; labour<\/strong> \u2014 build the week's rota in colour-coded role bands: split shifts, automatic unpaid-break deduction, day-off and sick markers, holiday requests approved right on the rota, contracted-hours warnings and a live labour-cost total. Today and tomorrow highlight themselves; copying a day copies the whole day.<\/li>\n<li><strong>Text messages via your own Twilio (beta)<\/strong> \u2014 booking confirmations, automatic reminders, \"your table is ready\" and \"order ready for collection\"; bring your own Twilio account, pay their raw prices, every switch off by default (see External Services). Write your own message wording with placeholders like {name} and {time}, with a live preview; on a paid Twilio account, UK venues can send from their restaurant's name instead of buying a number.<\/li>\n<li><strong>Staff logins<\/strong> with a role-to-permission matrix and an activity\/audit log, plus review-request emails to win diners back.<\/li>\n<li><strong>Reports<\/strong> \u2014 covers, revenue, best-selling dishes and no-show rate, with CSV export.<\/li>\n<li><strong>GDPR-ready<\/strong> \u2014 WordPress's Export \/ Erase Personal Data tools cover everything DineKit stores, with anonymised financial records kept for your accounts.<\/li>\n<li><strong>Direct support from your dashboard<\/strong> \u2014 message the DineKit team without leaving WordPress (optional; see External Services).<\/li>\n<\/ul>\n\n<p><strong>Install it as an app<\/strong> on any phone or tablet \u2014 the staff app runs from its own home-screen icon, <strong>keeps taking orders and cash even when the internet drops<\/strong> (syncing itself once you're back), and <strong>many tablets stay in sync automatically<\/strong> (an order or booking made on one appears on the others within seconds).<\/p>\n\n<p>No WooCommerce required and no page builder needed. The menu, allergens and QR codes work with no external accounts; card payments use your own Stripe account (see External Services below). Works with any theme, on any host.<\/p>\n\n<p>Built by <a href=\"https:\/\/weblevelup.co.uk\/\">Web Level Up<\/a>, a UK web agency that builds commercial WordPress software.<\/p>\n\n<h3>External services<\/h3>\n\n<p>DineKit's optional payments feature (booking deposits and online order payments) uses <strong>Stripe<\/strong> to take card payments. Stripe is contacted only after you enable it and enter your own Stripe API keys under DineKit \u2192 Integrations, and only on requests that involve a payment:<\/p>\n\n<ul>\n<li>When a diner pays, DineKit asks Stripe to create a payment by sending the amount, currency, your site URL and the related booking\/order reference to Stripe's API (https:\/\/api.stripe.com).<\/li>\n<li>When you connect Stripe or set up its webhook, DineKit calls Stripe to validate your keys and register payment notifications.<\/li>\n<li>On pages where a payment can be made, Stripe's official Stripe.js library is loaded from https:\/\/js.stripe.com so card details are entered directly with Stripe and never reach your server (PCI SAQ-A).<\/li>\n<\/ul>\n\n<p>If you do not enable payments, DineKit makes no external requests. Stripe is a third-party service; by using it you agree to Stripe's terms and privacy policy:<\/p>\n\n<ul>\n<li>Terms: https:\/\/stripe.com\/legal<\/li>\n<li>Privacy: https:\/\/stripe.com\/privacy<\/li>\n<\/ul>\n\n<p>DineKit's optional <strong>text message (SMS)<\/strong> feature uses <strong>Twilio<\/strong>, with your own Twilio account and credentials (DineKit \u2192 Integrations \u2192 Text messages). Twilio is contacted only when SMS is enabled and a notification you turned on actually fires (a booking confirmation or reminder, a \"table ready\" tap, or a collection order marked ready): DineKit sends the recipient's phone number and the message text to Twilio's API (https:\/\/api.twilio.com) so Twilio can deliver the text. Your Twilio auth token is stored encrypted on your own site. If you do not set up SMS, Twilio is never contacted. Twilio is a third-party service; by using it you agree to Twilio's terms and privacy policy:<\/p>\n\n<ul>\n<li>Terms: https:\/\/www.twilio.com\/en-us\/legal\/tos<\/li>\n<li>Privacy: https:\/\/www.twilio.com\/en-us\/legal\/privacy<\/li>\n<\/ul>\n\n<p>DineKit's optional <strong>direct support<\/strong> feature (DineKit \u2192 Support) sends your support request to Web Level Up, the makers of DineKit, at https:\/\/weblevelup.co.uk. If you have never used Support, this service is never contacted:<\/p>\n\n<ul>\n<li>When you send a request or reply, DineKit transmits the name, email address, subject and message you typed, plus your site address (used to link replies back to your dashboard and keep your ticket history together).<\/li>\n<li>If \u2014 and only if \u2014 you tick the \"include my site details\" box, your WordPress, PHP and DineKit version numbers are attached to help with debugging.<\/li>\n<li>Opening the Support screen fetches your own site's ticket history from the same service.<\/li>\n<li>Once you HAVE made a support request, DineKit periodically checks that same service for replies to your own requests (roughly every 10 minutes, sending only your site's support token) so the notification bell can tell you when the team has answered. No other data is sent, and the check stops entirely if you uninstall or never had a request.<\/li>\n<\/ul>\n\n<p>If you prefer not to use direct support, the Support screen also links to the plugin's free forum at https:\/\/wordpress.org\/support\/plugin\/dinekit\/ \u2014 using the forum sends nothing to Web Level Up. Web Level Up privacy policy: https:\/\/weblevelup.co.uk\/privacy-policy\/<\/p>\n\n<h3>Development<\/h3>\n\n<p>DineKit is open source (GPLv2+). The complete human-readable source \u2014 including the React admin application and the build tooling used to generate the bundled <code>dist\/main.js<\/code> \u2014 is publicly available and maintained at:<\/p>\n\n<p>https:\/\/github.com\/nikutx\/dinekit<\/p>\n\n<p>To build the admin app from source: <code>npm install<\/code> then <code>npm run build<\/code> (Vite). See the repository README for the full development setup.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20dinekit%20need%20woocommerce%3F\"><h3>Does DineKit need WooCommerce?<\/h3><\/dt>\n<dd><p>No. DineKit has zero dependencies.<\/p><\/dd>\n<dt id=\"is%20it%20really%20free%3F%20what%27s%20the%20catch%3F\"><h3>Is it really free? What's the catch?<\/h3><\/dt>\n<dd><p>Everything listed above is free \u2014 the menus, ordering, bookings, the POS, loyalty, all of it. There is no feature-gating and DineKit never takes a cut of your sales. The only cost that exists anywhere is Stripe's own standard card-processing fee if you enable card payments, and that goes to Stripe, not us.<\/p><\/dd>\n<dt id=\"do%20i%20need%20special%20hardware%20for%20the%20pos%3F\"><h3>Do I need special hardware for the POS?<\/h3><\/dt>\n<dd><p>No. Take Order runs in any browser on any tablet, laptop or phone. For card-present payments you can add any standard Stripe smart reader (bought outright from Stripe \u2014 no leases), and kitchen tickets can print via your browser or be emailed straight to a kitchen printer.<\/p><\/dd>\n<dt id=\"does%20dinekit%20take%20table%20reservations%3F\"><h3>Does DineKit take table reservations?<\/h3><\/dt>\n<dd><p>Yes \u2014 commission-free table reservations with live availability, deposits, a waitlist and a booking diary. Diners book from a form on your own site (block or shortcode); no third-party reservation platform, no per-cover fees, and the guest list stays yours.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>Yes. Menu output is self-contained with its own scoped styles, and works on both block and classic themes.<\/p><\/dd>\n<dt id=\"how%20do%20diners%20see%20the%20menu%3F\"><h3>How do diners see the menu?<\/h3><\/dt>\n<dd><p>Add the DineKit Menu block (or the [dinekit_menu] shortcode) to any page. You can also print a QR code for your tables that opens the menu on a phone.<\/p><\/dd>\n<dt id=\"can%20diners%20order%20and%20pay%20at%20the%20table%3F\"><h3>Can diners order and pay at the table?<\/h3><\/dt>\n<dd><p>Yes. Print DineKit's QR table cards \u2014 diners scan, order from their phone, and their order fires straight to the kitchen on that table's tab (or they pay up front, your choice).<\/p><\/dd>\n<dt id=\"who%20owns%20my%20data%3F\"><h3>Who owns my data?<\/h3><\/dt>\n<dd><p>You do. Everything \u2014 menus, bookings, orders, guests \u2014 lives in your own WordPress database on your own hosting. There's no external account holding your customer list, and no vendor that can freeze your funds or your data.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20support%3F\"><h3>How do I get support?<\/h3><\/dt>\n<dd><p>Right from your dashboard: DineKit \u2192 Support messages our team directly and replies land back in the same screen (and your inbox). Prefer not to? The wordpress.org support forum works too \u2014 we watch both.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.17<\/h4>\n\n<ul>\n<li>New: sections can carry a photo and a video \u2014 a new photo\/video button on each section in the Menu Builder puts a banner image, a short video (YouTube, Vimeo or an uploaded file), or both under that section's heading on your public menu. Suggested by a real venue running their menu on DineKit.<\/li>\n<li>New: one-click looks in the Design Studio \u2014 a preset applies a whole style in one tap (template, layout and photos together). Launching with Gallery (photo-first cards for BBQ, burgers and brunch), Classic list, and Chalk wall; more get added as real venues suggest them.<\/li>\n<li>New: the menu spreadsheet round-trip is now lossless \u2014 the CSV export gains ID, Published and Image URL columns and includes hidden seasonal dishes; the import matches dishes by ID (renames work), updates hidden dishes in place instead of duplicating them, can show\/hide dishes in bulk via the Published column, and sets dish photos from image links. Importing never deletes anything.<\/li>\n<li>New: naming the \"Unsectioned\" group turns it into a real section \u2014 click its name in the Menu Builder, type \"Starters\", and it becomes a proper section with those dishes moved in.<\/li>\n<li>Fixed: dropping a dish into a section that belongs to a menu now also puts the dish on that menu \u2014 previously the menu (and its public page) could look empty until you separately ticked the menu inside the dish editor.<\/li>\n<li>Fixed: choosing 1, 2 or 3 columns did nothing on the photo-card grid \u2014 explicit column counts now apply (and still collapse politely on phones).<\/li>\n<li>Fixed: menu cards hardened against page-builder styling \u2014 on sites using Bricks, Elementor and similar builders, the card grid could lose its row spacing and the dish photo could drift from the card's top edge.<\/li>\n<\/ul>\n\n<h4>1.2.16<\/h4>\n\n<ul>\n<li>New: the Design Studio \u2014 Design &amp; Preview became a visual editor: click any part of the live menu preview (a section title, a dish name, a price) and style exactly that element from the panel beside it. Per-element text sizes are new, every matching element lights up so you can see what you're changing, and edits appear instantly without the preview reloading.<\/li>\n<li>New: seven menu looks, each a real use case, one click apart \u2014 every template got a designer's pass and a clear job: Signature (modern restaurants, the new default for fresh installs), Maison for fine dining and tasting menus, Counter for fast-casual, Noir for evening menus and cocktail bars, Bistro for pub classics, Fresh for caf\u00e9s and brunch, Mono for minimalists. The Fraunces display font ships inside the plugin. Existing venues keep whatever template they chose.<\/li>\n<li>New: the dietary filter grew up \u2014 picking filters reads unmistakably (green tick fill for \"show only\", red cross fill for \"avoid\"), a live \"Showing 8 of 14 dishes\" counter answers what filtering did, and the compact dropdown style is now a proper multi-select with allergen icons (avoid milk <em>and<\/em> nuts at once), count badges and one-tap clear.<\/li>\n<li>New: Order Online wears your brand \u2014 the ordering page picks up your accent colour and corner rounding from the Design Studio automatically (your template's accent if you haven't set one), so the reading menu and ordering page finally match.<\/li>\n<li>New: write your own text messages (SMS still beta) \u2014 every SMS trigger has a \"Customise message\" editor showing exactly what guests receive, with placeholders like {name}, {venue} and {time}, a live preview and a counter that warns when you cross one text's worth of characters. On a paid Twilio account, UK venues can send from their restaurant's name \u2014 no phone number needed. Twilio's cryptic setup errors now explain themselves in plain English, and the in-app guide was rewritten from a real cold-start run through Twilio's current console.<\/li>\n<li>Fixed: deleting a menu section could white-screen the admin \u2014 fixed, deleting a section now asks first (its dishes stay, just ungrouped), and any future crash shows a friendly reload card instead of a blank page.<\/li>\n<li>Fixed: venues with \"&amp;\" in their name were sending texts reading \"&amp;\" \u2014 now decoded everywhere.<\/li>\n<li>Fixed: the opening-hours widget used to hard-code dark text and vanish on dark backgrounds \u2014 it now takes its colour from the surrounding theme.<\/li>\n<\/ul>\n\n<h4>1.2.15<\/h4>\n\n<ul>\n<li>New: unified guest book \u2014 every guest's bookings, orders and loyalty in one place: lifetime spend, visits and average order on the Guests screen, and opening a booking shows floor staff who's walking in (VIP, allergies, visits, spend, past no-shows). The guest follows you to the till too: the order pad shows who's at the table, their allergies and their standing notes (\"always tops up the wine\").<\/li>\n<li>New: pre-orders \u2014 let diners order for later in the week: a Day picker on checkout (you choose how many days ahead; off by default), only real opening hours offered, kitchen capacity respected per day. Scheduled orders arrive held for your approval, sit in their own collapsible group on the Orders board, and only join the kitchen screen a configurable lead time before their slot.<\/li>\n<li>New: the Orders board is live \u2014 new orders appear by themselves with a note and a count in the browser tab; history is day-scoped and searchable by date; phone orders are taken on a POS-style pad; every order carries a \"where's it from\" badge with a channel filter.<\/li>\n<li>New: one venue, one read \u2014 booking statuses wear the same colours on every screen; the Take Order floor shows parties seated from the diary, warns when a free table is reserved soon (\"free until 22:00\"), starting an order on a free table books the walk-in into the diary automatically, and settling the bill completes it. The service timeline gains a live \"now\" line with the past greyed out, and drag-to-move bookings lands exactly where you drop.<\/li>\n<li>New: till fix-ups managers actually need \u2014 tap a settled tab in History to change a payment method (\"pressed voucher, meant cash\"), remove a mis-keyed amount (the tab reopens so it can be settled correctly) or reopen it outright; a \"Cancel tab\" escape hatch unwinds an accidentally opened table; clearing a settled table shows the last bill first. Every amend is permission-gated and written to the order's history.<\/li>\n<li>New: firing to the kitchen now confirms exactly what's being sent and takes a ticket note (\"allergy at seat 2 \u2014 no nuts\") that shows on the Kitchen Display and prints on station tickets.<\/li>\n<li>New: rota upgrades \u2014 the shift drawer edits a whole day (split shifts as stacked time blocks with overlap warnings; one save copies the whole day to other days), unpaid breaks deducted automatically on long shifts, day-off and sick markers, and the week grid highlights today and tomorrow with past days greyed.<\/li>\n<li>New: text messages through your own Twilio (beta) \u2014 booking confirmations, automatic reminders, \"your table is ready\" and \"order ready for collection\". Bring your own Twilio account (keys stored encrypted, step-by-step setup guide included), pay Twilio's raw prices, and every switch is off by default. Labelled beta while field-testing completes.<\/li>\n<li>New: \"may contain\" allergen labelling \u2014 declare cross-contamination traces separately from ingredients; quieter badges on every menu style, \u00b1 in the printable matrix, and diners avoiding an allergen also avoid dishes with traces of it.<\/li>\n<li>New: privacy and polish \u2014 WordPress's Export \/ Erase Personal Data tools now cover everything DineKit stores (erasure keeps anonymised financial records for your accounts); the translation template ships; your venue type (caf\u00e9, pub, bakery\u2026) tells search engines the specific schema type; activating the plugin lands you straight in DineKit; and the \"+ New\" button takes a booking or seats a walk-in as a popup over whatever screen you're on.<\/li>\n<li>Fixed: a white-screen crash when typing in the booking popup (WordPress's emoji script clashing with the app); special characters (\u00a3, \u00e9, curly quotes) silently corrupted in order data; settled tables missing their \"needs clearing\" state or staying \"seated\" on the floor; and the floor now self-heals overnight \u2014 tabs and bookings forgotten on previous days close themselves.<\/li>\n<\/ul>\n\n<h4>1.2.14<\/h4>\n\n<ul>\n<li>New: keep serving when the internet drops \u2014 the till carries on working through an outage. Open a table, add rounds, fire to the kitchen and settle up in cash exactly as normal; everything is held safely on the tablet, marked \"on this device\", and posts itself to your books the moment you reconnect. Nothing is lost and nothing is charged twice, even if the connection died halfway through sending. A banner shows how many changes are still waiting, so nobody closes the tablet too early. Card, voucher and comp payments are switched off while you're offline, because those need a live authorisation.<\/li>\n<li>New: bulk-edit your menu in a spreadsheet \u2014 export your whole menu to CSV, tweak prices, descriptions and dishes in Excel or Google Sheets, and re-import to update everything at once. Dishes are matched by name within each section, so re-importing updates your menu rather than duplicating it.<\/li>\n<li>New: cap orders per time slot \u2014 set how many online orders the kitchen can take in each time slot so a rush doesn't swamp the pass. Slots that are already full are greyed out in the diner's time picker, so they choose a time you can actually cook instead of being turned away at the last step.<\/li>\n<li>New: spot repeat no-shows \u2014 a guest who has failed to turn up before now gets a red flag on their booking in the diary and on their card in Guests, so you can decide whether to ask for a deposit.<\/li>\n<li>Fixed: settling a bill now flags the table as needing bussing on the floor plan. It previously never did, so a table you'd just taken payment for didn't show as needing clearing. Any payment type \u2014 cash, card, reader, voucher or comp \u2014 now marks it, and tapping the table clears it as designed.<\/li>\n<li>Fixed: buttons and toggles no longer overflow the screen edge on a phone.<\/li>\n<\/ul>\n\n<h4>1.2.13<\/h4>\n\n<ul>\n<li>New: the staff rota now groups by role \u2014 chefs, servers, bar and so on each get their own colour-coded band, so a busy week reads at a glance (switch back to a flat list any time).<\/li>\n<li>New: build the rota faster \u2014 open a shift and copy its times onto any other days for that person in one go.<\/li>\n<li>New: approve holiday right on the rota \u2014 pending time-off requests show above the grid with one-tap Approve \/ Decline, and an approved day immediately flags any shift that clashes with it.<\/li>\n<li>New: contracted-hours guard \u2014 give a team member their contracted weekly hours and the rota shows each person's scheduled total, turning red when you've rota'd them over contract.<\/li>\n<li>New: menu text size \u2014 a Compact \/ Normal \/ Large \/ X-large control scales your whole public menu's text for wall screens or phones.<\/li>\n<li>New: choose how the menu filter and allergens display \u2014 filter as compact dropdowns instead of chips, and show each dish's allergens as icons, full text, or short codes.<\/li>\n<li>Fixed: menu colours now apply consistently on every layout. The Chalkboard layout used to force its own dark palette and ignore your colour pickers (a background change did nothing); now every layout takes its colours from the chosen template plus your overrides, so the swatches always match what diners see.<\/li>\n<\/ul>\n\n<h4>1.2.12<\/h4>\n\n<ul>\n<li>New: Take Order now opens on your live floor plan \u2014 the exact room layout you built in Floor Plan, colour-coded live (green just seated, amber nearing your table-turn time, red over it) with a timer on every occupied table, so you can see who's in, how long they've been sat and which tables are free to seat next. It scales to fit a phone, a tablet or a big screen.<\/li>\n<li>New: Know which tables need clearing \u2014 once a bill is settled the table shows \"needs bussing\" on the floor; tap it when it's wiped down to mark it ready to seat again.<\/li>\n<li>New: Tapping a table opens the order pad as a pop-up over the floor and closes straight back to it \u2014 a fast, till-like flow instead of jumping to a separate screen and back.<\/li>\n<li>New: Live table timers on the open tab \u2014 how long it's been open, when it opened, how many rounds have gone to the kitchen and how long the current one's been cooking (or how long service took).<\/li>\n<li>New: A table's order history \u2014 a history button shows that table's previous settled bills (date, items, how they paid, total; tap one to see the items), so you can answer \"what did they have last time?\" on the spot.<\/li>\n<li>New: Live on-table timers in the booking diary too \u2014 a seated party's timer turns amber as it nears your turn time and red once it's over, so tables that need turning stand out at a glance.<\/li>\n<li>Improved: The order pad's course tabs now filter the menu to that section (Starters, Mains, Desserts\u2026), and a tab's timeline (opened \/ fired \/ served \/ time-to-serve) shows right on the order screen.<\/li>\n<\/ul>\n\n<h4>1.2.11<\/h4>\n\n<ul>\n<li>New: Install DineKit as an app on any phone or tablet \u2014 it runs from a home-screen icon, separate from wp-admin, keeps loading through a dropped connection, and many tablets stay in sync automatically (an order or booking made on one appears on the others within seconds).<\/li>\n<li>New: Kitchen Display now handles coursing properly \u2014 each round you fire is its own ticket that moves through New \u2192 Preparing \u2192 Ready on its own, so firing mains later never disturbs the starters that are already cooking, and only the new items show.<\/li>\n<li>New: Dish costs, margins &amp; calories \u2014 record a dish's cost to see its gross-profit margin (kept private), and show calories on the public menu for UK calorie labelling.<\/li>\n<li>New: Allergen sub-sources (Natasha's Law) \u2014 pick \"cereals containing gluten\" then choose wheat\/barley\/rye\u2026, or \"tree nuts\" \u2192 almond\/hazelnut\/walnut\u2026; the menu then reads \"cereals containing gluten (wheat, barley)\". Add your own custom allergens too; the 14 legal allergens stay protected.<\/li>\n<li>New: Partial refunds \u2014 refund a whole order or tick just the items that were sent back; card via Stripe, cash recorded.<\/li>\n<li>New: Set your own service charge % right on the bill (saved as your default), and when you split, each person tips their own share.<\/li>\n<li>New: Set-menu events \u2014 edit a guest's pre-order (name, course, company) after they've submitted.<\/li>\n<li>Improved: One booking panel \u2014 click a reservation to mark arrived\/seated, no-show or completed, move the table\/time, add notes or cancel, all in one place; manage several bookings at once; walk-ins auto-seat at the best free table.<\/li>\n<li>Improved: Mark a dish unavailable (86) from the dish editor, prices show your currency symbol as you type, the dish editor is grouped into tidy collapsible sections, and editors open as large centered pop-ups.<\/li>\n<li>Fixed: taking a Card, Voucher or Comp payment no longer opens a stray print tab or crashes the till.<\/li>\n<li>Fixed: orders fired from Take Order now appear on the Kitchen Display, and a table's bill stays open and payable at the till until you actually settle it (the kitchen marking it done no longer closes it).<\/li>\n<li>Fixed: the event pre-order link no longer auto-picks a dish \u2014 each guest actively chooses per course.<\/li>\n<li>Fixed: walk-ins respect your covers-per-hour cap, staff are archived (restorable) instead of hard-deleted, and various confirmations are now proper on-screen dialogs.<\/li>\n<\/ul>\n\n<h4>1.2.10<\/h4>\n\n<ul>\n<li>New: Kitchen Display. A live kitchen board that shows incoming orders as they move through New \u2192 Preparing \u2192 Ready, with a timer on every ticket, clear item lists and kitchen notes, and one tap to move an order along. It auto-refreshes and has a full-screen mode, so you can run it on any tablet or a kitchen TV.<\/li>\n<\/ul>\n\n<h4>1.2.9<\/h4>\n\n<ul>\n<li>New: attach screenshots to your support messages. Paste an image straight into the Support screen (or pick a file) and it's added to your request \u2014 so you can show us the problem, not just describe it. Images are saved to your own site's media library; we only receive the link.<\/li>\n<\/ul>\n\n<h4>1.2.8<\/h4>\n\n<ul>\n<li>New: set your country and restaurant address in Settings. DineKit now speaks your local language for addresses \u2014 \"ZIP code\" and \"State\" in the US, \"Postcode\" and \"County\" in the UK, \"Postal code\" elsewhere \u2014 across the dashboard and your delivery form.<\/li>\n<li>Better local SEO worldwide: your address now feeds Google-friendly LocalBusiness structured data (street, town\/city, postal code, region and country).<\/li>\n<li>Fix: menu prices now report your real currency to search engines. Previously the menu's structured data always said GBP, even for non-UK restaurants.<\/li>\n<\/ul>\n\n<h4>1.2.7<\/h4>\n\n<ul>\n<li>New: a notification bell in the top bar, on every screen, shows what needs your attention right now \u2014 orders to accept, bookings to confirm, your waitlist and pending holiday requests \u2014 and each one is a single click straight to where you deal with it. It only shows things you have permission to action.<\/li>\n<\/ul>\n\n<h4>1.2.6<\/h4>\n\n<ul>\n<li>Support conversations now open at the newest message, so you don't have to scroll to see the latest reply.<\/li>\n<li>Long support threads stay light \u2014 only the most recent messages load, with a \"Show earlier messages\" button for the rest.<\/li>\n<li>Emoji in support messages now display correctly.<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Fix: replies from the support team now appear in your Support screen straight away. On some hosts a cache could hold an older copy of the conversation, so a reply looked like it hadn't arrived \u2014 support replies are now always fetched fresh.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>New: Support \u2014 message the DineKit team straight from your dashboard. No account or key needed: type your name, email and question; replies land back in the same screen (and your inbox). Track all your requests, reply, and mark them solved without leaving WordPress. Optional \u2014 the wordpress.org forum works too, and nothing is ever sent in the background.<\/li>\n<li>New: a \"Common fixes\" panel on the Support screen answers the most frequent questions (QR 404s, missing emails, Stripe test mode\u2026) in under a minute, before you even need to ask.<\/li>\n<li>New: after your first accepted order or confirmed booking, DineKit asks (once, politely) whether you'd leave a review \u2014 fully dismissible, and \"no thanks\" means never again.<\/li>\n<li>Housekeeping: the review-request schedule is now cleaned up when the plugin is deactivated or uninstalled.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Floor plan: deleting a zone now asks first and lets you move its tables to another zone (or remove them) \u2014 and if any of those tables have upcoming bookings, you can reassign each one to a free table before it goes.<\/li>\n<li>Nothing is lost: deleted zones and tables now live in a new \"History\" tab on the floor plan, restorable with one click.<\/li>\n<li>Joined tables are colour-matched on the plan so you can see your table groupings at a glance; a table shared by two joins blends both colours.<\/li>\n<li>Tables show a small orientation marker, so you can tell which way one faces after rotating it.<\/li>\n<li>Fixes: the \"Out of service\" toggle now responds wherever you click it; moving a table to another zone updates the plan straight away; the rotate button lines up with the zone selector; and the min\/max party boxes are tidier.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Smoother onboarding: the setup wizard now walks you through your opening hours, and you can skip ahead and pick up the rest from your dashboard whenever you like.<\/li>\n<li>Menu, ordering and booking pages are created as drafts for you to review and publish \u2014 with a clear \"review &amp; publish\" prompt, and a checklist that only ticks a page off once it's actually live.<\/li>\n<li>Dishes are never lost: removing a dish now archives it (kept for your past orders and reports) and you can restore it any time \u2014 with a heads-up if it's on an order the kitchen is cooking right now.<\/li>\n<li>Online ordering follows your opening hours: orders are only taken while you're open, with an optional \"last orders\" cut-off before closing time.<\/li>\n<li>Table bookings read your opening hours directly, so your service times live in one place.<\/li>\n<li>Polish: tidier fields inside pop-out panels, your cursor stays put while typing, and assorted small performance improvements.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Release-pipeline fix only \u2014 no plugin changes. Superseded by 1.2.2, which carries this line's content.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Release-pipeline fix only \u2014 no plugin changes. Superseded by 1.2.2, which carries this line's content.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Commission-free online ordering \u2014 takeaway, collection and delivery, with a diner-facing menu, dish customizations, and printable kitchen\/bar tickets.<\/li>\n<li>Contactless QR \"order at the table\".<\/li>\n<li>Commission-free table bookings: drag-and-drop floor plan with joinable tables, a public booking form (block + [dinekit_booking] shortcode) with live availability, waitlist, covers-per-hour pacing and deposits.<\/li>\n<li>Booking diary with statuses, email notifications, and printable reservation slips.<\/li>\n<li>Set-menu events with per-guest pre-orders via a share link \u2014 guests choose their courses and flag allergens; the kitchen gets a consolidated prep sheet you can print.<\/li>\n<li>Card payments with your own Stripe keys (encrypted at rest) \u2014 booking deposits and order payments, Apple Pay and Google Pay. You keep 100%.<\/li>\n<li>Guest CRM: repeat diners with the allergies they've told you about, carried across every visit.<\/li>\n<li>Staff logins with a role-to-permission matrix and an activity\/audit log; review-request emails to win diners back.<\/li>\n<li>Dynamic dish customizations (removable ingredients + choose-your-options with prices), six menu templates and colour theming.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<li>Menu builder with menus, sections and items \u2014 photos, badges and multiple prices per item, drag-and-drop ordering, inline editing with autosave.<\/li>\n<li>UK-14 regulated allergens pre-loaded with icons, tooltips and a printable allergen matrix (Natasha's Law friendly).<\/li>\n<li>Dietary labels (vegan, vegetarian, gluten free, halal, spicy \u2014 and your own).<\/li>\n<li>DineKit Menu block and [dinekit_menu] shortcode with three layouts (list, card grid, chalkboard) and 1\u20134 column options.<\/li>\n<li>Design &amp; Preview screen to choose a style and copy the shortcode.<\/li>\n<li>Print-ready QR table cards and A4 posters that open your menu on a phone.<\/li>\n<li>Opening hours with holiday overrides and a live open\/closed status.<\/li>\n<li>Menu, MenuItem and LocalBusiness schema.org output for SEO.<\/li>\n<li>Works with block and classic themes. No dependencies.<\/li>\n<\/ul>","raw_excerpt":"Run your restaurant on WordPress \u2014 menus &amp; allergens, online ordering, table bookings and card payments. Commission-free, no monthly fees.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/335395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=335395"}],"author":[{"embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/weblevelup"}],"wp:attachment":[{"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=335395"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=335395"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=335395"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=335395"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=335395"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=335395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}