Documentation

Javis Booking Pro · v5.10.5 · Documentation

The complete handbook for your WordPress booking, reservation & CRM platform.

Everything you need to install, configure, customize and extend Javis Booking Pro — the all-in-one online booking plugin built for restaurants, spas, salons, cafés, cruises, clinics and service-based businesses on WordPress. From a five-minute setup to deep developer hooks, this manual is the single source of truth maintained by the JavisTab team.

Javis Booking Pro · v5.10.5 · Documentation

Le manuel complet de votre plateforme WordPress de réservation et de CRM.

Tout ce dont vous avez besoin pour installer, configurer, personnaliser et étendre Javis Booking Pro — le plugin tout-en-un de réservation en ligne conçu pour les restaurants, spas, salons, cafés, croisières, cliniques et entreprises de services sur WordPress. De l’installation en cinq minutes aux hooks développeurs, ce manuel est la référence unique maintenue par l’équipe JavisTab.

Javis Booking Pro · v5.10.5 · Dokumentation

Das vollständige Handbuch für Ihre WordPress-Buchungs– & CRM-Plattform.

Alles, was Sie brauchen, um Javis Booking Pro zu installieren, zu konfigurieren, anzupassen und zu erweitern — das All-in-One-Online-Buchungs-Plugin für Restaurants, Spas, Salons, Cafés, Kreuzfahrten, Kliniken und Dienstleistungsunternehmen auf WordPress. Von der Fünf-Minuten-Einrichtung bis zu tiefen Entwickler-Hooks: dieses Handbuch ist die einzige Referenz, gepflegt vom JavisTab-Team.

Latest stable · v5.10.5Dernière version stable · v5.10.5Aktuelle Stabilversion · v5.10.5 WordPress 5.8+ · PHP 7.0+WordPress 5.8+ · PHP 7.0+WordPress 5.8+ · PHP 7.0+ 14 languages · RTL ready14 langues · prêt RTL14 Sprachen · RTL-fähig GDPR · EU VAT · PCI-DSSRGPD · TVA UE · PCI-DSSDSGVO · EU-MwSt. · PCI-DSS
Chapter 01 · SetupChapitre 01 · InstallationKapitel 01 · Einrichtung

Getting Started with Javis Booking ProDémarrer avec Javis Booking ProErste Schritte mit Javis Booking Pro

Install, activate and configure Javis Booking Pro for your first online booking in under ten minutes. This chapter walks you through requirements, installation, license activation, the guided setup wizard, and your first booking form on a live page.

Installez, activez et configurez Javis Booking Pro pour votre première réservation en ligne en moins de dix minutes. Ce chapitre couvre les prérequis, l’installation, l’activation de la licence, l’assistant de configuration guidé et votre premier formulaire de réservation publié.

Installieren, aktivieren und konfigurieren Sie Javis Booking Pro in unter zehn Minuten für Ihre erste Online-Buchung. Dieses Kapitel führt Sie durch Voraussetzungen, Installation, Lizenzaktivierung, den geführten Einrichtungsassistenten und Ihr erstes Buchungsformular auf einer Live-Seite.

System requirementsConfiguration requiseSystemanforderungen

WP

WordPressWordPressWordPress

5.8 or newer. Tested up to the latest stable release. Multisite supported.

5.8 ou supérieur. Testé jusqu’à la dernière version stable. Multisite pris en charge.

5.8 oder neuer. Bis zur aktuellen Stabilversion getestet. Multisite-fähig.

PHP

PHPPHPPHP

7.0 minimum. 8.1+ strongly recommended for performance and the async job queue.

7.0 minimum. 8.1+ fortement recommandé pour les performances et la file de tâches asynchrones.

Mindestens 7.0. 8.1+ wird für Performance und Job-Queue dringend empfohlen.

DB

MySQL / MariaDBMySQL / MariaDBMySQL / MariaDB

MySQL 5.6+ / MariaDB 10.1+ with InnoDB engine (required for atomic payment locks).

MySQL 5.6+ / MariaDB 10.1+ avec moteur InnoDB (requis pour les verrous de paiement atomiques).

MySQL 5.6+ / MariaDB 10.1+ mit InnoDB-Engine (für atomare Zahlungssperren erforderlich).

ServerServeurServer

128 MB PHP memory minimum (256 MB recommended). Outbound HTTPS for payment webhooks.

128 Mo de mémoire PHP minimum (256 Mo recommandé). HTTPS sortant pour les webhooks de paiement.

Mindestens 128 MB PHP-Speicher (empfohlen 256 MB). Ausgehende HTTPS für Zahlungs-Webhooks.

Email deliveryLivraison e-mailE-Mail-Zustellung

A working SMTP service (Postmark, SendGrid, Mailgun, Amazon SES, or any SMTP host). Required for confirmations and reminders.

Un service SMTP fonctionnel (Postmark, SendGrid, Mailgun, Amazon SES ou tout hôte SMTP). Requis pour les confirmations et rappels.

Ein funktionierender SMTP-Dienst (Postmark, SendGrid, Mailgun, Amazon SES oder beliebiger SMTP-Host). Erforderlich für Bestätigungen und Erinnerungen.

🔒

SSL / HTTPSSSL / HTTPSSSL / HTTPS

Mandatory if you accept online payments (Stripe, PayPal, Square, Razorpay, OnePay).

Obligatoire si vous acceptez les paiements en ligne (Stripe, PayPal, Square, Razorpay, OnePay).

Pflicht bei Online-Zahlungen (Stripe, PayPal, Square, Razorpay, OnePay).

InstallationInstallationInstallation

  1. Download the plugin ZIP

    Téléchargez le ZIP du plugin

    Plugin-ZIP herunterladen

    Sign in to your JavisTab account and download the latest javis-bookingpro.zip. You will also receive your license key by email.

    Connectez-vous à votre compte JavisTab et téléchargez le dernier javis-bookingpro.zip. Votre clé de licence vous est envoyée par e-mail.

    Melden Sie sich in Ihrem JavisTab-Konto an und laden Sie die neueste javis-bookingpro.zip herunter. Sie erhalten Ihren Lizenzschlüssel per E-Mail.

  2. Upload & activate

    Téléverser et activer

    Hochladen & aktivieren

    In your WordPress admin, open Plugins → Add New → Upload Plugin, choose the ZIP file, click Install Now, then Activate. A new Javis Booking menu item appears in the sidebar.

    Dans l’admin WordPress, ouvrez Extensions → Ajouter → Téléverser une extension, choisissez le ZIP, cliquez sur Installer, puis sur Activer. Un nouvel élément Javis Booking apparaît dans la barre latérale.

    Öffnen Sie im WordPress-Admin Plugins → Installieren → Plugin hochladen, wählen Sie das ZIP, klicken Sie auf Jetzt installieren und dann auf Aktivieren. In der Seitenleiste erscheint der Menüpunkt Javis Booking.

  3. Activate your license

    Activer votre licence

    Lizenz aktivieren

    Go to Javis Booking → License, paste the key from your purchase email and click Activate. Without a valid license the booking form is still visible to visitors but the REST endpoint POST /rbp/v1/bookings returns 503 so no new bookings can be saved.

    Allez dans Javis Booking → Licence, collez la clé reçue par e-mail et cliquez sur Activer. Sans licence valide, le formulaire reste visible mais l’endpoint REST POST /rbp/v1/bookings renvoie 503, bloquant toute nouvelle réservation.

    Öffnen Sie Javis Booking → Lizenz, fügen Sie den Schlüssel aus Ihrer Kauf-E-Mail ein und klicken Sie auf Aktivieren. Ohne gültige Lizenz bleibt das Formular sichtbar, der REST-Endpunkt POST /rbp/v1/bookings liefert jedoch 503, sodass keine neuen Buchungen gespeichert werden.

  4. Run the Setup Wizard

    Lancer l’assistant de configuration

    Einrichtungsassistent ausführen

    A six-step wizard launches automatically on first activation: Business profile, Currency & timezone, Opening hours, Resources (tables / rooms / staff), Notifications and Payments. You can re-run it any time from Javis Booking → Setup Wizard.

    Un assistant en six étapes s’ouvre à la première activation : Profil entreprise, Devise & fuseau horaire, Horaires d’ouverture, Ressources (tables / chambres / personnel), Notifications et Paiements. Relançable à tout moment via Javis Booking → Assistant.

    Ein sechsstufiger Assistent startet automatisch bei der Erstaktivierung: Geschäftsprofil, Währung & Zeitzone, Öffnungszeiten, Ressourcen (Tische / Räume / Personal), Benachrichtigungen und Zahlungen. Jederzeit erneut über Javis Booking → Einrichtungsassistent startbar.

  5. Publish your booking form

    Publier votre formulaire de réservation

    Buchungsformular veröffentlichen

    Create a new WordPress page (e.g. Book a Table) and paste the shortcode [rbp_booking-form]. Save and view the page — your live booking form is ready.

    Créez une nouvelle page WordPress (ex. Réserver une table) et collez le shortcode [rbp_booking-form]. Enregistrez et visualisez la page — votre formulaire est en ligne.

    Erstellen Sie eine neue WordPress-Seite (z. B. Tisch buchen) und fügen Sie den Shortcode [rbp_booking-form] ein. Speichern und Seite ansehen — Ihr Formular ist live.

Tip — try a sandbox booking first.Astuce — essayez d’abord une réservation de test.Tipp — testen Sie zuerst eine Sandbox-Buchung. Before going live, switch every gateway under Settings → Payments into Test mode and submit a complete booking from start to finish. Confirm that the customer email, admin email and admin dashboard all show the booking — this catches 90% of SMTP / webhook misconfiguration before any real customer hits the form. Avant la mise en production, activez le mode test de chaque passerelle dans Paramètres → Paiements et soumettez une réservation complète. Vérifiez que l’e-mail client, l’e-mail admin et le tableau de bord affichent bien la réservation — cela résout 90 % des problèmes SMTP / webhook avant tout vrai client. Aktivieren Sie vor dem Livegang in Einstellungen → Zahlungen für jeden Anbieter den Testmodus und senden Sie eine vollständige Buchung ab. Prüfen Sie, ob Kunden-E-Mail, Admin-E-Mail und Admin-Dashboard die Buchung anzeigen — das deckt 90 % aller SMTP-/Webhook-Probleme vor dem ersten echten Kunden auf.

Shortcodes & blocksShortcodes & blocsShortcodes & Blöcke

Every Javis Booking Pro front-end surface is a shortcode. The same shortcodes work in the classic editor, Gutenberg (Shortcode block), Elementor, Bricks, Beaver Builder, Divi, Oxygen and WPBakery.

Toutes les interfaces publiques de Javis Booking Pro sont des shortcodes. Ils fonctionnent dans l’éditeur classique, Gutenberg (bloc Shortcode), Elementor, Bricks, Beaver Builder, Divi, Oxygen et WPBakery.

Alle öffentlichen Oberflächen von Javis Booking Pro sind Shortcodes. Sie funktionieren im klassischen Editor, in Gutenberg (Block Shortcode), Elementor, Bricks, Beaver Builder, Divi, Oxygen und WPBakery.

[rbp_booking-form]

The main booking form — date, time, guests, customer info, payment.

Le formulaire principal — date, heure, convives, infos client, paiement.

Das Hauptformular — Datum, Uhrzeit, Gäste, Kundendaten, Zahlung.

restaurant_id
Branch ID. Default 1. Use to render a specific branch form on multi-branch sites.
ID de la succursale. Par défaut 1. Permet d’afficher une succursale précise.
Filial-ID. Standard 1. Für Multi-Filial-Sites zur Auswahl einer bestimmten Filiale.
lang
Force a language (en, fr, de, vi, etc.). Empty = follow site language.
Forcer une langue (en, fr, de, vi…). Vide = langue du site.
Sprache erzwingen (en, fr, de, vi…). Leer = Site-Sprache.
[rbp_booking-lookup]

Self-service portal where customers find their booking by reference + email to view, reschedule or cancel.

Portail libre-service où les clients retrouvent leur réservation par référence + e-mail pour consulter, replanifier ou annuler.

Self-Service-Portal: Kunden finden ihre Buchung über Referenz + E-Mail, um sie anzusehen, umzuplanen oder zu stornieren.

[rbp_availability-calendar]

A standalone month-grid calendar showing free / busy / blacked-out days. Pairs well with marketing pages.

