
內容簡介
Zenchef widget integration 外掛讓餐廳能夠將 Zenchef 預約小工具直接整合到網站的所有頁面,讓顧客無需切換頁面即可進行預約,提升使用體驗。
【主要功能】
• 自動在所有頁面顯示預約小工具
• 可依需求自訂小工具設定
• 支援短碼在特定頁面嵌入小工具
外掛標籤
開發者團隊
原文外掛簡介
This plugin allows you to integrate your restaurant’s Zenchef reservation widget directly on all pages of your website, allowing your customers to take reservations directly without having to switch page.
You can also customize the integration according to your needs.
Usage
Default (global) widget
Once your restaurant’s ID is set, the widget is added automatically to every page of your website, with a floating booking button positioned according to the settings.
Shortcode
You can also place the widget inline on a specific page or post using the [zenchef_widget] shortcode. With no attributes, it uses the same settings as the global widget:
[zenchef_widget]
You can override any of the settings per-page (useful for sites managing several restaurants):
[zenchef_widget restaurant_id="367219" open_delay="0" position="center"]
All of the settings from the admin page can be overridden as shortcode attributes:
[zenchef_widget restaurant_id="367219" language="fr" primary_color="#cc0000" hide_button="1" auto_open="0" disable_gtm="1" disable_ga4="1"]
When the shortcode is used on a page, the floating global widget is not also injected, so there is never a duplicate.
Tip for the Gutenberg editor: Insert the shortcode using a Shortcode block (Add Block / Shortcode), not a Paragraph block — Paragraph blocks can auto-format quotes and break the attributes. The widget only renders on the front-end of your site; Gutenberg does not preview shortcodes inside the editor.
Support
For plugin support, please visit the support center.
Privacy policy
Our reservation widget plugin relies on the Zenchef service to enable restaurants to manage table reservations directly from their website. It requires a subscription to Zenchef.
Purpose
The Zenchef service is integrated into our plugin to provide a reservation widget on the restaurant’s website, allowing customers to reserve tables online seamlessly.
Data Transmission
User data is transmitted to Zenchef when a customer makes a reservation or updates their reservation details through the widget.
What is stored on the visitor’s device
The plugin itself sets no cookies and uses no local storage. However, it loads the Zenchef SDK from https://sdk.zenchef.com/v1/sdk.min.js, which embeds the booking widget in an iframe served from bookings.zenchef.com. That iframe writes to the visitor’s device as soon as the page loads, before the visitor interacts with the widget:
aws-waf-token (cookie) – distinguishes visitors from automated traffic
awswaf_session_storage, awswaf_token_refresh_timestamp (local storage) – distinguishes visitors from automated traffic
unleash:repository:sessionId, unleash:repository:repo (local storage) – keeps feature rollouts consistent across visits
bugsnag-anonymous-id (local storage) – groups error reports from the same device
Note that local storage counts as storage on terminal equipment under ePrivacy Article 5(3) (and §25 TDDDG in Germany), just as cookies do.
The rest is written only once the visitor does something:
formDataFromCookies (cookie) – written when the guest ticks “Save the information for my next reservations” and books. Holds their name, email, phone, country and postcode so the form can be pre-filled next time. Cleared when the browser closes, and deleted if the box is unticked.
zc_popup_* (local storage, on your own domain) – written when the visitor dismisses a widget popup, so it is not shown again for 14 days.
adyen-checkout__checkout-attempt-id (local storage) – written at a payment step, at restaurants that take payment through Adyen.
__stripe_mid, __stripe_sid (cookies) – written at a payment step, at restaurants that take payment through Stripe.
If your restaurant takes prepayments or card imprints, the payment step also loads your payment provider’s own scripts, and Adyen’s checkout includes a Google Pay button loaded from pay.google.com. That does not happen anywhere else in the flow.
Your own analytics are separate. If you enter a Google Analytics, Google Tag Manager or Meta Pixel ID under Guest analytics in Zenchef OS, those load inside the widget too, using your own tracking properties, and set their usual cookies (_ga, _fbp, and so on). The plugin cannot tell whether you have configured them, so it does not declare them to your consent plugin – treat them the same way you treat the analytics on the rest of your site.
Depending on your jurisdiction and how you use the widget, you may need to obtain the visitor’s consent before this happens. The plugin is built to make that possible:
The SDK is loaded by its real URL, so consent platforms that block third-party scripts by URL can detect and block it without any configuration from us.
The plugin registers with the WP Consent API (https://wordpress.org/plugins/wp-consent-api/) and declares the storage above, so compatible consent plugins can list it accurately.
The filters documented under Hooks let you suppress loading or add whatever attributes your consent banner blocks on.
Because the SDK is an external script, WordPress also emits a dns-prefetch hint for sdk.zenchef.com. That resolves the domain ahead of time but transfers no data and stores nothing on the visitor’s device. It is removed automatically when zenchef_widget_should_load returns false; note that it is not removed when a consent platform blocks the script by URL, since the hint is a separate element the platform does not touch.
This is a matter for your own legal assessment; the above is a description of the plugin’s behaviour, not legal advice.
Hooks
zenchef_widget_should_load (bool) – return false to suppress the SDK, the widget configuration element and the DNS prefetch hint entirely, for instance until consent has been given.
zenchef_widget_script_attributes (array) – attributes of the SDK script tag. Add whatever your consent banner blocks on. Passed $attributes, $handle, $src. The id attribute is re-applied afterwards and cannot be changed – the SDK locates its own script element by that id and will not start without it.
zenchef_widget_consent_category (string) – the WP Consent API category the widget’s non-essential storage is declared under. Defaults to statistics.
Suppress the widget until your own code decides otherwise:
add_filter( 'zenchef_widget_should_load', function () {
return my_visitor_has_consented();
} );
Mark the script for a banner that blocks by attribute:
add_filter( 'zenchef_widget_script_attributes', function ( $attributes ) {
$attributes['type'] = 'text/plain';
$attributes['data-cookieconsent'] = 'statistics';
return $attributes;
} );
Read more
Zenchef.
Terms of Use
Privacy policy
