Title: Bayle Booking Widget
Author: Bayle
Published: <strong>October 24, 2026</strong>
Last modified: October 24, 2026

---

Search plugins

![](https://ps.w.org/bayle-booking-widget/assets/banner-772x250.png?rev=3762953)

![](https://ps.w.org/bayle-booking-widget/assets/icon-256x256.png?rev=3762953)

# Bayle Booking Widget

 By [Bayle](https://profiles.wordpress.org/bayle/)

[Download](https://downloads.wordpress.org/plugin/bayle-booking-widget.0.3.0.zip)

 * [Details](https://wordpress.org/plugins/bayle-booking-widget/#description)
 * [Reviews](https://wordpress.org/plugins/bayle-booking-widget/#reviews)
 *  [Installation](https://wordpress.org/plugins/bayle-booking-widget/#installation)
 * [Development](https://wordpress.org/plugins/bayle-booking-widget/#developers)

 [Support](https://wordpress.org/support/plugin/bayle-booking-widget/)

## Description

Bayle Booking Widget embeds the Bayle reservation form on a WordPress page.

This plugin is an interface to the Bayle booking service at `https://widget.bayle.
food`. You need an active Bayle restaurant with the booking widget module turned
on. The plugin stores only the restaurant slug and widget base URL. It does not 
store API keys and does not call Bayle food APIs from PHP.

Booking finishes inside the iframe. Guest name, email, phone, and optional notes
entered in the form are sent to Bayle to create the reservation.

Add the **Bayle Booking** block, or the shortcode `[bayle_booking]`.

### External services

This plugin connects to the Bayle booking service, operated by Bayle (https://bayle.
food). It is required: without it there is no booking form.

 * Service: Bayle booking widget, loaded in an iframe from `https://widget.bayle.
   food` (or another official `https://*.bayle.food` host set by the site admin).
 * When: every time a visitor loads a page that contains the Bayle Booking block
   or the `[bayle_booking]` shortcode, and when the visitor submits a reservation.
 * What is sent: the restaurant slug and optional language code in the iframe URL;
   the visitor’s IP address and the embedding site’s address (referrer origin) as
   part of the normal page request; and, on submit, the reservation details the 
   visitor types (name, email, phone, party size, date, time, optional notes).
 * Human verification: inside the iframe, the form runs a Cap.js proof-of-work captcha
   from Bayle’s own captcha service at `https://captcha.bayle.food` (the challenge
   script and verification API are loaded from that host when the visitor fills 
   in the form). No Google reCAPTCHA or other third-party captcha is used, and the
   plugin itself does not load this script on your site.
 * Why: to show live table availability and create the booking with the restaurant.
 * Terms of Service: https://bayle.food/legal/terms/
 * Privacy Policy: https://bayle.food/legal/privacy/

The plugin itself makes no server-side requests to Bayle, sets no cookies and adds
no tracking.

### Shortcode

Basic:

    ```
    [bayle_booking]
    ```

Override the slug or language on one page:

    ```
    [bayle_booking slug="demo-pizza" lang="fi"]

    base_url can also be overridden, but only with an official `https://*.bayle.food` address; other values are ignored.

    lang is matched to the restaurant's enabled storefront locales. If omitted, the plugin sends the WordPress site language.
    ```

## Screenshots

[⌊The Bayle booking form embedded on a restaurant page: guests pick party size, 
date and a free time, then send the request without leaving your site.⌉⌊The Bayle
booking form embedded on a restaurant page: guests pick party size, date and a free
time, then send the request without leaving your site.⌉[

The Bayle booking form embedded on a restaurant page: guests pick party size, date
and a free time, then send the request without leaving your site.

[⌊Add the Bayle Booking block in the editor. Optionally set a different restaurant
slug or language for this block.⌉⌊Add the Bayle Booking block in the editor. Optionally
set a different restaurant slug or language for this block.⌉[

Add the Bayle Booking block in the editor. Optionally set a different restaurant
slug or language for this block.

[⌊Settings → Bayle Booking Widget: enter your Bayle restaurant slug. No API keys
are needed.⌉⌊Settings → Bayle Booking Widget: enter your Bayle restaurant slug. 
No API keys are needed.⌉[

Settings  Bayle Booking Widget: enter your Bayle restaurant slug. No API keys are
needed.

## Blocks

This plugin provides 1 block.

 *   Bayle Booking Embed the Bayle table booking form.

## Installation

 1. Upload the `bayle-booking-widget` folder to `/wp-content/plugins/`, or install 
    the zip from Plugins  Add New  Upload Plugin.
 2. Activate **Bayle Booking Widget**.
 3. Open **Settings  Bayle Booking Widget**.
 4. Set the restaurant slug (from Bayle restaurant CMS). Leave the widget base URL 
    as `https://widget.bayle.food` unless Bayle gave you another host.
 5. Optionally lock this site in restaurant CMS  Booking widget allowed hosts.
 6. Insert the **Bayle Booking** block, or `[bayle_booking]`, on a page.

## FAQ

### Do I need API keys in WordPress?

No. Keys stay on Bayle servers. WordPress only iframes the public widget URL.

### Why is the form blank or “unavailable”?

The restaurant slug must be correct, the booking widget module must be on, and the
restaurant must be active. If you locked allowed hosts in CMS, this WordPress hostname
must be on that list.

### Where does guest data go?

Name, email, phone, and notes are submitted inside the Bayle iframe to create the
reservation. This plugin does not keep a copy in the WordPress database.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Bayle Booking Widget” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Bayle ](https://profiles.wordpress.org/bayle/)

[Translate “Bayle Booking Widget” into your language.](https://translate.wordpress.org/projects/wp-plugins/bayle-booking-widget)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/bayle-booking-widget/),
check out the [SVN repository](https://plugins.svn.wordpress.org/bayle-booking-widget/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/bayle-booking-widget/)
by [RSS](https://plugins.trac.wordpress.org/log/bayle-booking-widget/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.3.0

 * Block is now registered from block.json.
 * Shortcode `base_url` override only accepts official `https://*.bayle.food` hosts;
   anything else falls back to the admin setting.
 * Added suggested privacy policy text (Settings  Privacy).
 * Added translation template (languages/bayle-booking-widget.pot) and GPLv2 LICENSE.
 * Expanded External services section (including the captcha host) with Terms of
   Service and Privacy Policy links.
 * Tested up to WordPress 7.1.

#### 0.2.0

 * Gutenberg block, translatable strings, and a production-ready install zip.

#### 0.1.0

 * Initial release with settings page and iframe shortcode.

## Meta

 *  Version **0.3.0**
 *  Last updated **1 week ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [booking](https://wordpress.org/plugins/tags/booking/)[iframe](https://wordpress.org/plugins/tags/iframe/)
   [reservation](https://wordpress.org/plugins/tags/reservation/)[restaurant](https://wordpress.org/plugins/tags/restaurant/)
 *  [Advanced View](https://wordpress.org/plugins/bayle-booking-widget/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/bayle-booking-widget/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/bayle-booking-widget/reviews/)

## Contributors

 *   [ Bayle ](https://profiles.wordpress.org/bayle/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/bayle-booking-widget/)