Calendrier mensuel autonome affichant les jours libres / occupés / fermés. Idéal pour les pages marketing.

Eigenständiger Monatsraster-Kalender mit freien / besetzten / gesperrten Tagen. Perfekt für Marketing-Seiten.

[rbp_resource-allocation]

Visual floor / table / room layout. Customers pick a specific resource. Alias of the legacy [rbp_table-layout].

Plan visuel sol / tables / chambres. Les clients choisissent une ressource précise. Alias du legacy [rbp_table-layout].

Visueller Grundriss für Tische / Räume. Kunden wählen eine konkrete Ressource. Alias von [rbp_table-layout].

[rbp_currency-switcher]

Drop-in widget that lets visitors switch the displayed currency. Persists in localStorage and broadcasts the change to every form on the page.

Widget prêt à l’emploi pour changer la devise affichée. Persiste dans localStorage et synchronise tous les formulaires de la page.

Sofort einsetzbares Widget zum Wechseln der angezeigten Währung. Speichert in localStorage und synchronisiert alle Formulare der Seite.

style
buttons | dropdown
show_flag
0 | 1
align
left | center | right
[rbp_lang-switcher]

Standalone language picker. Place anywhere — header menu, sidebar, footer. Style is controlled in Settings → Design.

Sélecteur de langue autonome. À placer où vous voulez — en-tête, barre latérale, pied de page. Style configurable dans Paramètres → Design.

Eigenständiger Sprachumschalter. Platzierbar im Header-Menü, Sidebar oder Footer. Stil über Einstellungen → Design steuerbar.

[rbp_booking-confirmation]

Dedicated thank-you / confirmation page. Renders the boarding-pass voucher with QR check-in, payment summary and add-to-calendar links.

Page de remerciement / confirmation dédiée. Affiche le bon façon « carte d’embarquement » avec QR check-in, récapitulatif paiement et lien agenda.

Eigene Dankes- / Bestätigungsseite. Zeigt den Boarding-Pass-Voucher mit QR-Check-in, Zahlungsübersicht und Kalender-Link an.

i
Internal link.Lien interne.Interner Link. For deep customization of the booking form (fields, labels, multi-step flow, design skin) jump straight to Forms. For multi-currency & multi-language behaviour see General. Pour personnaliser à fond le formulaire (champs, libellés, étapes, skin), allez directement à Formulaires. Pour le multi-devise et multi-langue, voir Général. Für tiefgehende Anpassung des Formulars (Felder, Beschriftungen, mehrstufige Schritte, Design-Skin) springen Sie direkt zu Formulare. Für Mehrwährungs- & Mehrsprachenverhalten siehe Allgemein.
Chapter 02 · CoreChapitre 02 · CœurKapitel 02 · Kern

General SettingsParamètres générauxAllgemeine Einstellungen

Configure the foundation of your booking system: business identity, currency, timezone, language, SMTP, admin notifications and the legal entity printed on every invoice.

Configurez les fondations de votre système : identité, devise, fuseau horaire, langue, SMTP, notifications admin et entité légale imprimée sur chaque facture.

Konfigurieren Sie das Fundament Ihres Buchungssystems: Identität, Währung, Zeitzone, Sprache, SMTP, Admin-Benachrichtigungen und juristische Einheit auf jeder Rechnung.

Business profileProfil de l’entrepriseGeschäftsprofil

Under Javis Booking → Settings → General set your business name, website, hotline and Google Maps URL. These fields propagate to email signatures, confirmation vouchers and printable invoices.

Sous Javis Booking → Paramètres → Général, renseignez nom d’entreprise, site web, hotline et URL Google Maps. Ces champs alimentent les signatures, les bons et les factures.

Unter Javis Booking → Einstellungen → Allgemein tragen Sie Firmenname, Website, Hotline und Google-Maps-URL ein. Diese Felder erscheinen in E-Mail-Signaturen, Vouchern und Rechnungen.

Currency & multi-currency (WOOCS bridge)Devise & multi-devise (passerelle WOOCS)Währung & Mehrwährung (WOOCS-Bridge)

Choose your base currency from 160+ ISO codes. If WOOCS — WooCommerce Currency Switcher is installed, Javis Booking Pro automatically reads its enabled currencies and FX rates so guests can pay in their preferred currency. The chosen currency persists in localStorage across pages.

Choisissez votre devise de base parmi 160+ codes ISO. Si WOOCS est installé, Javis lit automatiquement les devises actives et leurs taux pour que le client paie dans sa devise préférée. Persistance en localStorage.

Wählen Sie Ihre Basiswährung aus 160+ ISO-Codes. Bei installiertem WOOCS liest Javis Booking Pro aktive Währungen und Kurse automatisch — Gäste zahlen in ihrer Lieblingswährung. Persistenz im localStorage.

Language & translationLangue & traductionSprache & Übersetzung

14 languages ship out of the box: English, French, German, Italian, Spanish, Portuguese (BR & PT), Vietnamese, Chinese (Simplified & Traditional), Korean, Japanese, Indonesian. Strings are stored as .po/.mo in /wp-content/plugins/javis-bookingpro/languages/ and override-friendly via /wp-content/languages/plugins/rbp-locale.po.

14 langues prêtes à l’emploi : anglais, français, allemand, italien, espagnol, portugais (BR & PT), vietnamien, chinois (simplifié & traditionnel), coréen, japonais, indonésien. Fichiers .po/.mo dans /wp-content/plugins/javis-bookingpro/languages/ ; surchargeables dans /wp-content/languages/plugins/rbp-locale.po.

14 Sprachen integriert: Englisch, Französisch, Deutsch, Italienisch, Spanisch, Portugiesisch (BR & PT), Vietnamesisch, Chinesisch (vereinfacht & traditionell), Koreanisch, Japanisch, Indonesisch. .po/.mo-Dateien unter /wp-content/plugins/javis-bookingpro/languages/, überschreibbar via /wp-content/languages/plugins/rbp-locale.po.

Per-language label overrides.Surcharge de libellés par langue.Sprachspezifische Beschriftungs-Overrides. Every customer-facing label — guest-group names, slot button copy, error messages, voucher headings — accepts a per-language override. Find them under Settings → Form Labels and Settings → Form Messages. Leave blank to inherit the default translation; fill in to override only for that language. Chaque libellé visible — groupes de convives, créneaux, messages d’erreur, titres de bon — accepte une surcharge par langue dans Paramètres → Libellés et Paramètres → Messages. Laissez vide pour la traduction par défaut ; renseignez pour surcharger. Jede sichtbare Beschriftung — Gastgruppen, Slot-Buttons, Fehlermeldungen, Voucher-Titel — kann pro Sprache überschrieben werden in Einstellungen → Beschriftungen und Einstellungen → Nachrichten. Leer lassen für Standardübersetzung; ausfüllen zum Überschreiben.

SMTP & admin notificationsSMTP & notifications administrateurSMTP & Admin-Benachrichtigungen

WordPress’ default wp_mail() is unreliable on shared hosting. We strongly recommend a dedicated SMTP relay (Postmark, SendGrid, Mailgun, Amazon SES) or a hardened SMTP plugin like WP Mail SMTP. Set From email to an address on your own verified domain.

Le wp_mail() par défaut est peu fiable en hébergement mutualisé. Privilégiez un relais SMTP (Postmark, SendGrid, Mailgun, SES) ou WP Mail SMTP. Réglez l’e-mail expéditeur sur une adresse de votre domaine vérifié.

Das Standard-wp_mail() ist auf Shared Hosting unzuverlässig. Verwenden Sie einen dedizierten SMTP-Relay (Postmark, SendGrid, Mailgun, SES) oder WP Mail SMTP. Setzen Sie die Absenderadresse auf eine verifizierte Domain.

Admin notifications: Admin notify emails accepts multiple comma-separated addresses (front-desk, owner, finance). Each receives the booking confirmation, cancellation and refund notices.

Notifications admin : Adresses admin accepte plusieurs adresses séparées par virgule (réception, direction, comptabilité). Chacune reçoit confirmation, annulation et remboursement.

Admin-Benachrichtigungen: Admin-Adressen akzeptiert mehrere kommagetrennte Adressen (Rezeption, Inhaber, Buchhaltung). Jede erhält Bestätigung, Stornierung und Rückerstattung.

Legal entity for invoicing (EU VAT)Entité légale pour la facturation (TVA UE)Juristische Entität für die Rechnungsstellung (EU-MwSt.)

For EU-compliant invoicing, fill the Legal name, Tax ID / VAT number, Country (ISO-2), Address, City, Postal code and State. These print as the seller block on every invoice and on PDF / printed vouchers. Multi-branch sites share one billing entity (typical SaaS).

Pour une facturation conforme UE, renseignez Raison sociale, N° de TVA, Pays (ISO-2), Adresse, Ville, Code postal et Région. Ces données sont imprimées comme vendeur sur chaque facture, bon PDF et impression. Les sites multi-succursales partagent une entité (modèle SaaS).

Für EU-konforme Rechnungen geben Sie Rechtsname, USt-IdNr., Land (ISO-2), Adresse, Stadt, PLZ und Bundesland ein. Diese erscheinen als Verkäufer-Block auf jeder Rechnung und auf PDF-/Druck-Vouchern. Multi-Filial-Sites teilen sich eine Rechnungs-Entität (SaaS-Modell).

Multi-branch (locations)Multi-succursalesMulti-Filiale (Standorte)

Run multiple physical locations from one WordPress install. Each branch has its own opening hours, tables/rooms, staff, services, time slots and pricing — yet shares one customer database, one license and one billing entity. Switch the active branch from any admin screen via the branch switcher dropdown at the top of the page.

Gérez plusieurs établissements depuis un WordPress. Chaque succursale a ses horaires, tables/chambres, personnel, services, créneaux et tarifs — mais partage une base clients, une licence et une entité de facturation. Bascule via le sélecteur de succursale en haut de chaque page admin.

Mehrere Standorte aus einer WordPress-Installation steuern. Jede Filiale hat eigene Öffnungszeiten, Tische/Räume, Personal, Dienstleistungen, Zeitfenster und Preise — bei gemeinsamer Kundendatenbank, Lizenz und Rechnungs-Entität. Wechsel über den Filial-Umschalter oben in jedem Admin-Screen.

Chapter 03 · AvailabilityChapitre 03 · DisponibilitéKapitel 03 · Verfügbarkeit

Calendar & Time SlotsCalendrier & créneauxKalender & Zeitfenster

The availability engine combines opening hours, time slots, capacity per slot, blackout dates and per-resource constraints to decide — in real time — exactly which slots a customer can book. This section is the most important one for daily operations.

Le moteur de disponibilité combine horaires d’ouverture, créneaux, capacité par créneau, jours bloqués et contraintes par ressource pour déterminer en temps réel les créneaux réservables. Le chapitre le plus critique pour les opérations quotidiennes.

Die Verfügbarkeits-Engine kombiniert Öffnungszeiten, Zeitfenster, Kapazität pro Slot, Sperrtage und Ressourcen-Constraints und entscheidet in Echtzeit, welche Slots buchbar sind. Das wichtigste Kapitel für den Tagesbetrieb.

Opening hoursHoraires d’ouvertureÖffnungszeiten

Under Javis Booking → Branches → Edit set opening hours per weekday. Each day supports up to three independent shifts (e.g. Breakfast 07:00–10:00, Lunch 11:30–14:30, Dinner 18:00–22:30). Closed days are marked with a single checkbox.

Dans Javis Booking → Succursales → Modifier, définissez les horaires par jour. Chaque jour autorise jusqu’à trois services indépendants (ex. Petit-déjeuner 07:00–10:00, Déjeuner 11:30–14:30, Dîner 18:00–22:30). Une seule case pour les jours fermés.

Unter Javis Booking → Filialen → Bearbeiten definieren Sie die Öffnungszeiten pro Wochentag. Jeder Tag erlaubt bis zu drei unabhängige Service-Phasen (z. B. Frühstück 07:00–10:00, Mittag 11:30–14:30, Abend 18:00–22:30). Geschlossene Tage über eine Checkbox.

Time slotsCréneaux horairesZeitfenster

Time slots are the granular bookable moments inside opening hours. Each slot stores its own:

Les créneaux sont les moments réservables fins à l’intérieur des horaires. Chacun possède :

