

The booking form on a restaurant site: guests pick the party size and day, then a free time.
Flexatech Table Reservations takes table bookings on your own site. Guests pick a party size, a day and a free time, then leave their name and a way to reach them. The plugin finds a table that fits, and you see every booking in the admin, day by day.
[fxtr_reservation_form] shortcode.[fxtr_manage_reservation] shortcode. No account needed.The plugin works without any of the services below. The deactivation survey is the only one on by default, and it runs only in the admin. Every other service is off until you turn it on or fill in its keys.
When you go to deactivate Flexatech Table Reservations on the Plugins screen, a short optional survey asks why. It is served by Flexa’s product intelligence service at https://product-intelligence.flexacommerce.com. It runs only on wp-admin/plugins.php, never on the front end, and never blocks deactivation.
What is sent, and when:
/api/v1/config (product slug and tier) to load the survey configuration. The answer is cached for 6 hours./api/v1/deactivations, /api/v1/events, /api/v1/feedback, /api/v1/feature-requests and /api/v1/recovery-events.Every request includes an anonymous per-site identifier (a random UUID), the plugin version and tier. By default the survey also sends your WordPress version, PHP version and locale. No email, site domain, user identity, IP address or reservation data is collected. To stop sending the environment details, use add_filter( 'fxtr_deactivation_survey_config', fn( $c ) => [ 'collect_environment' => false ] + $c );. To turn the survey off completely, use add_filter( 'fxtr_deactivation_survey_enabled', '__return_false' );.
Flexa Terms of Service: https://flexacommerce.com/pages/terms
Flexa Privacy Policy: https://flexacommerce.com/pages/privacy
Copies bookings to a Google calendar you choose, and can read a second calendar whose events block online booking at those times. It runs only after you connect a Google account in the Google Calendar tab, with an OAuth client you create in Google Cloud.
Google Terms of Service: https://policies.google.com/terms
Google Privacy Policy: https://policies.google.com/privacy
Google APIs Terms of Service: https://developers.google.com/terms
When you tick “Sign in with Google on the booking form”, the guest’s browser loads https://accounts.google.com/gsi/client on the booking page. A guest who uses the button shares their name and email address from their Google account, which fill in the form. Nothing is sent to Google from your server.
Google Terms of Service: https://policies.google.com/terms
Google Privacy Policy: https://policies.google.com/privacy
When you fill in a Turnstile site key and secret key, the guest’s browser loads https://challenges.cloudflare.com/turnstile/v0/api.js on the booking page to check that the guest is a person. When the form is sent, your site sends the Turnstile answer, your secret key and the guest’s IP address to https://challenges.cloudflare.com/turnstile/v0/siteverify.
Cloudflare Website Terms of Use: https://www.cloudflare.com/website-terms/
Cloudflare Privacy Policy: https://www.cloudflare.com/privacypolicy/
When you tick “Show a map”, the booking page shows a Google Maps embed (https://maps.google.com/maps) of the restaurant address you entered. The guest’s browser loads it from Google. The directions link next to the address also opens Google Maps. Only the restaurant’s address is sent, never guest data.
Google Maps Terms of Service: https://maps.google.com/help/terms_maps/
Google Privacy Policy: https://policies.google.com/privacy
When you fill in a webhook URL, your site sends a JSON POST to that URL when a booking is made, changes status or moves. The body holds the booking, including the guest’s name, phone, email, party size, date, time and notes. The URL is one you choose and control, so its terms and privacy policy are those of whoever runs it.
The admin screen is a React app compiled into assets/dist. Its source ships with the plugin in apps/admin/src, together with the build files: package.json, pnpm-lock.yaml, apps/admin/vite.config.ts and apps/admin/tsconfig.json.
To build it:
npm install -g pnpm).pnpm install in the plugin folder.pnpm build. The files are written to assets/dist.The JavaScript and CSS in assets/js and assets/css are not compiled and can be read as they are.