{"id":351375,"date":"2026-08-12T12:09:18","date_gmt":"2026-08-12T12:09:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/automaize-restaurant-reservation\/"},"modified":"2026-09-07T08:39:16","modified_gmt":"2026-09-07T08:39:16","slug":"automaize-restaurant-reservation","status":"publish","type":"plugin","link":"https:\/\/af.wordpress.org\/plugins\/automaize-restaurant-reservation\/","author":23333048,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.11.0","stable_tag":"1.11.0","tested":"7.0.4","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Automaize Restaurant Reservation","header_author":"Automaize","header_description":"Simple table reservation system for restaurants. Visitors pick a party size, date and time, see live table availability and receive an instant email confirmation. Add the form to any page with the [amzres_reservation_form] shortcode.","assets_banners_color":"","last_updated":"2026-09-07 08:39:16","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":342,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.10.0":{"tag":"1.10.0","author":"automaize","date":"2026-09-07 08:09:02","revision":3684437},"1.11.0":{"tag":"1.11.0","author":"automaize","date":"2026-09-07 08:39:16","revision":3684487},"1.3.0":{"tag":"1.3.0","author":"automaize","date":"2026-08-12 12:08:53","revision":3643348},"1.5.0":{"tag":"1.5.0","author":"automaize","date":"2026-08-13 07:15:43","revision":3644446},"1.6.0":{"tag":"1.6.0","author":"automaize","date":"2026-08-14 11:23:48","revision":3647239},"1.8.0":{"tag":"1.8.0","author":"automaize","date":"2026-08-19 07:15:12","revision":3654027},"1.9.0":{"tag":"1.9.0","author":"automaize","date":"2026-09-03 08:46:00","revision":3679358}},"upgrade_notice":{"1.11.0":"<p>Adds combining several tables on one reservation. Adds a new database table for it, created automatically on update; safe to update, no manual steps required.<\/p>","1.10.0":"<p>Adds optional large-party confirmation (disabled by default - set a threshold under Settings to turn it on). Safe to update, no manual steps required.<\/p>","1.9.0":"<p>Adds a filter for other plugins to integrate with. Safe to update, no manual steps required.<\/p>","1.8.0":"<p>Adds a Guests screen with per-guest reservation history and staff notes. A new database table is created automatically on update; safe to update, no manual steps required.<\/p>","1.7.0":"<p>Adds an option to turn off reservation duration selection. Safe to update, no manual steps required.<\/p>","1.6.0":"<p>Adds manual reservation entry and editable email templates. Safe to update, no manual steps required.<\/p>","1.5.0":"<p>Adds an optional cancellation email with a custom message, and an email sender name setting. Safe to update, no manual steps required.<\/p>","1.4.0":"<p>Adds a printable daily reservations list. Safe to update, no manual steps required.<\/p>","1.3.0":"<p>Internal renaming for WordPress.org compliance; all existing tables\/settings are migrated automatically. Safe to update.<\/p>","1.2.0":"<p>Adds closed periods (holidays\/vacation) under Settings. Safe to update, no manual steps required.<\/p>","1.1.0":"<p>Adds an optional special requests field; fixes a time slot selection bug. Safe to update, no manual steps required.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.10.0","1.11.0","1.3.0","1.5.0","1.6.0","1.8.0","1.9.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The frontend reservation form.","2":"The Tables admin screen.","3":"The Reservations admin screen.","4":"The opening hours settings screen."}},"plugin_section":[],"plugin_tags":[269,76538,722,20710,34016],"plugin_category":[39,40],"plugin_contributors":[257766],"plugin_business_model":[],"class_list":["post-351375","plugin","type-plugin","status-publish","hentry","plugin_tags-booking","plugin_tags-elementor","plugin_tags-reservation","plugin_tags-restaurant","plugin_tags-table-booking","plugin_category-business","plugin_category-calendar-and-events","plugin_contributors-automaize","plugin_committers-automaize"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/automaize-restaurant-reservation.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Automaize Restaurant Reservation adds a simple, self-contained table booking form to your restaurant website.<\/p>\n\n<p><strong>For the restaurant owner:<\/strong><\/p>\n\n<ul>\n<li>Define your weekly opening hours (per day of the week).<\/li>\n<li>Add closed periods for holidays or vacation, which override the weekly hours for those dates.<\/li>\n<li>Add your tables, each with its own seat count.<\/li>\n<li>Choose which reservation lengths guests can pick from (e.g. 60, 90, 120 minutes), or turn duration selection off entirely so guests just book a table with no fixed length (it's then held until closing time).<\/li>\n<li>Set the email address that should receive new reservation notifications.<\/li>\n<li>Set the sender name shown on reservation emails, instead of \"WordPress\".<\/li>\n<li>Manage and cancel reservations from a simple admin screen, optionally emailing the guest a cancellation notice with your own custom message.<\/li>\n<li>Add reservations manually (phone bookings, walk-ins) straight from the admin screen, with the guest confirmation email optional, combining more than one table with a checkbox for larger groups.<\/li>\n<li>Customize the wording of the guest confirmation, pending-confirmation, now-confirmed and cancellation emails, with placeholders for the reservation details.<\/li>\n<li>Require your own confirmation for large parties: set a party-size threshold above which reservations wait for you to approve them instead of confirming automatically, choosing which table(s) to seat them at (combining several, if needed) when you confirm.<\/li>\n<li>Look up any past guest by name or email and see their full reservation history plus special requests in one place, and keep staff-only notes about them (preferences, allergies, etc.).<\/li>\n<li>Print a clean, ready-to-hand-to-staff daily reservations list for any date.<\/li>\n<\/ul>\n\n<p><strong>For your guests, on the reservation form:<\/strong><\/p>\n\n<ol>\n<li>Enter the number of guests.<\/li>\n<li>Pick a date and how long they'd like to stay.<\/li>\n<li>See, in real time, whether a table is available for that party size and time.<\/li>\n<li>Enter their name, email, optionally a phone number and any special requests, and book instantly.<\/li>\n<li>Receive an email confirmation. The restaurant owner is notified by email as well.<\/li>\n<\/ol>\n\n<p>The plugin matches each reservation to the smallest available table that fits the party size, so a party of two won't tie up your largest table, and automatically prevents double-booking a table for overlapping time windows.<\/p>\n\n<p>No external services or API keys required, and no data ever leaves your site.<\/p>\n\n<h4>AI disclosure<\/h4>\n\n<p>This plugin's code was developed with the assistance of an AI coding tool (Claude, by Anthropic). All code was reviewed and tested by Automaize before release.<\/p>\n\n<h4>Usage<\/h4>\n\n<p>Add the reservation form to any page or post in either of these ways:<\/p>\n\n<ul>\n<li><strong>Shortcode:<\/strong> place <code>[amzres_reservation_form]<\/code> in the page\/post content, in a Shortcode block, or in any widget area that supports shortcodes.<\/li>\n<li><strong>Elementor:<\/strong> drag the \"Restaurant Reservation Form\" widget (listed under the General category) onto the page, if Elementor is active.<\/li>\n<\/ul>\n\n<p>Both display the exact same form; there is nothing extra to configure per placement, since opening hours, tables and durations are all set once under <strong>Reservations<\/strong>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/automaize-restaurant-reservation<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Go to <strong>Reservations \u2192 Tables<\/strong> and add your tables.<\/li>\n<li>Go to <strong>Reservations \u2192 Settings<\/strong> and set your opening hours, allowed reservation durations and notification email. The shortcode is also shown on this screen.<\/li>\n<li>Add the <code>[amzres_reservation_form]<\/code> shortcode to a page, or add the \"Restaurant Reservation Form\" widget in Elementor.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20have%20different%20opening%20hours%20per%20day%3F\"><h3>Can I have different opening hours per day?<\/h3><\/dt>\n<dd><p>Yes. Each day of the week has its own opening\/closing time, and can be marked closed entirely.<\/p><\/dd>\n<dt id=\"can%20i%20close%20the%20restaurant%20for%20a%20holiday%20or%20vacation%3F\"><h3>Can I close the restaurant for a holiday or vacation?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>Reservations \u2192 Settings<\/strong>, add a closed period with a start and end date (and an optional reason, for your own reference). Dates within that range are treated as closed regardless of the weekly opening hours.<\/p><\/dd>\n<dt id=\"can%20i%20print%20a%20list%20of%20the%20day%27s%20reservations%20for%20my%20staff%3F\"><h3>Can I print a list of the day's reservations for my staff?<\/h3><\/dt>\n<dd><p>Yes. On <strong>Reservations<\/strong>, pick a date next to \"Print daily list for\" and click Print. It opens a clean, printer-friendly page listing that day's confirmed reservations by time, with table, party size, guest and contact details.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20two%20guests%20try%20to%20book%20the%20last%20table%20at%20the%20same%20time%3F\"><h3>What happens if two guests try to book the last table at the same time?<\/h3><\/dt>\n<dd><p>Availability is re-checked on the server at the moment a reservation is submitted, so only one of them will succeed; the other is asked to choose a different time.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20send%20confirmation%20emails%3F\"><h3>Does this plugin send confirmation emails?<\/h3><\/dt>\n<dd><p>Yes, it uses <code>wp_mail()<\/code> to send a confirmation to the guest and a notification to the restaurant's configured email address. When you cancel a reservation from the admin screen, you can optionally send the guest a cancellation email with your own custom message.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20sender%20name%20shown%20on%20these%20emails%3F\"><h3>Can I change the sender name shown on these emails?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>Reservations \u2192 Settings \u2192 Email sender name<\/strong>, set the name shown to recipients instead of the WordPress default \"WordPress\". It defaults to your site's name.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20wording%20of%20the%20confirmation%20and%20cancellation%20emails%3F\"><h3>Can I customize the wording of the confirmation and cancellation emails?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>Reservations \u2192 Settings \u2192 Email templates<\/strong>, edit the subject and body of both emails. Placeholders like <code>{guest_name}<\/code>, <code>{date}<\/code>, <code>{time}<\/code> and <code>{details}<\/code> are replaced with the actual reservation details when the email is sent; leave a field blank to restore its default text.<\/p><\/dd>\n<dt id=\"can%20i%20add%20a%20reservation%20myself%2C%20e.g.%20for%20a%20phone%20booking%20or%20walk-in%3F\"><h3>Can I add a reservation myself, e.g. for a phone booking or walk-in?<\/h3><\/dt>\n<dd><p>Yes. On <strong>Reservations<\/strong>, click \"+ Add reservation\", pick date, time and the guest's details, and check the table(s) to seat them at - check more than one to combine tables for a large party. You can choose whether to send the guest a confirmation email; availability is still checked against existing bookings for every table you check.<\/p><\/dd>\n<dt id=\"can%20i%20skip%20asking%20guests%20for%20a%20reservation%20length%3F\"><h3>Can I skip asking guests for a reservation length?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>Reservations \u2192 Settings \u2192 Reservation duration<\/strong>, uncheck \"Ask for a reservation length\". Guests then just pick a date, time and party size; the duration field disappears from the form, and each booked table is held for the rest of that day's service (until closing time) instead of a fixed number of minutes.<\/p><\/dd>\n<dt id=\"can%20i%20require%20my%20own%20confirmation%20for%20large%20groups%3F\"><h3>Can I require my own confirmation for large groups?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>Reservations \u2192 Settings \u2192 Large party confirmation<\/strong>, set a party-size threshold. Reservations above it are not confirmed automatically: the guest gets a \"we're reviewing your request\" email, you get an \"action required\" notification, and the reservation shows up under the <strong>Pending<\/strong> tab on the Reservations screen with an \"Approve\" action. Approving opens a review screen where you check off which table(s) to seat the party at - combine several if one table isn't enough - before confirming; the guest is then emailed that it's now confirmed. Every table involved is held (not offered to anyone else) from the moment the request comes in, even while it's still pending.<\/p><\/dd>\n<dt id=\"can%20i%20see%20a%20guest%27s%20past%20reservations%20in%20one%20place%3F\"><h3>Can I see a guest's past reservations in one place?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Reservations \u2192 Guests<\/strong>, search by name or email, and open a guest to see every reservation they've made (including any special requests they entered) plus a staff-only notes log where you can jot down things like preferences or allergies. Guests are matched by email address. You can also get there directly by clicking a guest's name on the Reservations screen.<\/p><\/dd>\n<dt id=\"does%20this%20require%20any%20external%20services%20or%20api%20keys%3F\"><h3>Does this require any external services or API keys?<\/h3><\/dt>\n<dd><p>No. Everything runs on your own WordPress installation.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20elementor%3F\"><h3>Does this work with Elementor?<\/h3><\/dt>\n<dd><p>Yes, a native \"Restaurant Reservation Form\" widget is available in the Elementor editor (under the General category) whenever Elementor is active. It renders the exact same form as the <code>[amzres_reservation_form]<\/code> shortcode.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20breakdance%20or%20other%20page%20builders%3F\"><h3>Does this work with Breakdance or other page builders?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>[amzres_reservation_form]<\/code> shortcode in your page builder's Shortcode or Code\/HTML element (Breakdance, Divi, Bricks, etc. all provide one). The form works the same way everywhere it's placed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.11.0<\/h4>\n\n<ul>\n<li>Added the ability to combine several tables on one reservation: check more than one table when adding a reservation manually, or when approving a pending large-party reservation. Table availability checks and the \"Table\" column\/emails now account for every table on a reservation, not just one. Combined seat capacity is only a soft check - it's flagged after saving, never blocked.<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>Added large-party confirmation: set a party-size threshold above which reservations need your active approval before they count as confirmed, instead of confirming automatically. Includes new \"pending confirmation\" and \"now confirmed\" guest emails (both editable), a Pending tab and Approve action on the Reservations screen, and an admin notice when reservations are waiting.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>New: <code>amzres_hours_for_date<\/code> filter, so other plugins can open (or further restrict) a specific date for reservations - e.g. an events plugin making a normally closed day bookable for an event.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Added a Guests screen: look up any past guest by name or email and see their full reservation history (including special requests) in one place, plus a staff-only notes log for preferences, allergies, etc. Guest names on the Reservations screen now link directly to their profile.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Added a way to turn off reservation duration selection entirely: guests just pick a date, time and party size, and the table is held until closing time instead of a fixed length.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Added a way to add reservations manually from the admin screen (e.g. for phone bookings or walk-ins), with the guest confirmation email optional.<\/li>\n<li>Added editable email templates: customize the subject and body of the guest confirmation and cancellation emails under Settings, with placeholders for the reservation details.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added an optional cancellation email: when cancelling a reservation from the admin screen, you can now include your own custom message, or skip the email entirely.<\/li>\n<li>Added an \"Email sender name\" setting so reservation emails no longer show \"WordPress\" as the sender.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added a printable daily reservations list: pick a date on the Reservations screen to open a clean, print-ready page for handing to staff.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Renamed all internal function, class, hook and option names to use a unique <code>amzres_<\/code>\/<code>AMZRES_<\/code> prefix (previously <code>arr_<\/code>\/<code>ARR_<\/code>, which was too short and could conflict with other plugins), per WordPress.org plugin review requirements. Existing data is migrated automatically on update; no action needed.<\/li>\n<li>Removed the bundled German translation files. Translations for WordPress.org-hosted plugins are managed automatically via translate.wordpress.org.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added closed periods (holidays, vacation): date ranges under Settings that override the weekly opening hours.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added an optional \"Special requests\" field to the reservation form, shown to the restaurant owner in the admin reservations list and in both emails.<\/li>\n<li>Fixed the time selector only ever showing one bookable time slot in some setups.<\/li>\n<li>Fixed the anti-spam honeypot field being visible when the form was rendered outside the shortcode's own page content (e.g. some page builder widgets).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A simple table reservation system for restaurants. Guests check live availability by party size and time, then get an instant email confirmation.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/351375","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/af.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/af.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=351375"}],"author":[{"embeddable":true,"href":"https:\/\/af.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/automaize"}],"wp:attachment":[{"href":"https:\/\/af.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=351375"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=351375"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=351375"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=351375"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=351375"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=351375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}