Zeitfenster sind die feinen, buchbaren Momente innerhalb der Öffnungszeiten. Jedes hat:

  • Start time (and optional end time for fixed-duration sittings).
  • Heure de début (et fin optionnelle pour durées fixes).
  • Startzeit (und optionales Ende für feste Sitzungslängen).
  • Max guests — hard cap on simultaneous diners / customers booked for this slot.
  • Capacité max — plafond strict de clients réservables sur ce créneau.
  • Max. Gäste — harte Obergrenze der gleichzeitigen Buchungen pro Slot.
  • Days of week the slot is available (independent of opening hours).
  • Jours de la semaine où le créneau est ouvert (indépendant des horaires).
  • Wochentage, an denen der Slot verfügbar ist (unabhängig von Öffnungszeiten).
  • Date range — limit the slot to a season (e.g. Brunch slot only May–September).
  • Plage de dates — limiter à une saison (ex. Brunch mai–septembre).
  • Datumsbereich — z. B. Brunch nur Mai–September.
  • Optional pricing — base price per guest or per booking, supports surcharge / discount per slot.
  • Tarification optionnelle — par convive ou par réservation, supplément ou remise par créneau.
  • Optionale Preise — pro Gast oder pro Buchung, Zuschlag oder Rabatt pro Slot.
  • Linked packages (v5.10.4) — restrict which menus / packages this slot offers. Empty = all packages.
  • Forfaits liés (v5.10.4) — restreindre les forfaits proposés. Vide = tous.
  • Verknüpfte Pakete (v5.10.4) — Pakete pro Slot einschränken. Leer = alle.
!
Capacity check modes.Modes de contrôle de capacité.Kapazitätsprüf-Modi. Two modes are available under Settings → Bookings → Capacity check mode: (1) Slot capacity — counts guests against timeslot.max_guests; cheapest, fastest. (2) Resource capacity — counts guests against the sum of all tables / rooms available at that time, factoring out resources already taken. Use mode 2 when each customer must be assigned a specific physical resource. Deux modes dans Paramètres → Réservations → Mode capacité : (1) Capacité du créneau — compare aux timeslot.max_guests ; le plus rapide. (2) Capacité des ressources — compare à la somme des tables/chambres disponibles, en déduisant celles déjà prises. Utilisez le mode 2 quand chaque client doit recevoir une ressource physique. Zwei Modi unter Einstellungen → Buchungen → Kapazitätsmodus: (1) Slot-Kapazität — Vergleich mit timeslot.max_guests; am schnellsten. (2) Ressourcen-Kapazität — Vergleich mit Summe der verfügbaren Tische/Räume, bereits belegte werden abgezogen. Modus 2, wenn jeder Gast eine konkrete Ressource erhalten muss.

Blackout dates & holidaysJours fermés & fériésSperrtage & Feiertage

Block one-off days (private events, public holidays, renovation) under Settings → Bookings → Blackout dates. Accepts a comma-separated list (2026-12-24, 2026-12-25, 2026-12-31) or date ranges (2026-08-01:2026-08-15). Blackouts override opening hours and time slots — the calendar greys the day with a customizable label (default Closed).

Bloquez les jours ponctuels sous Paramètres → Réservations → Jours fermés. Liste séparée par virgule (2026-12-24, 2026-12-25, 2026-12-31) ou plages (2026-08-01:2026-08-15). Priorité absolue sur les horaires — calendrier grisé avec libellé personnalisable (par défaut Fermé).

Sperren Sie einzelne Tage unter Einstellungen → Buchungen → Sperrtage. Kommagetrennte Liste (2026-12-24, 2026-12-25, 2026-12-31) oder Bereiche (2026-08-01:2026-08-15). Überschreibt Öffnungszeiten — Tag wird grau mit anpassbarer Beschriftung markiert (Standard Geschlossen).

Lead time, future window & min party sizeAnticipation, fenêtre & taille minimaleVorlaufzeit, Buchungsfenster & Mindestgröße

Lead time (minimum notice)

Anticipation minimale

Mindestvorlaufzeit

In hours. A value of 2 means bookings within the next two hours are refused — useful so the kitchen / front desk has prep time.

En heures. 2 = pas de réservation dans les deux prochaines heures — laisse du temps à la cuisine / réception.

In Stunden. 2 = keine Buchung in den nächsten zwei Stunden — Vorlaufzeit für Küche / Rezeption.

Future booking window

Fenêtre future

Buchungsfenster

In days. 90 means guests can book up to 90 days ahead. Past this horizon the calendar is greyed out.

En jours. 90 = réservations possibles jusqu’à 90 jours à l’avance. Au-delà, le calendrier est grisé.

In Tagen. 90 = Buchung bis zu 90 Tage im Voraus. Darüber wird der Kalender ausgegraut.

Real-time availability APIAPI de disponibilité en temps réelEchtzeit-Verfügbarkeits-API

The booking form calls the public REST endpoint GET /wp-json/rbp/v1/availability?date=YYYY-MM-DD&guests=N&restaurant_id=1 which returns an array of bookable slots. Internal caching is keyed per (branch, date, party size) with automatic invalidation on every booking create / cancel — see hook rbp_table_layout_invalidated.

Le formulaire appelle l’endpoint REST public GET /wp-json/rbp/v1/availability?date=YYYY-MM-DD&guests=N&restaurant_id=1 qui renvoie les créneaux disponibles. Cache interne par (succursale, date, taille) avec invalidation automatique sur création / annulation — voir le hook rbp_table_layout_invalidated.

Das Formular ruft den öffentlichen REST-Endpunkt GET /wp-json/rbp/v1/availability?date=YYYY-MM-DD&guests=N&restaurant_id=1 auf und liefert die buchbaren Slots. Interner Cache pro (Filiale, Datum, Gruppengröße) mit automatischer Invalidierung bei Buchung/Stornierung — siehe Hook rbp_table_layout_invalidated.

Chapter 04 · Front-endChapitre 04 · FaçadeKapitel 04 · Frontend

FormsFormulairesFormulare

The customer-facing booking form is a multi-step funnel: Service → Date & Slot → Guests → Customer details → Payment → Confirmation. Every label, placeholder, error message and color can be customized without writing a single line of code.

Le formulaire client est un tunnel multi-étapes : Service → Date & créneau → Convives → Coordonnées → Paiement → Confirmation. Chaque libellé, placeholder, message d’erreur et couleur est personnalisable sans code.

Das Kundenformular ist ein mehrstufiger Funnel: Service → Datum & Slot → Gäste → Kundendaten → Zahlung → Bestätigung. Jede Beschriftung, jeder Platzhalter, jede Fehlermeldung und Farbe ist ohne Code anpassbar.

Form skins & designSkins & designFormular-Skins & Design

Three built-in skins under Settings → Design:

Trois skins natifs sous Paramètres → Design :

Drei integrierte Skins unter Einstellungen → Design:

M

Modern

Clean white cards, rounded corners, soft shadows. The default — works for 90% of sites.

Cartes blanches, coins arrondis, ombres douces. Convient à 90 % des sites.

Saubere weiße Karten, abgerundete Ecken, weiche Schatten. Passt zu 90 % der Sites.

L

Luxury

Sharp corners, serif headings, parchment background. Tailored for fine-dining and 5★ hospitality.

Coins nets, titres serif, fond parchemin. Idéal pour la gastronomie et l’hôtellerie 5★.

Scharfe Ecken, Serifen-Überschriften, Pergament-Hintergrund. Für Fine Dining und 5★-Hotellerie.

C

Compact

Dense single-column layout. Great for sidebars and mobile-first sites.

Disposition dense en colonne unique. Parfaite pour sidebars et mobile-first.

Dichte Einspaltenanordnung. Ideal für Sidebars und Mobile-First-Sites.

All three skins read the same CSS custom properties — --rbp-primary, --rbp-secondary, --rbp-btn-radius, --rbp-card-radius, --rbp-slot-primary, --rbp-slot-bg, --rbp-slot-badge-bg, --rbp-slot-cols — emitted by RBP_Design::output_css(). Override any of them in your theme and the form follows.

Les trois skins lisent les mêmes variables CSS — --rbp-primary, --rbp-secondary, --rbp-btn-radius, --rbp-card-radius, --rbp-slot-primary, --rbp-slot-bg, --rbp-slot-badge-bg, --rbp-slot-cols — émises par RBP_Design::output_css(). Surchargez-les dans votre thème.

Alle drei Skins lesen dieselben CSS-Variablen — --rbp-primary, --rbp-secondary, --rbp-btn-radius, --rbp-card-radius, --rbp-slot-primary, --rbp-slot-bg, --rbp-slot-badge-bg, --rbp-slot-cols — ausgegeben von RBP_Design::output_css(). Im Theme überschreiben.

/* Example: brand the form via your theme's style.css */
body .rbp-form-wrap {
  --rbp-primary: #0f172a;
  --rbp-secondary: #1f6feb;
  --rbp-btn-radius: 2px;       /* sharp luxury buttons */
  --rbp-card-radius: 12px;
  --rbp-slot-cols: 4;            /* slot grid columns on desktop */
}

Services, packages & menusServices, forfaits & menusDienstleistungen, Pakete & Menüs

Define what you sell under Javis Booking → Services. A service can be Lunch, Spa massage, City tour… each with its own duration, price, photo and short description. Services can be grouped into packages (e.g. Anniversary set menu — 4 courses + bottle of wine) that bundle several items into a single bookable line.

Définissez ce que vous vendez sous Javis Booking → Services. Un service peut être Déjeuner, Massage, Visite… avec sa durée, son prix, sa photo et sa description. Les services se regroupent en forfaits (ex. Menu anniversaire — 4 services + bouteille).

Definieren Sie Ihr Angebot unter Javis Booking → Dienstleistungen. Ein Service kann Mittagessen, Spa-Massage, Stadtführung sein — mit Dauer, Preis, Foto und Kurzbeschreibung. Services können zu Paketen gebündelt werden (z. B. Jubiläumsmenü — 4 Gänge + Flasche Wein).

Custom guest groupsGroupes de convives personnalisésBenutzerdefinierte Gastgruppen

By default the form asks How many guests?. For pricing flexibility, split the headcount into up to three guest groups — typically Adults, Children, Infants. Each group has its own price multiplier, icon, label, optional age limit and per-language overrides for all 14 supported locales.

Par défaut le formulaire demande Nombre de convives ?. Pour plus de souplesse, divisez en trois groupes — typiquement Adultes, Enfants, Nourrissons. Chaque groupe a son coefficient, icône, libellé, limite d’âge optionnelle et surcharges 14 langues.

Standardmäßig fragt das Formular Wie viele Gäste?. Für mehr Preisflexibilität teilen Sie in bis zu drei Gruppen — typisch Erwachsene, Kinder, Kleinkinder. Jede Gruppe hat Preisfaktor, Icon, Beschriftung, optionale Altersgrenze und Overrides in 14 Sprachen.

Form fields & validationChamps & validationFelder & Validierung

The customer-details step ships with First name, Last name, Email, Phone, Nationality and Special request. Each field can be hidden, made optional or required from Settings → Form Labels. Phone numbers are validated with the international intl-tel-input library, including auto-country detection from the visitor’s IP.

L’étape coordonnées propose Prénom, Nom, E-mail, Téléphone, Nationalité, Demande spéciale. Chaque champ peut être masqué, optionnel ou obligatoire sous Paramètres → Libellés. Téléphones validés via intl-tel-input, détection pays auto.

Der Kundendaten-Schritt umfasst Vorname, Nachname, E-Mail, Telefon, Nationalität, Sonderwunsch. Jedes Feld lässt sich ausblenden, optional oder pflicht machen unter Einstellungen → Beschriftungen. Telefonnummern werden via intl-tel-input validiert, automatische Länderkennung.

Booking lookup formFormulaire de rechercheBuchungssuche-Formular

Add [rbp_booking-lookup] to any page (e.g. Manage my booking) so customers can find their reservation by entering the booking reference + email. Once found they can reschedule, cancel, add a special request, re-download the voucher or add to Google / Apple Calendar. Self-service drastically reduces inbound calls.

Ajoutez [rbp_booking-lookup] à une page (ex. Gérer ma réservation) pour que le client retrouve sa réservation par référence + e-mail. Il peut replanifier, annuler, ajouter une demande, retélécharger le bon ou ajouter à l’agenda. Réduit les appels.

Fügen Sie [rbp_booking-lookup] auf einer Seite ein (z. B. Buchung verwalten), damit Kunden ihre Reservierung per Referenz + E-Mail finden. Möglich: Umbuchung, Stornierung, Sonderwunsch, Voucher erneut laden, zu Google/Apple Kalender hinzufügen.

Chapter 05 · OperationsChapitre 05 · OpérationsKapitel 05 · Betrieb

BookingsRéservationsBuchungen

Everything your front-desk team does day-to-day: viewing, filtering, creating walk-ins, confirming, rescheduling, refunding, checking in with QR, and managing the waitlist when fully booked.

Tout ce que la réception fait au quotidien : consulter, filtrer, créer un walk-in, confirmer, replanifier, rembourser, scanner le QR et gérer la liste d’attente.

Alles für den Tagesbetrieb des Empfangs: Anzeigen, Filtern, Walk-in-Anlage, Bestätigen, Umbuchen, Erstatten, QR-Check-in und Warteliste verwalten.

Booking lifecycle & statusesCycle de vie & statutsLebenszyklus & Status

StatusStatutStatus MeaningSignificationBedeutung TriggersDéclencheursAuslöser
pendingAwaiting confirmation or payment.En attente de confirmation ou paiement.Wartet auf Bestätigung oder Zahlung.Form submitted with manual-confirm policy or unpaid deposit.Formulaire en confirmation manuelle ou acompte impayé.Formular abgesendet mit manueller Freigabe oder offener Anzahlung.
confirmedConfirmed — slot is reserved.Confirmée — créneau réservé.Bestätigt — Slot reserviert.Payment captured, or admin clicked Confirm.Paiement capté ou clic admin sur Confirmer.Zahlung erfasst oder Admin-Klick auf Bestätigen.
seatedGuest has checked in / arrived.Client présent / installé.Gast angekommen / platziert.QR scan or admin Mark as seated.Scan QR ou Marquer présent.QR-Scan oder Als platziert markieren.
completedVisit finished. Locked from edits.Visite terminée. Verrouillée.Besuch beendet. Schreibgeschützt.Auto-complete cron after N hours, or manual.Cron auto-complétion après N heures, ou manuel.Auto-Complete-Cron nach N Stunden oder manuell.
cancelledCancelled by customer or admin.Annulée par client ou admin.Vom Kunden oder Admin storniert.Customer self-service, admin action, or expired pending payment.Self-service client, action admin, ou paiement expiré.Self-Service, Admin-Aktion oder abgelaufene Zahlung.
no_showGuest did not arrive within tolerance.Client absent au-delà de la tolérance.Gast nicht innerhalb der Toleranz erschienen.Auto no-show cron, or admin Mark no-show.Cron no-show ou Marquer absent.No-Show-Cron oder Als nicht erschienen markieren.
refundedFull or partial refund issued.Remboursement total ou partiel.Voll- oder Teil-Erstattung erfolgt.Admin issues refund via the Bookings table.Remboursement initié depuis la table.Erstattung über die Buchungstabelle.

Bookings list (admin)Liste des réservations (admin)Buchungsliste (Admin)

Under Javis Booking → Bookings you’ll find a power table with filters by branch, date range, status, payment status, source, guest count and free-text search across customer name, phone, email and reference. Rows are colour-coded by status. Bulk actions: confirm, cancel, mark no-show, print vouchers, export CSV / Excel.

Dans Javis Booking → Réservations, un tableau avec filtres par succursale, plage de dates, statut, statut paiement, source, taille du groupe et recherche libre. Couleurs par statut. Actions groupées : confirmer, annuler, marquer absent, imprimer bons, export CSV / Excel.

Unter Javis Booking → Buchungen finden Sie eine Power-Tabelle mit Filtern für Filiale, Datumsbereich, Status, Zahlungsstatus, Quelle, Gruppengröße und Volltextsuche. Zeilen farbcodiert nach Status. Massenaktionen: bestätigen, stornieren, No-Show, Voucher drucken, CSV/Excel-Export.

Walk-ins & manual bookingsWalk-ins & réservations manuellesWalk-ins & manuelle Buchungen

From the bookings list click + New booking to create a walk-in. The same form as the public one opens — but admin-only fields are exposed: Override availability, Assign specific table / room / staff, Free-form notes, Set custom status, Manual price adjustment, Apply discount code. By default walk-ins skip the customer confirmation email; toggle it via a checkbox before saving.

Depuis la liste, + Nouvelle réservation crée un walk-in. Champs admin exposés : Forcer la dispo, Affecter table/chambre/personnel, Notes libres, Statut personnalisé, Ajustement prix, Code promo. Par défaut le walk-in n’envoie pas d’e-mail client ; case à cocher avant enregistrement.

Aus der Liste startet + Neue Buchung einen Walk-in. Admin-Felder: Verfügbarkeit überschreiben, Tisch/Raum/Personal zuweisen, Freitextnotizen, Status setzen, Preisanpassung, Rabattcode. Standardmäßig keine Kunden-E-Mail; Checkbox vor Speichern.

QR check-inCheck-in par QRQR-Check-in

Every confirmation email and voucher carries a unique QR code containing a tokenised check-in URL. On arrival, a staff member opens the Javis Booking → QR Scanner page on their phone and scans the customer’s voucher — the booking instantly switches to seated, the time of arrival is logged, and the table layout updates everywhere in real time. No WP login required for the scan endpoint; the URL is signed.

Chaque e-mail de confirmation et chaque bon contient un QR unique avec une URL de check-in signée. À l’arrivée, le personnel ouvre Javis Booking → Scanner QR sur smartphone et scanne — la réservation passe à seated, l’heure est consignée, et le plan se met à jour en temps réel. Pas de login WP nécessaire ; URL signée.

Jede Bestätigungs-E-Mail und jeder Voucher trägt einen QR-Code mit signierter Check-in-URL. Bei Ankunft öffnet das Personal Javis Booking → QR-Scanner auf dem Smartphone und scannt — die Buchung wechselt zu seated, Ankunftszeit wird protokolliert, Tischplan aktualisiert live. Kein WP-Login nötig; URL signiert.

WaitlistListe d’attenteWarteliste

When a desired slot is full the form can optionally offer the customer to join the waitlist instead of bouncing them. As soon as a matching cancellation frees capacity, the first-in-line on the waitlist receives an automatic email / SMS with a one-click confirmation link valid for N minutes (configurable). If no response, the next waitlister is offered, and so on.

Quand un créneau est plein, le formulaire peut proposer la liste d’attente. Dès qu’une annulation libère de la place, le premier de la liste reçoit automatiquement un e-mail / SMS avec un lien de confirmation valable N minutes (configurable). Sans réponse, on passe au suivant.

Bei vollem Slot kann das Formular die Warteliste anbieten. Sobald eine Stornierung Kapazität freigibt, erhält der Erste automatisch E-Mail/SMS mit Bestätigungs-Link gültig N Minuten (konfigurierbar). Ohne Antwort folgt der Nächste.

Cancellation & refundsAnnulation & remboursementsStornierung & Erstattung

Cancellation rules are configurable per branch: free cancellation up to N hours before the booking, partial refund window, no refund inside the cut-off. Refunds are issued through the original payment gateway in one click and a customer-facing email is fired with the new balance. The hook rbp_booking_refunded is also triggered for any integration listener.

Règles configurables par succursale : annulation gratuite jusqu’à N heures, remboursement partiel, plus rien après. Remboursement en un clic via la passerelle d’origine, e-mail client envoyé. Le hook rbp_booking_refunded est déclenché.

Stornoregeln pro Filiale konfigurierbar: kostenlose Stornierung bis N Stunden vorher, Teil-Erstattung im Mittelfenster, nichts mehr danach. Erstattungen mit einem Klick über den ursprünglichen Anbieter, Kunden-E-Mail wird ausgelöst. Hook rbp_booking_refunded wird gefeuert.

Auto-complete & auto-no-show cronAuto-complétion & auto-no-showAuto-Complete & Auto-No-Show-Cron

Two scheduled jobs run on WP-Cron: Auto-complete — flips seated bookings to completed N hours after start time. Auto-no-show — flips confirmed bookings to no_show after the configured grace period if not seated. v5.10.5 added Run Now buttons under Settings → Bookings and Settings → Diagnostics for low-traffic sites where WP-Cron may miss its tick.

Deux tâches WP-Cron : Auto-complétionseatedcompleted après N heures. Auto-no-showconfirmedno_show après le délai de tolérance. La v5.10.5 a ajouté des boutons Exécuter maintenant sous Paramètres → Réservations et Diagnostics pour les sites peu trafiqués.

Zwei WP-Cron-Jobs: Auto-Completeseatedcompleted nach N Stunden. Auto-No-Showconfirmedno_show nach Toleranzfrist. v5.10.5 brachte Jetzt ausführen-Buttons unter Einstellungen → Buchungen und Diagnose für traffic-arme Sites.

Chapter 06 · MoneyChapitre 06 · PaiementKapitel 06 · Zahlungen

PaymentPaiementZahlung

Five built-in payment gateways, multi-currency, deposits, partial payments, EU VAT, service charge, vouchers, and bullet-proof idempotent webhooks. Every payment is logged with a full audit trail.

Cinq passerelles intégrées, multi-devise, acomptes, paiements partiels, TVA UE, frais de service, bons cadeaux et webhooks idempotents blindés. Chaque paiement est tracé en intégralité.

Fünf integrierte Zahlungs-Gateways, Mehrwährung, Anzahlungen, Teilzahlungen, EU-MwSt., Servicegebühr, Gutscheine und idempotente, bombensichere Webhooks. Jede Zahlung wird vollständig auditiert.

Supported gatewaysPasserelles supportéesUnterstützte Gateways

S

Stripe

Cards, Apple Pay, Google Pay, SEPA, BACS, iDEAL, Klarna, Link. PaymentIntents + 3-D Secure 2 automatic.

Cartes, Apple/Google Pay, SEPA, BACS, iDEAL, Klarna, Link. PaymentIntents + 3-D Secure 2 auto.

Karten, Apple/Google Pay, SEPA, BACS, iDEAL, Klarna, Link. PaymentIntents + 3-D Secure 2 automatisch.

P

PayPal

PayPal balance, Pay in 4, Venmo (US), pay by card. Smart Buttons SDK with full webhook verification.

Solde PayPal, Pay in 4, Venmo (US), carte. SDK Smart Buttons + vérification webhook complète.

PayPal-Guthaben, Pay in 4, Venmo (US), Karte. Smart-Buttons-SDK mit voller Webhook-Verifizierung.

SQ

Square

Cards + Apple/Google Pay via Square Web Payments. Ideal for sites already on Square POS.

Cartes + Apple/Google Pay via Square Web Payments. Idéal si vous utilisez Square POS.

Karten + Apple/Google Pay via Square Web Payments. Ideal bei vorhandenem Square-POS.

R

Razorpay

India-first: UPI, cards, net-banking, wallets, EMI. INR + 100 international currencies.

Spécialiste Inde : UPI, cartes, virement, portefeuilles, EMI. INR + 100 devises internationales.

Indien-Spezialist: UPI, Karten, Netbanking, Wallets, EMI. INR + 100 internationale Währungen.

O

OnePay

Vietnam-domestic cards (NAPAS, ATM, QR), Visa, MasterCard, JCB. Required for VND-only sites.

Cartes domestiques Vietnam (NAPAS, ATM, QR), Visa, MasterCard, JCB. Indispensable pour sites VND.

Vietnam-Inlandskarten (NAPAS, ATM, QR), Visa, MasterCard, JCB. Pflicht für reine VND-Sites.

Stripe setupConfiguration StripeStripe-Einrichtung

  1. Create the API keys

    Créer les clés API

    API-Schlüssel erstellen

    In your Stripe Dashboard → Developers → API keys, copy the Publishable key and Secret key (use the test pair while integrating, switch to live on launch).

    Dans Stripe Dashboard → Developers → API keys, copiez les Publishable key et Secret key (paire test pour intégrer, live au lancement).

    Im Stripe-Dashboard → Developers → API keys kopieren Sie Publishable key und Secret key (zunächst Test, später Live).

  2. Paste keys into Javis Booking

    Coller les clés dans Javis Booking

    Schlüssel in Javis Booking einfügen

    In Settings → Payments → Stripe paste both keys, set Mode = Test, enable the gateway.

    Sous Paramètres → Paiements → Stripe, collez les deux clés, Mode = Test, activez la passerelle.

    Unter Einstellungen → Zahlungen → Stripe beide Schlüssel einfügen, Modus = Test, Gateway aktivieren.

  3. Register the webhook

    Enregistrer le webhook

    Webhook registrieren

    In Stripe Dashboard → Developers → Webhooks, add an endpoint pointing to https://your-site.com/wp-json/rbp/v1/webhook/stripe and subscribe to the events payment_intent.succeeded, payment_intent.payment_failed, charge.refunded. Copy the Signing secret back into Javis Booking Pro.

    Stripe Dashboard → Webhooks, ajoutez l’endpoint https://votre-site.com/wp-json/rbp/v1/webhook/stripe et abonnez-vous à payment_intent.succeeded, payment_intent.payment_failed, charge.refunded. Copiez le Signing secret dans Javis.

    Stripe-Dashboard → Webhooks, Endpoint https://ihre-site.de/wp-json/rbp/v1/webhook/stripe hinzufügen und payment_intent.succeeded, payment_intent.payment_failed, charge.refunded abonnieren. Signing secret in Javis einfügen.

  4. Test card

    Carte de test

    Testkarte

    Submit a sandbox booking using card 4242 4242 4242 4242, any future expiry, any CVC. Confirm the booking appears as confirmed and the payment as completed.

    Faites une réservation sandbox avec 4242 4242 4242 4242, expiration future, CVC libre. Vérifiez la réservation confirmed et le paiement completed.

    Sandbox-Buchung mit 4242 4242 4242 4242, zukünftiges Ablaufdatum, beliebige CVC. Buchung muss confirmed, Zahlung completed sein.

Webhook idempotency & race-condition protectionIdempotence webhooks & protection anti-raceWebhook-Idempotenz & Race-Condition-Schutz

i
Defense in depth.Défense en profondeur.Tiefenstaffelung. Javis Booking Pro v5.9.16+ uses three independent layers to make sure a duplicate webhook never double-charges the customer: (1) a 10-second transient lock per payment_id, (2) an atomic SQL UPDATE … WHERE status='pending' that the InnoDB engine guarantees runs exactly once, (3) a UNIQUE INDEX(gateway, transaction_id) at the database level. Stripe / PayPal / Square / Razorpay all benefit from per-event-id deduplication with a 7-day cache. Javis Booking Pro v5.9.16+ utilise trois couches : (1) verrou transitoire 10 s par payment_id, (2) UPDATE … WHERE status='pending' atomique InnoDB, (3) UNIQUE INDEX(gateway, transaction_id). Stripe / PayPal / Square / Razorpay : déduplication par event_id sur 7 jours. Javis Booking Pro v5.9.16+ verwendet drei Schichten: (1) 10-s-Transient-Lock pro payment_id, (2) atomares UPDATE … WHERE status='pending' in InnoDB, (3) UNIQUE INDEX(gateway, transaction_id) auf DB-Ebene. Stripe / PayPal / Square / Razorpay zusätzlich mit Event-ID-Dedup über 7 Tage.

Deposits & partial paymentsAcomptes & paiements partielsAnzahlungen & Teilzahlungen

Charge a percentage or fixed amount as deposit, the balance due on arrival. Configure per service or globally under Settings → Payments → Deposit. The voucher shows Amount Paid and Balance Due explicitly so the front desk can collect the remainder.

Facturez un acompte (pourcentage ou montant fixe), le solde dû à l’arrivée. Configurable par service ou global sous Paramètres → Paiements → Acompte. Le bon affiche Montant payé et Solde dû pour faciliter l’encaissement.

Berechnen Sie eine Anzahlung (Prozent oder fix), Restbetrag bei Anreise. Pro Service oder global unter Einstellungen → Zahlungen → Anzahlung. Der Voucher zeigt Bezahlt und Restbetrag für die Rezeption.

Taxes, VAT & service chargeTaxes, TVA & serviceSteuern, MwSt. & Service

Under Settings → Tax & Pricing you choose between tax-inclusive and tax-exclusive pricing, the standard rate, a reduced rate for food (typical EU member-state pattern), an optional service charge with a customizable invoice label, and EU reverse-charge eligibility for B2B cross-border. The filter rbp_reverse_charge_note lets you fine-tune the legal note per language.

Sous Paramètres → Taxes & Tarifs, choisissez prix TTC ou HT, taux standard, taux réduit alimentation, service optionnel (libellé personnalisable), éligibilité auto-liquidation UE B2B. Le filtre rbp_reverse_charge_note ajuste la mention par langue.

Unter Einstellungen → Steuern & Preise wählen Sie zwischen Brutto- und Netto-Preisen, Standardsatz, reduziertem Satz für Speisen, optionalem Servicezuschlag (anpassbarer Rechnungstext), EU-Reverse-Charge-Eignung für B2B. Der Filter rbp_reverse_charge_note passt den Hinweis pro Sprache an.

Chapter 07 · ConfigurationChapitre 07 · ConfigurationKapitel 07 · Konfiguration

SettingsParamètresEinstellungen

A full reference for every tab under Javis Booking → Settings. Tabs are organised in a deliberate flow — Core → Guests → Money → Communications → Advanced — so a new admin can configure the plugin top-to-bottom without backtracking.

Référence complète de chaque onglet sous Javis Booking → Paramètres. L’ordre est volontaire — Cœur → Convives → Argent → Communications → Avancé — pour configurer linéairement sans retour en arrière.

Vollständige Referenz für jeden Reiter unter Javis Booking → Einstellungen. Reihenfolge ist bewusst gewählt — Kern → Gäste → Geld → Kommunikation → Erweitert — sodass neue Admins linear konfigurieren können.

Settings tab mapPlan des ongletsReiter-Übersicht

TabOngletReiterKey settingsRéglages clésWichtigste Einstellungen
⚙️ GeneralCurrency, timezone, language, SMTP, admin emails, legal entity, voucher branding.Devise, fuseau, langue, SMTP, e-mails admin, entité légale, branding du bon.Währung, Zeitzone, Sprache, SMTP, Admin-E-Mails, juristische Entität, Voucher-Branding.
📋 BookingsCapacity mode, slot display, blackout dates, lead/future window, reference prefix, no-show & auto-complete cron, service↔package linkage.Mode capacité, affichage créneaux, jours fermés, anticipation/fenêtre, préfixe référence, no-show & auto-complétion, liaison service↔forfait.Kapazitätsmodus, Slot-Darstellung, Sperrtage, Vorlauf/Fenster, Referenz-Präfix, No-Show & Auto-Complete, Service↔Paket-Verknüpfung.
🎨 DesignSkin (Modern / Luxury / Compact), primary & secondary colours, button radius, card radius, slot grid columns, badge styling, language switcher style.Skin (Modern / Luxury / Compact), couleurs, rayons des boutons et cartes, colonnes de la grille créneaux, style des badges, sélecteur de langue.Skin (Modern / Luxury / Compact), Farben, Button-/Karten-Radius, Slot-Spalten, Badge-Style, Sprachumschalter-Stil.
👥 Guest GroupsUp to three groups (adults / children / infants), per-group icon, label, age cap, price multiplier and per-language overrides.Jusqu’à trois groupes (adultes / enfants / nourrissons), icône, libellé, âge, coefficient, surcharges 14 langues.Bis zu drei Gruppen (Erwachsene / Kinder / Kleinkinder), Icon, Beschriftung, Altersgrenze, Preisfaktor, 14-Sprach-Overrides.
🧾 Tax & PricingTax mode (inclusive / exclusive), standard & reduced rates, service charge, deposit rule, EU VAT reverse-charge.Mode taxe (TTC/HT), taux standard & réduit, service, règle d’acompte, auto-liquidation UE.Steuermodus (Brutto/Netto), Standard- & reduzierter Satz, Servicezuschlag, Anzahlungsregel, EU-Reverse-Charge.
💳 PaymentsStripe, PayPal, Square, Razorpay, OnePay keys & webhook secrets; default gateway; test/live mode; payment-on-arrival toggle.Clés Stripe, PayPal, Square, Razorpay, OnePay & secrets webhook ; passerelle par défaut ; mode test/live ; paiement sur place.Schlüssel & Webhook-Secrets für Stripe, PayPal, Square, Razorpay, OnePay; Standard-Gateway; Test-/Live-Modus; Vor-Ort-Zahlung.
🔔 NotificationsEmail triggers, reminder cadence, SMS gateway (Twilio / Vonage / Plivo), WhatsApp, boarding-pass voucher copy, .ics attachment.Déclencheurs e-mail, cadence rappels, SMS (Twilio / Vonage / Plivo), WhatsApp, copie carte d’embarquement, pièce jointe .ics.E-Mail-Trigger, Reminder-Kadenz, SMS (Twilio / Vonage / Plivo), WhatsApp, Boarding-Pass-Texte, .ics-Anhang.
📧 Email Templates15+ templates (confirmation, reminder, cancellation, refund, waitlist…) with WYSIWYG editor and merge tags.15+ modèles (confirmation, rappel, annulation, remboursement, attente…) éditeur WYSIWYG et merge-tags.15+ Vorlagen (Bestätigung, Erinnerung, Stornierung, Erstattung, Warteliste…) mit WYSIWYG-Editor und Merge-Tags.
🏷️ Form LabelsEvery visible string in the booking form, customizable globally and per language.Tous les libellés visibles, globaux et par langue.Alle sichtbaren Beschriftungen, global & pro Sprache.
💬 Form MessagesSuccess messages, error messages, validation messages, toast prompts — global and per language.Messages succès, erreurs, validation, toasts — globaux et par langue.Erfolgs-, Fehler-, Validierungs- und Toast-Meldungen — global und pro Sprache.
🔗 IntegrationsGoogle Calendar, Zapier-style webhooks, Meta & TikTok Pixel, Google Analytics 4, Google Tag Manager.Google Agenda, webhooks Zapier-like, Meta & TikTok Pixel, GA4, GTM.Google Kalender, Zapier-ähnliche Webhooks, Meta & TikTok Pixel, GA4, GTM.
🔌 Form IntegrationsBridge external form plugins (Contact Form 7, Gravity Forms, Ninja Forms, WPForms) into Javis Booking.Bridge des plugins de formulaire externes (CF7, Gravity, Ninja, WPForms) vers Javis Booking.Bridge externer Formular-Plugins (CF7, Gravity, Ninja, WPForms) zu Javis Booking.
🔌 POS SyncPush confirmed bookings into a Point-of-Sale (Square POS, Lightspeed, KiotViet, Sapo, MISA CukCuk).Pousse les réservations confirmées dans un POS (Square POS, Lightspeed, KiotViet, Sapo, MISA CukCuk).Push bestätigter Buchungen in POS-Systeme (Square POS, Lightspeed, KiotViet, Sapo, MISA CukCuk).
🏆 LoyaltyPoints per visit, points per currency unit, redemption ratio, tier rules.Points par visite, points par unité de devise, ratio d’échange, paliers.Punkte pro Besuch, Punkte pro Währungseinheit, Einlöseverhältnis, Stufen.
📊 TrackingSource attribution, UTM capture, conversion pixels, marketing-event dispatch.Attribution de source, capture UTM, pixels de conversion, événements marketing.Quellen-Attribution, UTM-Erfassung, Conversion-Pixel, Marketing-Events.
⚡ PerformanceCache TTLs, async queue, lazy-load assets, conditional asset loading by page.TTL caches, file asynchrone, lazy-load assets, chargement conditionnel par page.Cache-TTLs, asynchrone Queue, Lazy-Load, seitenbedingtes Asset-Loading.
🩺 DiagnosticsHealth checks, cron status, DB migrations, log viewer, re-seed templates, run-now buttons.Vérifications, état cron, migrations DB, visualiseur logs, ré-amorcer modèles, exécuter maintenant.Health-Checks, Cron-Status, DB-Migrationen, Log-Viewer, Templates neu seeden, Jetzt-ausführen-Buttons.
Per-tab save.Sauvegarde par onglet.Speichern pro Reiter. Clicking Save on a tab only updates the fields that belong to that tab — fields in other tabs keep their existing values. This prevents accidental overwrites when several admins work in parallel. Le bouton Enregistrer ne met à jour que les champs de l’onglet actif — les autres onglets restent intacts. Évite les écrasements quand plusieurs admins travaillent en parallèle. Der Button Speichern aktualisiert nur die Felder des aktiven Reiters — andere Reiter bleiben unverändert. Verhindert versehentliches Überschreiben bei parallelem Admin-Arbeiten.
Chapter 08 · ExtendChapitre 08 · ÉtendreKapitel 08 · Erweitern

Add-onsModules complémentairesAdd-ons

Built-in modules that ship with Javis Booking Pro — no separate purchase required. Enable or disable each one from Settings → Performance.

Modules natifs livrés avec Javis Booking Pro — pas d’achat séparé. Activez ou désactivez chacun depuis Paramètres → Performance.

Integrierte Module von Javis Booking Pro — kein separater Kauf. Aktivierung/Deaktivierung in Einstellungen → Performance.

🏆

Loyalty & points

Fidélité & points

Treueprogramm & Punkte

Reward customers per visit and per spend. Configurable accrual and redemption ratio.

Récompensez les clients par visite et par dépense. Ratio d’accumulation et d’échange paramétrable.

Belohnung pro Besuch und pro Umsatz. Anrechnungs- und Einlösungsverhältnis konfigurierbar.

🎟️

Vouchers & gift cards

Bons & cartes cadeaux

Voucher & Geschenkkarten

Sell prepaid vouchers customers can redeem at booking time. Supports both fixed-amount and full-experience codes.

Vendez des bons prépayés que le client utilise à la réservation. Montants fixes ou expériences complètes.

Verkaufen Sie Voucher, die Kunden bei der Buchung einlösen. Fester Betrag oder ganze Erlebnisse.

🧾

Invoices

Factures

Rechnungen

Auto-generated on every confirmed booking. EU-VAT compliant with reverse-charge note, sequential numbering and PDF download.

Génération auto à chaque réservation confirmée. Conforme TVA UE, auto-liquidation, numérotation séquentielle, PDF.

Automatische Erstellung bei jeder Bestätigung. EU-MwSt.-konform mit Reverse-Charge-Hinweis, fortlaufender Nummerierung und PDF.

📨

Marketing & segments

Marketing & segments

Marketing & Segmente

Filter your customer base by visit count, spend, last-seen, source. Send batched campaigns via the async job queue.

Filtrez votre base par nb de visites, dépense, dernière visite, source. Campagnes envoyées via file asynchrone.

Kundenbasis filtern nach Besuchen, Umsatz, letzter Besuch, Quelle. Kampagnen über asynchrone Job-Queue.

📜

Email log

Journal des e-mails

E-Mail-Log

Every outbound email is logged with status, recipient, subject, body preview and retry button.

Chaque e-mail sortant est journalisé : statut, destinataire, sujet, aperçu, bouton de renvoi.

Jede ausgehende E-Mail wird protokolliert: Status, Empfänger, Betreff, Vorschau, Erneut senden.

🧑‍💼

Staff & services

Personnel & services

Personal & Services

Assign specific staff to bookings, manage personal schedules, commissions and per-staff calendars.

Affectez le personnel, gérez emplois du temps, commissions et agendas individuels.

Personal zuweisen, persönliche Zeitpläne, Provisionen und individuelle Kalender verwalten.

🪪

Boarding-pass voucher

Bon « carte d’embarquement »

Boarding-Pass-Voucher

A premium, print-ready confirmation voucher with QR code, branding, and 14 fully customizable copy strings.

Bon de confirmation premium prêt à imprimer, QR, branding, 14 chaînes personnalisables.

Premium-Bestätigungs-Voucher mit QR, Branding und 14 individuell anpassbaren Texten.

🏢

Multi-branch

Multi-succursales

Multi-Filiale

Operate multiple locations from one license. Branch-scoped admin roles and consolidated reporting.

Plusieurs établissements sous une licence. Rôles admin scopés et reporting consolidé.

Mehrere Standorte unter einer Lizenz. Filial-spezifische Admin-Rollen und konsolidiertes Reporting.

📱

QR Scanner

Scanner QR

QR-Scanner

Mobile-optimised check-in page staff open on their phone — no app required. Signed URL, no WP login needed.

Page de check-in mobile sans app. URL signée, sans login WP.

Mobile Check-in-Seite ohne App. Signierte URL, ohne WP-Login.

Chapter 09 · Plug inChapitre 09 · BrancherKapitel 09 · Anbinden

IntegrationsIntégrationsIntegrationen

Connect Javis Booking Pro to the rest of your stack — calendars, form builders, CRMs, SMS, payment, analytics and POS — using built-in adapters and a clean WP-hooks API.

Connectez Javis Booking Pro à votre stack — agendas, form builders, CRM, SMS, paiements, analytics, POS — via des adaptateurs natifs et une API WP-hooks propre.

Verbinden Sie Javis Booking Pro mit Ihrem Stack — Kalender, Form Builder, CRMs, SMS, Zahlungen, Analytics, POS — über integrierte Adapter und eine saubere WP-Hooks-API.

Google Calendar two-way syncSynchronisation bidirectionnelle Google AgendaGoogle-Kalender-Synchronisation (bidirektional)

Connect a Google account under Settings → Integrations → Google Calendar (OAuth 2.0 flow). Every confirmed booking is mirrored as a Google Calendar event with attendee details, location, link to the admin booking page and an automatic reminder. Cancellations and reschedules are pushed both ways. Conflicts on the Google side block new bookings on the Javis side.

Connectez un compte Google sous Paramètres → Intégrations → Google Agenda (OAuth 2.0). Chaque réservation confirmée est mirrorée dans Google Agenda : participants, lieu, lien vers la fiche admin, rappel. Annulations et reports sont propagés des deux côtés. Les conflits Google bloquent les nouvelles réservations côté Javis.

Verbinden Sie ein Google-Konto unter Einstellungen → Integrationen → Google Kalender (OAuth 2.0). Jede bestätigte Buchung wird als Google-Kalender-Event gespiegelt: Teilnehmer, Ort, Link zur Admin-Buchung, Erinnerung. Stornierungen und Umbuchungen wandern in beide Richtungen. Konflikte auf Google-Seite blockieren neue Buchungen.

Contact Form 7 · Gravity Forms · Ninja Forms · WPFormsContact Form 7 · Gravity Forms · Ninja Forms · WPFormsContact Form 7 · Gravity Forms · Ninja Forms · WPForms

If you already use a third-party form builder for marketing pages, the bundled Form Integration system maps that form’s submission into a Javis booking automatically. Add an action to your CF7 / Gravity / Ninja / WPForms form, map the fields (date, time, guests, email, phone) and Javis takes over availability check, payment and confirmation. Adapters live in includes/forms/class-rbp-adapter-*.php and can be extended via the filter rbp_form_adapters.

Si vous utilisez déjà un form builder, le système Form Integration mappe automatiquement les soumissions de CF7 / Gravity / Ninja / WPForms vers une réservation Javis. Ajoutez l’action, mappez les champs (date, heure, convives, e-mail, téléphone) et Javis prend en charge dispo, paiement et confirmation. Adaptateurs dans includes/forms/class-rbp-adapter-*.php, extensibles via le filtre rbp_form_adapters.

Wenn Sie bereits einen Form Builder verwenden, mappt das integrierte Form Integration-System CF7-/Gravity-/Ninja-/WPForms-Eingaben automatisch auf eine Javis-Buchung. Aktion hinzufügen, Felder mappen (Datum, Uhrzeit, Gäste, E-Mail, Telefon) — Javis übernimmt Verfügbarkeit, Zahlung, Bestätigung. Adapter in includes/forms/class-rbp-adapter-*.php, erweiterbar via Filter rbp_form_adapters.

WooCommerce & WOOCSWooCommerce & WOOCSWooCommerce & WOOCS

Javis Booking Pro is fully independent of WooCommerce — you can sell paid bookings without installing WooCommerce at all. If WooCommerce is present, the bridge in class-rbp-woocs-bridge.php reads its currency switcher (WOOCS) to drive multi-currency pricing site-wide. Customer records are unified with WooCommerce users when the email matches.

Javis Booking Pro est totalement indépendant de WooCommerce — vous vendez sans installer WooCommerce. S’il est présent, le pont class-rbp-woocs-bridge.php lit son currency switcher (WOOCS) pour piloter le multi-devise. Les comptes clients sont unifiés avec les utilisateurs WooCommerce sur l’e-mail.

Javis Booking Pro funktioniert komplett ohne WooCommerce — Sie verkaufen Buchungen ohne WooCommerce-Installation. Bei vorhandenem WooCommerce liest die Bridge class-rbp-woocs-bridge.php dessen Currency-Switcher (WOOCS) für sitewide Mehrwährungspreise. Kundendatensätze werden bei E-Mail-Match mit WooCommerce-Usern verknüpft.

SMS & WhatsAppSMS & WhatsAppSMS & WhatsApp

Native SMS adapters for Twilio, Vonage (Nexmo) and Plivo; WhatsApp Business Cloud API for transactional reminders. The async job queue batches up to 1 million messages per campaign without timing out the worker.

Adaptateurs SMS natifs Twilio, Vonage (Nexmo), Plivo ; WhatsApp Business Cloud API pour les rappels transactionnels. File asynchrone : jusqu’à 1 M de messages par campagne sans timeout.

Native SMS-Adapter für Twilio, Vonage (Nexmo), Plivo; WhatsApp Business Cloud API für transaktionale Erinnerungen. Asynchrone Queue: bis zu 1 Mio. Nachrichten pro Kampagne ohne Worker-Timeout.

Analytics & advertising pixelsAnalytics & pixels publicitairesAnalytics & Werbe-Pixel

Built-in support for Google Analytics 4 (enhanced ecommerce events), Google Tag Manager, Meta Pixel (Facebook / Instagram Ads), TikTok Pixel and Pinterest Tag. Conversion events (begin_checkout, add_payment_info, purchase) fire automatically with the booking value and currency.

Support natif Google Analytics 4 (events e-commerce enrichis), Google Tag Manager, Meta Pixel (Facebook / Instagram Ads), TikTok Pixel et Pinterest Tag. Les events de conversion (begin_checkout, add_payment_info, purchase) sont déclenchés avec montant et devise.

Integrierte Unterstützung für Google Analytics 4 (Enhanced-Ecommerce-Events), Google Tag Manager, Meta Pixel (Facebook/Instagram Ads), TikTok Pixel und Pinterest Tag. Conversion-Events (begin_checkout, add_payment_info, purchase) feuern automatisch mit Betrag und Währung.

POS sync (Square, Lightspeed, KiotViet, Sapo, MISA CukCuk)Sync POSPOS-Synchronisation

Push confirmed bookings (and walk-ins) into your Point-of-Sale system as pending orders with table assignment, guest count and special requests pre-filled. This eliminates double entry between online bookings and the till.

Poussez les réservations confirmées (et walk-ins) vers votre POS comme commandes en attente avec table, nombre de convives et demandes pré-remplies. Élimine la double saisie.

Push bestätigter Buchungen (und Walk-ins) als offene Bestellungen ins POS, mit Tisch, Gästezahl und Sonderwünschen vorausgefüllt. Eliminiert doppelte Eingaben.

Chapter 10 · Q&AChapitre 10 · Q&RKapitel 10 · F&A

FAQs & GuidesFAQ & guidesFAQ & Anleitungen

Real questions, real answers. Curated from javistab.com Help Center support tickets and grouped by topic.

Vraies questions, vraies réponses. Issues des tickets du Centre d’aide javistab.com et regroupées par thème.

Echte Fragen, echte Antworten. Aus dem Hilfe-Center auf javistab.com kuratiert und nach Themen gruppiert.

Can I run Javis Booking Pro without WooCommerce? Puis-je utiliser Javis Booking Pro sans WooCommerce ? Kann ich Javis Booking Pro ohne WooCommerce nutzen?

Yes. Javis Booking Pro is a self-contained plugin with its own payments, customer database, invoicing and emails. WooCommerce is optional and only relevant if you want to sell physical products alongside bookings, or use the WOOCS currency switcher.

Oui. Javis Booking Pro est autonome : paiements, base clients, factures et e-mails inclus. WooCommerce est optionnel — utile uniquement pour vendre des produits physiques en parallèle ou utiliser le currency switcher WOOCS.

Ja. Javis Booking Pro ist eigenständig: Zahlungen, Kundendatenbank, Rechnungen und E-Mails inklusive. WooCommerce ist optional — nur nötig für parallelen Verkauf physischer Produkte oder den WOOCS-Currency-Switcher.

How many bookings per day can the plugin handle? Combien de réservations par jour le plugin peut-il gérer ? Wie viele Buchungen pro Tag schafft das Plugin?

Tested up to 50 000 bookings / day on a single mid-tier server (8 vCPU / 16 GB RAM). The async job queue (introduced in v5.7.2) handles up to 1 million notifications per campaign. For higher scale, run reminders on a dedicated cron-only worker.

Testé jusqu’à 50 000 réservations / jour sur un serveur mid-tier (8 vCPU / 16 Go RAM). La file asynchrone (v5.7.2) traite jusqu’à 1 million de notifications par campagne. Pour aller plus loin, utilisez un worker cron dédié.

Getestet bis 50.000 Buchungen / Tag auf einem Mid-Tier-Server (8 vCPU / 16 GB RAM). Die asynchrone Job-Queue (v5.7.2) verarbeitet bis zu 1 Mio. Benachrichtigungen pro Kampagne. Für mehr Skalierung: dedizierten Cron-Worker einsetzen.

Does it support multiple restaurants / locations on one site? Gère-t-il plusieurs restaurants / lieux sur un seul site ? Werden mehrere Restaurants / Standorte auf einer Site unterstützt?

Yes — full multi-branch support is built in. Each branch has its own opening hours, resources, services, time slots and pricing. Share one customer database, one license and one billing entity. Pass restaurant_id in the shortcode to display a specific branch.

Oui — multi-succursales natif. Chaque site a ses horaires, ressources, services, créneaux, tarifs. Une base clients, une licence, une entité de facturation partagées. Passez restaurant_id dans le shortcode pour cibler une succursale.

Ja — Multi-Filiale ist integriert. Jede Filiale hat eigene Öffnungszeiten, Ressourcen, Services, Slots, Preise. Eine gemeinsame Kundendatenbank, Lizenz und Rechnungs-Entität. Per restaurant_id im Shortcode gezielt eine Filiale anzeigen.

Can guests book without creating a WordPress account? Les clients peuvent-ils réserver sans créer de compte WordPress ? Können Gäste ohne WordPress-Konto buchen?

Yes — that is the default and recommended flow. Customers identify themselves with email + phone; an internal rbp_customers record is created or matched on the fly. No password, no WP user account. Self-service rescheduling and cancellation rely on a signed token in the booking-lookup URL — also no login required.

Oui — c’est le flux par défaut et recommandé. Le client s’identifie par e-mail + téléphone ; un enregistrement rbp_customers est créé / mis à jour. Pas de mot de passe ni de compte WP. Replanification et annulation par token signé dans l’URL de lookup, sans login.

Ja — das ist der Standard- und empfohlene Flow. Gäste identifizieren sich per E-Mail + Telefon; ein interner rbp_customers-Datensatz wird erstellt/abgeglichen. Kein Passwort, kein WP-Konto. Umbuchung und Stornierung über signiertes Token im Lookup-URL — ebenfalls ohne Login.

How do I refund a booking? Comment rembourser une réservation ? Wie erstatte ich eine Buchung?

From Bookings → click the booking → Refund. Choose Full refund or enter a partial amount, optionally add a reason note. The refund is sent through the original payment gateway and the customer receives an automatic notification. The booking status flips to refunded and the action is logged in the audit trail.

Depuis Réservations → ouvrir la réservation → Rembourser. Choisissez Remboursement total ou saisissez un montant partiel, optionnel note de motif. Le remboursement passe par la passerelle d’origine ; le client est notifié. Statut → refunded, action journalisée.

Aus Buchungen → Buchung öffnen → Erstatten. Volle Erstattung oder Teilbetrag wählen, optional Grund eingeben. Erstattung erfolgt über den ursprünglichen Anbieter; Kunde erhält automatische Benachrichtigung. Status → refunded, Aktion im Audit-Log.

My confirmation emails are not arriving — what should I check? Les e-mails de confirmation n’arrivent pas — que vérifier ? Bestätigungs-E-Mails kommen nicht an — was prüfen?

In order: (1) check Email Log — is the email recorded? If yes, see status / error message. (2) Make sure you’re using an SMTP relay, not the default wp_mail(). (3) Verify From email matches an SPF/DKIM-aligned domain. (4) Look at the host’s mail-error log. (5) Test from Settings → Diagnostics → Send test email. See Troubleshooting for full diagnostics.

Dans l’ordre : (1) Journal e-mails — l’e-mail est-il enregistré ? Si oui, lisez statut / erreur. (2) Vérifiez l’usage d’un relais SMTP, pas wp_mail() par défaut. (3) From email aligné SPF/DKIM. (4) Log mail-error de l’hébergeur. (5) Test via Paramètres → Diagnostics → Envoyer un e-mail test. Voir Dépannage.

In dieser Reihenfolge: (1) E-Mail-Log — ist die E-Mail erfasst? Falls ja, Status/Fehler lesen. (2) SMTP-Relay verwenden statt Standard-wp_mail(). (3) Absenderadresse SPF/DKIM-aligned. (4) Mail-Error-Log des Hosters prüfen. (5) Test via Einstellungen → Diagnose → Test-E-Mail senden. Siehe Fehlerbehebung.

How do I change the brand colour of the booking form? Comment changer la couleur de marque du formulaire ? Wie ändere ich die Markenfarbe des Formulars?

Open Settings → Design and use the colour picker for Primary color and Secondary color. Both apply across buttons, slot accents, badges and links. For finer control, override --rbp-primary, --rbp-secondary, --rbp-slot-primary, --rbp-slot-bg in your theme’s stylesheet.

Ouvrez Paramètres → Design et utilisez les color pickers Couleur primaire et Couleur secondaire. Pour un contrôle fin, surchargez --rbp-primary, --rbp-secondary, --rbp-slot-primary, --rbp-slot-bg dans votre thème.

Öffnen Sie Einstellungen → Design und nutzen Sie die Farbwähler Primärfarbe und Sekundärfarbe. Für feinere Kontrolle überschreiben Sie --rbp-primary, --rbp-secondary, --rbp-slot-primary, --rbp-slot-bg im Theme-CSS.

Is the plugin GDPR-compliant? Le plugin est-il conforme RGPD ? Ist das Plugin DSGVO-konform?

Yes. Customers can request data export and deletion from the booking-lookup page. The plugin stores only the data strictly required for the booking. Cookies are optional. Logs auto-purge after a configurable retention window. A consent checkbox can be appended to the form via Settings → Form Labels → Consent.

Oui. Les clients peuvent demander export et suppression depuis la page de lookup. Le plugin ne stocke que les données strictement nécessaires. Cookies optionnels. Les logs s’auto-purgent selon une rétention configurable. Case de consentement ajoutable via Paramètres → Libellés → Consentement.

Ja. Gäste können Datenexport und Löschung über die Lookup-Seite anfordern. Es werden nur die für die Buchung erforderlichen Daten gespeichert. Cookies optional. Logs werden nach konfigurierbarer Aufbewahrungsdauer automatisch entfernt. Eine Einwilligungs-Checkbox lässt sich über Einstellungen → Beschriftungen → Einwilligung ergänzen.

Can I customize email templates per language? Puis-je personnaliser les modèles d’e-mail par langue ? Kann ich E-Mail-Vorlagen pro Sprache anpassen?

Yes. Each template (confirmation, reminder, cancellation, refund, waitlist, voucher, etc.) supports per-language overrides for subject AND body. Merge tags like {first_name}, {booking_date}, {booking_time}, {guests}, {ref}, {total} auto-resolve in the right locale.

Oui. Chaque modèle (confirmation, rappel, annulation, remboursement, attente, bon, etc.) accepte une surcharge par langue pour le sujet ET le corps. Les merge-tags {first_name}, {booking_date}, {booking_time}, {guests}, {ref}, {total} sont résolus dans la bonne locale.

Ja. Jede Vorlage (Bestätigung, Erinnerung, Stornierung, Erstattung, Warteliste, Voucher usw.) erlaubt Sprach-Overrides für Betreff UND Text. Merge-Tags wie {first_name}, {booking_date}, {booking_time}, {guests}, {ref}, {total} werden in der richtigen Sprache aufgelöst.

i
Need a question that isn’t here? Visit the JavisTab Help Center or open a ticket from javistab.com/contact. Une question manquante ? Visitez le Centre d’aide JavisTab ou ouvrez un ticket depuis javistab.com/contact. Frage nicht dabei? Besuchen Sie das JavisTab Hilfe-Center oder eröffnen Sie ein Ticket unter javistab.com/contact.
Chapter 11 · Diagnose & fixChapitre 11 · Diagnostic & correctionKapitel 11 · Diagnose & Behebung

TroubleshootingDépannageFehlerbehebung

A pragmatic playbook for the most common issues. Start at the top — every section assumes the ones above already passed.

Manuel pragmatique des incidents les plus courants. Commencez en haut — chaque section suppose les précédentes vérifiées.

Pragmatischer Leitfaden für häufige Probleme. Von oben nach unten arbeiten — jede Sektion setzt die vorherigen voraus.

Step 0 — Diagnostics pageÉtape 0 — Page DiagnosticsSchritt 0 — Diagnose-Seite

Open Settings → Diagnostics. The page runs 20+ health checks: PHP version, MySQL version, WP-Cron status, write permissions, SMTP reachability, gateway webhook reachability, DB schema migrations, asset URL accessibility. Each row is colour-coded green / amber / red with a concrete fix link. Always look here first.

Ouvrez Paramètres → Diagnostics. Plus de 20 vérifications : PHP, MySQL, WP-Cron, permissions d’écriture, SMTP, webhook passerelles, migrations DB, accès URL des assets. Chaque ligne en vert / orange / rouge avec lien vers la résolution. Toujours commencer ici.

Öffnen Sie Einstellungen → Diagnose. Über 20 Health-Checks: PHP, MySQL, WP-Cron, Schreibrechte, SMTP, Gateway-Webhook-Erreichbarkeit, DB-Migrationen, Asset-URLs. Jede Zeile grün/gelb/rot mit Fix-Link. Hier immer zuerst nachschauen.

Emails not sendingLes e-mails ne partent pasE-Mails werden nicht gesendet

  1. In Email Log, search the booking reference — if the row exists with status Failed, read the error.
  2. Dans Journal e-mails, cherchez la référence — si statut Failed, lisez l’erreur.
  3. Im E-Mail-Log nach der Buchungsreferenz suchen — bei Status Failed Fehler lesen.
  4. If the row is missing, the email was never triggered → check the booking’s notification flag in Settings → Notifications.
  5. Si pas de ligne, l’e-mail n’a jamais été déclenché → vérifiez les flags dans Paramètres → Notifications.
  6. Fehlende Zeile → E-Mail wurde nicht ausgelöst → Flag in Einstellungen → Benachrichtigungen prüfen.
  7. Send a test email from Diagnostics → Send test. If it fails, your SMTP is broken — fix that first, not Javis.
  8. Envoyez un test depuis Diagnostics → Envoyer un test. Échec = SMTP cassé — corrigez SMTP, pas Javis.
  9. Test-E-Mail aus Diagnose → Test senden. Fehler = SMTP defekt — SMTP reparieren, nicht Javis.
  10. Confirm your sending domain has SPF + DKIM records. Use mxtoolbox.com or mail-tester.com.
  11. Confirmez SPF + DKIM avec mxtoolbox ou mail-tester.
  12. SPF + DKIM mit mxtoolbox oder mail-tester bestätigen.

Cron not firing (low-traffic sites)Cron qui ne se déclenche pasCron läuft nicht (Traffic-arme Sites)

WP-Cron is traffic-driven — on sites with few visitors, scheduled jobs can be hours late. Symptoms: reminders not sent, no-shows not flipped, auto-complete stuck.

WP-Cron dépend du trafic — sur sites peu visités, les tâches peuvent prendre des heures de retard. Symptômes : rappels non envoyés, no-shows non basculés, auto-complétion bloquée.

WP-Cron ist traffic-getrieben — auf wenig besuchten Sites laufen Jobs stundenlang verspätet. Symptome: keine Erinnerungen, kein No-Show-Flip, Auto-Complete hängt.

Fix: set up a real server cron that hits wp-cron.php every minute:

Solution : mettez en place un vrai cron serveur appelant wp-cron.php chaque minute :

Lösung: echten Server-Cron einrichten, der wp-cron.php jede Minute aufruft:

# /etc/crontab — every minute
* * * * * www-data curl -fsS https://your-site.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1

Then add define('DISABLE_WP_CRON', true); to wp-config.php so WP stops triggering crons on page loads. As a fallback, v5.10.5 added Run Now buttons under Settings → Bookings for the two auto-complete jobs.

Puis ajoutez define('DISABLE_WP_CRON', true); dans wp-config.php pour que WP n’exécute plus les crons via les pages. En fallback, v5.10.5 expose des boutons Exécuter maintenant sous Paramètres → Réservations.

Dann define('DISABLE_WP_CRON', true); in wp-config.php setzen, damit WP keine Crons mehr beim Seitenaufruf triggert. Fallback: v5.10.5 stellt Jetzt ausführen-Buttons unter Einstellungen → Buchungen bereit.

Stripe webhook not receivedWebhook Stripe non reçuStripe-Webhook nicht empfangen

  1. Open the Stripe Dashboard → Developers → Webhooks → your endpoint → Recent deliveries. Look at the response code.
  2. Stripe Dashboard → Developers → Webhooks → votre endpoint → Livraisons récentes. Lisez le code de réponse.
  3. Stripe-Dashboard → Developers → Webhooks → Endpoint → Recent deliveries. Response-Code prüfen.
  4. 400 Bad signature → signing secret in Javis ≠ secret on Stripe side. Copy the secret again, exactly.
  5. 400 Bad signature → secret signing dans Javis ≠ Stripe. Copiez à nouveau, exactement.
  6. 400 Bad signature → Signing-Secret in Javis ≠ Stripe. Erneut exakt kopieren.
  7. 404 → URL mismatch. The endpoint must be /wp-json/rbp/v1/webhook/stripe, including the leading /.
  8. 404 → URL incorrecte. Doit être /wp-json/rbp/v1/webhook/stripe, avec le / initial.
  9. 404 → falsche URL. Pflicht: /wp-json/rbp/v1/webhook/stripe mit führendem /.
  10. 5xx → server error. Enable WP_DEBUG_LOG and re-deliver the event from Stripe.
  11. 5xx → erreur serveur. Activez WP_DEBUG_LOG et redéclenchez l’event.
  12. 5xx → Serverfehler. WP_DEBUG_LOG aktivieren und Event neu zustellen.

Booking form looks broken / CSS conflictsFormulaire cassé / conflit CSSFormular zerschossen / CSS-Konflikt

Aggressive theme stylesheets sometimes override .rbp-form-wrap rules. The two most common culprits are box-sizing resets and !important button overrides. Quick test: switch to the default Twenty Twenty-Four theme and reload — if it works, the issue is your theme, not Javis. Fix by scoping problematic rules in your theme or by raising specificity inside Settings → Design → Custom CSS.

Des CSS de thème agressives peuvent surcharger .rbp-form-wrap. Coupables fréquents : reset box-sizing et !important sur les boutons. Test rapide : passez à Twenty Twenty-Four — si OK, le problème vient du thème. Corrigez en scopant les règles, ou augmentez la spécificité via Paramètres → Design → CSS personnalisé.

Aggressive Theme-Stylesheets überschreiben gelegentlich .rbp-form-wrap-Regeln. Häufigste Übeltäter: box-sizing-Resets und !important-Button-Overrides. Schnelltest: Twenty Twenty-Four aktivieren — funktioniert es, liegt es am Theme. Lösung: Theme-Regeln scopen oder Spezifität via Einstellungen → Design → Custom CSS erhöhen.

Enabling debug logsActiver les logs de debugDebug-Logs aktivieren

// wp-config.php
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Logs are written to /wp-content/debug.log. Javis-specific entries are prefixed [RBP]. After reproducing the bug, send the relevant lines (anonymised) to JavisTab support.

Logs dans /wp-content/debug.log. Les entrées Javis commencent par [RBP]. Après reproduction, envoyez les lignes pertinentes (anonymisées) au support JavisTab.

Logs unter /wp-content/debug.log. Javis-Einträge mit Präfix [RBP]. Nach Reproduktion relevante Zeilen (anonymisiert) an den JavisTab-Support senden.

Chapter 12 · Developer referenceChapitre 12 · Référence développeurKapitel 12 · Entwickler-Referenz

Hooks & FiltersHooks & filtresHooks & Filter

A curated list of the most important WordPress actions and filters Javis Booking Pro exposes. Drop these into a custom plugin or your theme’s functions.php to extend behaviour without touching plugin core.

Liste choisie des actions et filtres WordPress exposés par Javis Booking Pro. À placer dans un plugin maison ou le functions.php du thème pour étendre sans toucher au cœur.

Kuratierte Liste der wichtigsten WordPress-Actions und -Filter von Javis Booking Pro. In ein eigenes Plugin oder functions.php des Themes einbinden — ohne Eingriff in den Plugin-Kern.

Booking lifecycle actionsActions du cycle de vieLebenszyklus-Actions

HookHookHookArgsArgsArgsWhenQuandWann
rbp_booking_created action$booking_id, $bookingFires immediately after a booking row is inserted (any source).Juste après l’insertion d’une réservation (toutes sources).Direkt nach Einfügen einer Buchung (jede Quelle).
rbp_booking_confirmed action$booking_id, $bookingBooking transitions to confirmed (payment captured or manual confirm). Invoice auto-creation hooks here.Passage en confirmed. Branchement de la création auto de facture.Übergang zu confirmed. Rechnungserstellung hängt sich hier ein.
rbp_booking_status_changed action$booking_id, $new, $old, $bookingUniversal status-change hook. Use it for an audit log or a CRM sync.Hook universel de changement de statut. Audit log ou sync CRM.Universeller Status-Hook. Für Audit-Log oder CRM-Sync.
rbp_booking_cancelled action$booking_id, $bookingBooking transitions to cancelled (customer self-service or admin).Passage en cancelled.Übergang zu cancelled.
rbp_booking_refunded action$booking_id, $amount, $reason, $is_full, $bookingRefund issued (full or partial).Remboursement (total ou partiel).Erstattung (voll oder teilweise).
rbp_booking_no_show action$booking_id, $bookingAuto-no-show cron flipped the booking.Le cron no-show a basculé la réservation.No-Show-Cron hat die Buchung umgestellt.
rbp_booking_auto_completed action$booking_idSeated booking auto-completed.Réservation seated complétée automatiquement.Platzierte Buchung automatisch abgeschlossen.
rbp_checkin_done action$booking_id, $bookingQR check-in performed.Check-in QR effectué.QR-Check-in durchgeführt.
rbp_payment_confirmed action$booking_id, $bookingPayment captured by any gateway (idempotent — fires exactly once).Paiement capté par n’importe quelle passerelle (idempotent — exactement une fois).Zahlung von einem beliebigen Gateway erfasst (idempotent — genau einmal).
rbp_table_layout_invalidated action$booking_id, $statusHint for cache layers: the floor / table layout for this booking’s date changed.Indice pour les caches : le plan de salle de cette date a changé.Hinweis für Cache-Layer: Tischplan dieses Datums hat sich geändert.

Filters you can hookFiltres disponiblesVerfügbare Filter

FilterFiltreFilterWhat it controlsCe qu’il contrôleWas es steuert
rbp_walkin_init_status filterDefault status of a freshly-created walk-in (default confirmed).Statut par défaut d’un walk-in fraîchement créé (par défaut confirmed).Standardstatus eines neu erstellten Walk-ins (Standard confirmed).
rbp_email_footer_text filterFooter text appended to every outbound email; passes $text, $lang.Pied de page de chaque e-mail sortant ; passe $text, $lang.Footer-Text jeder ausgehenden E-Mail; übergibt $text, $lang.
rbp_reverse_charge_note filterPer-language legal note printed on EU B2B reverse-charge invoices.Mention légale par langue imprimée sur factures B2B auto-liquidation UE.Sprachspezifischer Rechtshinweis auf EU-B2B-Reverse-Charge-Rechnungen.
rbp_form_adapters filterRegister additional Form Integration adapters (your own custom form builder).Enregistrer des adaptateurs Form Integration supplémentaires (votre builder maison).Zusätzliche Form-Integration-Adapter registrieren (eigener Form-Builder).
rbp_trust_proxy_headers filterTrust X-Forwarded-For & co for IP detection. Default true behind Cloudflare.Faire confiance à X-Forwarded-For pour la détection d’IP. true derrière Cloudflare.X-Forwarded-For für IP-Erkennung vertrauen. Hinter Cloudflare standardmäßig true.

Example — sync confirmed bookings into a CRMExemple — synchroniser dans un CRMBeispiel — Bestätigungen ins CRM synchronisieren

// In your custom plugin or theme's functions.php
add_action( 'rbp_booking_confirmed', function( $booking_id, $booking ) {
    $payload = [
        'ref'      => $booking->booking_ref,
        'date'     => $booking->booking_date,
        'time'     => $booking->booking_time,
        'guests'   => (int) $booking->guests,
        'email'    => $booking->customer_email,
        'phone'    => $booking->customer_phone,
        'total'    => (float) $booking->total_amount,
        'currency' => $booking->currency,
        'source'   => $booking->source,
    ];

    wp_remote_post( 'https://crm.example.com/api/bookings', [
        'timeout' => 8,
        'headers' => [
            'Authorization' => 'Bearer ' . getenv( 'CRM_TOKEN' ),
            'Content-Type'  => 'application/json',
        ],
        'body'    => wp_json_encode( $payload ),
    ] );
}, 10, 2 );
!
Keep listeners fast.Listeners rapides.Listener schnell halten. Booking lifecycle actions run inside the customer’s HTTP request. If your listener calls a slow external API, dispatch it to the background queue via RBP_Jobs::enqueue('your_job_id', $payload) rather than running it inline. Les actions du cycle de vie s’exécutent dans la requête HTTP du client. Si votre listener appelle une API lente, envoyez-le en file via RBP_Jobs::enqueue('your_job_id', $payload) au lieu d’inline. Lifecycle-Actions laufen im HTTP-Request des Kunden. Bei langsamer externer API: per RBP_Jobs::enqueue('your_job_id', $payload) in die Background-Queue auslagern statt inline.

REST API endpointsPoints d’API RESTREST-API-Endpunkte

Method & routeMéthode & routeMethode & RoutePurposeRôleZweck
GET /wp-json/rbp/v1/availabilitySlot availability per date / party size / branch. Used by the public form.Disponibilité par date / taille / succursale. Utilisé par le formulaire.Verfügbarkeit pro Datum / Größe / Filiale. Vom Formular genutzt.
POST /wp-json/rbp/v1/bookingsCreate a booking. Returns the reference. Requires valid license.Créer une réservation. Renvoie la référence. Nécessite une licence valide.Buchung anlegen. Liefert die Referenz. Erfordert gültige Lizenz.
GET /wp-json/rbp/v1/packages?timeslot_id=NPackages available for a given slot (v5.10.4+).Forfaits disponibles pour un créneau (v5.10.4+).Verfügbare Pakete für einen Slot (v5.10.4+).
POST /wp-json/rbp/v1/webhook/stripeStripe webhook receiver. HMAC-verified.Récepteur webhook Stripe, vérification HMAC.Stripe-Webhook-Empfänger, HMAC-verifiziert.
POST /wp-json/rbp/v1/webhook/paypalPayPal webhook receiver, signature-verified.Récepteur webhook PayPal, signature vérifiée.PayPal-Webhook-Empfänger, Signatur verifiziert.
POST /wp-json/rbp/v1/webhook/squareSquare webhook receiver.Récepteur webhook Square.Square-Webhook-Empfänger.
POST /wp-json/rbp/v1/webhook/razorpayRazorpay webhook receiver.Récepteur webhook Razorpay.Razorpay-Webhook-Empfänger.
i
For the most up-to-date hook list, browse the source code under /wp-content/plugins/javis-bookingpro/includes/ and search for do_action('rbp_ and apply_filters('rbp_. The changelog tracks every newly-added hook by version. Pour la liste de hooks la plus à jour, parcourez le code source sous /wp-content/plugins/javis-bookingpro/includes/ et cherchez do_action('rbp_ et apply_filters('rbp_. Le changelog trace chaque ajout par version. Für die aktuellste Hook-Liste den Quellcode unter /wp-content/plugins/javis-bookingpro/includes/ durchsuchen nach do_action('rbp_ und apply_filters('rbp_. Das Changelog dokumentiert jeden neuen Hook pro Version.