Zum Inhalt springen

Wie Sie JetBookIn auf Ihre Website bringen: jeder Shortcode und jedes Elementor-Widget mit allen Optionen, auf welche Seite was gehört, wie Sie Ihre Markenfarben übernehmen, wie mehrsprachige Websites funktionieren und – für Entwickler – REST-API, Hooks und WP-CLI-Befehle.

Die Seiten, die Sie brauchen

Eine typische JetBookIn-Website hat diese Seiten. Jeder Block lässt sich mit einem Shortcode (jedes Theme, jeder Editor) oder mit dem passenden Elementor-Widget einfügen.

Seite Was darauf gehört Elementor-Widget
Startseite [jetbookin_search_hero] oder [jetbookin_search], [jetbookin_rooms], [jetbookin_reviews] Such-Hero, Buchungssuche, Zimmer-Raster / Karussell, Bewertungen
Buchen / Suchergebnisse (z. B. /book/) [jetbookin_results] Buchungsergebnisse
Die Seite jeder Zimmerkategorie Wird automatisch erstellt (siehe Zimmerseiten) oder [jetbookin_booking] plus die Zimmer-Shortcodes Zimmer-Buchungsbox, Zimmergalerie, Zimmerdetails, Zimmerpreis ab, Zimmerausstattung, Zimmer-Richtlinien & Tarife
Buchungsbestätigung [jetbookin_confirmation] – wird bei der Aktivierung für Sie angelegt Buchungsbestätigung / Buchung verwalten
Kontakt / Lage [jetbookin_property_info] Unterkunftsinfo & Karte
Bewertungsseite (optional) [jetbookin_review] Bewertungsformular
Housekeeping (optional, Pro) [jetbookin_housekeeping] –
Eigentümerseite (optional, Pro) [jetbookin_owner] –

Für eine kleine Villa mit drei Wohnungen kann das ganz einfach sein: die Startseite mit dem Such-Hero und dem Zimmer-Raster, eine Seite pro Wohnung (automatisch erstellt) und die Bestätigungsseite. Ein Hotel mit 20 Zimmern ergänzt meist eine Seite Buchen mit den Ergebnissen, zu der die Suche auf jeder Seite führt.

Buchungsbestätigungs- und Checkout-Seite

Zwei Einstellungen unter JetBookIn → Einstellungen → Allgemein legen fest, wohin Gäste geleitet werden:

Einstellung Standard Wofür sie dient
ID der Buchungsbestätigungsseite Die bei der Aktivierung angelegte Seite Buchungsbestätigung Die Seite mit [jetbookin_confirmation] oder dem Widget Buchungsbestätigung. Hier landen Gäste nach dem Bezahlen, und jeder E-Mail-Link Ihre Buchung ansehen öffnet sie. Hier finden Gäste ihre Buchung auch über Buchungsnummer und E-Mail.
ID der Checkout-Seite Leer Wohin Reservieren in der Buchungsbox eines Zimmers weiterführt: eine Seite mit dem Widget Buchungsergebnisse oder Buchungsbestätigung, z. B. Ihre Seite Buchen. Leer = die Buchungsbestätigungsseite.
URL der AGB Leer Ist sie gesetzt, müssen Gäste vor dem Bezahlen die AGB akzeptieren. Die Seite öffnet sich in einem Fenster über dem Checkout.

Die Bestätigungsseite zeigt je nachdem, wie sie geöffnet wird: den Checkout für einen in einer Buchungsbox gewählten Aufenthalt, die Buchung des Gastes (über einen Link mit Buchungsnummer und Schlüssel) oder das Formular Ihre Buchung finden. Mehr als eine solche Seite pro Sprache brauchen Sie nie. Was Gäste dort tun können, steht unter Die Buchungsseite des Gastes.

Die ID einer Seite finden Sie, indem Sie sie unter Seiten öffnen; die Zahl nach post= in der Adressleiste ist die ID.

Themes können die Seite rund um die Buchung mit zwei Body-Klassen anpassen: jbi-is-checkout, solange der Gast noch bucht, und jbi-is-booking, sobald es eine Buchung anzuzeigen gibt – zum Beispiel, um während des Checkouts eine Überschrift „Vielen Dank“ auszublenden.

Einstellungen, Abschnitt Allgemein mit den Feldern ID der Buchungsbestätigungsseite, ID der Checkout-Seite und URL der AGB
Einstellungen → Allgemein: die Seiten, zu denen Gäste geleitet werden.

Buchungs-Shortcodes

Diese Blöcke sind interaktiv: Sie laden Verfügbarkeit und Preise live und brauchen JavaScript (Besucher ohne JavaScript sehen Bitte aktivieren Sie JavaScript, um online zu buchen.). Bei yes/no-Attributen gilt alles außer no als ja.

[jetbookin_search] – Suchformular

Daten und Gäste, dann eine Suchschaltfläche. Ohne Ergebnisseite öffnen sich die Ergebnisse unter dem Formular.

Attribut Werte Standard Wofür es dient
results_url Eine URL Leer Seite mit [jetbookin_results], an die die Suche geschickt wird. Leer = Ergebnisse unter dem Formular.
property ID der Unterkunft 0 (alle) Nur die Zimmer dieser Unterkunft durchsuchen.
layout horizontal, vertical horizontal Eine Leiste über die Seite oder untereinander angeordnete Felder für eine Seitenleiste.
button Text Suche Beschriftung der Schaltfläche.
prices yes, no yes Niedrigster Nachtpreis unter jedem Tag der Datumsauswahl.
[jetbookin_search results_url="/book/" button="Check availability"]

[jetbookin_results] – Suchergebnisse und Checkout

Listet die für die gewählten Daten freien Zimmerkategorien mit ihren Tarifen auf, lässt den Gast ein oder mehrere Zimmer wählen und führt den Checkout durch. Ist nichts frei, schlägt er andere Daten vor.

Attribut Werte Standard Wofür es dient
property ID der Unterkunft 0 (alle) Nur die Zimmer dieser Unterkunft.
show_search yes, no yes Die Suchleiste über den Ergebnissen anzeigen.

[jetbookin_booking] – Buchungsbox für ein Zimmer

Kalender, Gäste, Tarife und Preis für eine Zimmerkategorie. Reservieren führt mit dem ausgefüllten Aufenthalt zur Checkout-Seite weiter.

Attribut Werte Standard Wofür es dient
room ID der Zimmerkategorie Die aktuelle Seite der Zimmerkategorie Welche Zimmerkategorie. Überall außer auf der eigenen Seite einer Zimmerkategorie erforderlich.
months 1, 2 1 Im Kalender angezeigte Monate.
checkout page, inline page page führt zur Checkout-Seite weiter (eine ganze Seite für Angaben und Zahlung). inline wickelt die ganze Buchung in der Box ab. Gibt es weder Checkout- noch Bestätigungsseite, bucht die Box inline.
[jetbookin_booking room="42" months="2"]
Eine Zimmerseite mit der Buchungsbox, die den Kalender mit Preisen, die Gäste und eine Schaltfläche Reservieren zeigt
Die Buchungsbox auf einer Zimmerseite.

[jetbookin_calendar] – Verfügbarkeitskalender

Attribut Werte Standard Wofür es dient
room ID der Zimmerkategorie Die aktuelle Seite der Zimmerkategorie Welche Zimmerkategorie.
months 1–3 2 Angezeigte Monate.
prices yes, no yes Nachtpreise an den Tagen.

[jetbookin_confirmation] – Buchungsbestätigung / Buchung verwalten

Keine Attribute. [jetbookin_manage] macht genau dasselbe. Setzen Sie ihn nur auf eine Seite (pro Sprache) und legen Sie diese Seite als ID der Buchungsbestätigungsseite fest.

[jetbookin_search_hero] – Hero über die volle Breite mit Suche

Attribut Werte Standard Wofür es dient
image Bild-URL Leer Hintergrundfoto.
overlay 0–90 35 Wie stark das Foto abgedunkelt wird, in %.
heading Text Leer Haupttitel.
heading_tag h1, h2, div h1 HTML-Tag des Titels.
subheading Text Leer Zeile unter dem Titel.
min_height Pixel (240 oder mehr) 560 Mindesthöhe des Hero.
align left, center center Textausrichtung.
results_url Eine URL Leer Ergebnisseite für die Suche (wie bei [jetbookin_search]).
button Text Verfügbarkeit prüfen Beschriftung der Schaltfläche.
[jetbookin_search_hero image="https://example.com/wp-content/uploads/pool.jpg" heading="Three stone houses above Elounda" subheading="Book direct for the best price" results_url="/book/"]

Shortcodes für Zimmer und Unterkunft

Diese werden auf dem Server erzeugt (gut für Geschwindigkeit und Suchmaschinen). Wo ein Attribut eine Zimmerkategorie erwartet, wird ohne Angabe die Zimmerkategorie verwendet, deren Seite gerade angezeigt wird; Attribute für die Unterkunft greifen auf die aktuelle Unterkunft, die Unterkunft des aktuellen Zimmers oder Ihre erste Unterkunft zurück.

Hat ein Block nichts anzuzeigen (keine Fotos, keine Ausstattung …), sehen Gäste nichts; angemeldete Mitarbeiter und der Elementor-Editor sehen einen Hinweis, was auszufüllen ist.

[jetbookin_rooms] – Zimmer als Raster oder Karussell

Attribut Werte Standard Wofür es dient
property ID der Unterkunft 0 (alle) Nur die Zimmer dieser Unterkunft.
ids Kommagetrennte IDs von Zimmerkategorien Leer (alle) Nur diese Zimmer, in dieser Reihenfolge.
limit 1–50 12 Maximale Anzahl Zimmer.
orderby menu_order, title, price menu_order Ihre eigene Reihenfolge, nach Name oder niedrigster „Ab“-Preis zuerst.
layout grid, carousel grid Ein Raster oder eine scrollende Reihe mit Pfeilen.
columns 1–4 3 Karten pro Reihe (gleichzeitig sichtbare Karten im Karussell).
image_ratio z. B. 4/3, 3/2, 16/9, 1/1, 3/4 4/3 Format des Kartenfotos.
show_specs yes, no yes Gäste, Betten und Größe.
show_excerpt yes, no yes Die Kurzbeschreibung des Zimmers (Auszug).
amenities Zahl 4 Wie viele Ausstattungsmerkmale angezeigt werden; 0 blendet sie aus.
show_price yes, no yes Der Preis „ab … / Nacht“.
button Text (leer blendet sie aus) Ansehen & buchen Beschriftung der Schaltfläche.
heading_tag h2, h3, h4, div h3 HTML-Tag der Zimmernamen.
[jetbookin_rooms layout="carousel" columns="3" orderby="price" amenities="0"]

[jetbookin_room_gallery]

Attribut Werte Standard Wofür es dient
room ID der Zimmerkategorie Aktuelle Zimmerkategorie Wessen Fotos.
post Beitrags-ID Leer Stattdessen die Fotos eines anderen Beitrags zeigen, z. B. die der Unterkunft.
layout mosaic, grid, slider mosaic Mosaik ist ein großes und vier kleine Fotos, mit Alle … Fotos anzeigen, wenn es mehr als fünf gibt.
columns Zahl 3 Spalten für Raster und Slider.
ratio z. B. 4/3 4/3 Fotoformat im Raster.
limit Zahl 0 (alle) Maximale Anzahl Fotos.
featured yes, no yes no zeigt nur die Galeriefotos, z. B. wenn das Beitragsbild eine Illustration ist.
lightbox yes, no yes Fotos beim Klick im Vollbild öffnen.

[jetbookin_room_amenities]

Attribut Werte Standard Wofür es dient
room ID der Zimmerkategorie Aktuelle Zimmerkategorie Welches Zimmer.
columns 1–4 3 Spalten der Liste.
limit Zahl 0 (alle) Maximale Anzahl Ausstattungsmerkmale.
icons yes, no yes Neben jedem Merkmal ein Symbol anzeigen.

[jetbookin_room_specs]

Attribut Werte Standard Wofür es dient
room ID der Zimmerkategorie Aktuelle Zimmerkategorie Welches Zimmer.
items Beliebige von guests, beds, size, kommagetrennt guests,beds,size Was angezeigt wird, in dieser Reihenfolge.
layout inline, list inline In einer Zeile oder untereinander.

[jetbookin_room_price]

Der niedrigste Nachtpreis aus Ihren Preisen, z. B. ab €95 / Nacht.

Attribut Werte Standard Wofür es dient
room ID der Zimmerkategorie Aktuelle Zimmerkategorie Welches Zimmer.
prefix Text ab Vor dem Preis.
suffix Text / Nacht Nach dem Preis.
note Text Leer Eine kleine Zeile darunter, z. B. Bester Preis bei Direktbuchung.

[jetbookin_room_policies]

Attribut Werte Standard Wofür es dient
room ID der Zimmerkategorie Aktuelle Zimmerkategorie Welches Zimmer.
times yes, no yes Check-in- und Check-out-Zeiten.
rates yes, no yes Jeder Tarif mit Verpflegung, Storno- und Zahlungsbedingungen.
text yes, no yes Der Richtlinientext der Unterkunft.

[jetbookin_property_info]

Attribut Werte Standard Wofür es dient
property ID der Unterkunft Aktuelle / erste Unterkunft Welche Unterkunft.
items Beliebige von checkin, checkout, address, phone, email, registry Alle sechs Was angezeigt wird, in dieser Reihenfolge. Die Adresse öffnet Google Maps, Telefon und E-Mail sind Links.
layout list, grid list Untereinander oder in einem Raster.
map yes, no yes Eine eingebettete Google-Karte mit den Koordinaten oder der Adresse der Unterkunft.
map_height Pixel (120 oder mehr) 280 Höhe der Karte.

Shortcodes für Bewertungen Pro

Beide brauchen das Modul Gästebewertungen; ist es aus, zeigen sie nichts an.

[jetbookin_reviews] – veröffentlichte Bewertungen

Die Durchschnittsnote mit ihrer Bezeichnung (z. B. Ausgezeichnet), Bewertungskarten mit Ihren Antworten, eine Schaltfläche Weitere Bewertungen anzeigen und schema.org-Bewertungsdaten für Suchmaschinen.

Attribut Werte Standard Wofür es dient
property_id (oder property) ID der Unterkunft 0 Nur Bewertungen dieser Unterkunft.
room_type_id (oder room) ID der Zimmerkategorie 0 Nur Bewertungen von Gästen, die in dieser Zimmerkategorie übernachtet haben.
limit Zahl 5 Bewertungen pro Seite.
summary yes, no yes Die Durchschnittsnote oben.
bars yes, no no Noten pro Kategorie (Sauberkeit, Komfort, Lage, Personal, Preis-Leistung).
schema yes, no yes Die neuesten Bewertungen in die schema.org-Daten der Seite aufnehmen. Die Gesamtbewertung ist immer enthalten.
empty Text Leer Text, der angezeigt wird, solange es keine Bewertungen gibt. Leer = nichts.
[jetbookin_reviews limit="3" bars="yes" empty="Be the first to review your stay."]

[jetbookin_review] – Bewertungsformular

Keine Attribute. Nur nötig, wenn Gäste auf einer eigenen Seite bewerten sollen: Setzen Sie den Shortcode dort ein und tragen Sie die ID der Seite unter Buchungen → Bewertungen als ID der Bewertungsseite ein. Andernfalls bewerten Gäste auf der Buchungsbestätigungsseite. Das Formular öffnet sich über den signierten Link in der Bewertungs-E-Mail.

Seiten für Housekeeping und Eigentümer Pro

  • [jetbookin_housekeeping] (Modul Housekeeping): die tägliche Reinigungsliste auf dem Handy, für angemeldete Benutzer mit der Rolle Housekeeping-Mitarbeiter und Buchungsmanager. Andere werden zur Anmeldung aufgefordert oder erfahren, dass sie keinen Zugriff haben. Housekeeping-Mitarbeiter werden nach der Anmeldung auf diese Seite geleitet.
  • [jetbookin_owner] (Modul Eigentümer & Abrechnungen): die monatlichen Abrechnungen und der Belegungskalender eines Eigentümers, für angemeldete Benutzer mit der Rolle Eigentümer der Unterkunft, die mit einer Unterkunft verknüpft sind. Eigentümer werden nach der Anmeldung hierher geleitet statt in wp-admin.

Keine der beiden hat Attribute. Beide Seiten werden automatisch vom Seiten-Cache ausgenommen. Legen Sie jede als normale, veröffentlichte WordPress-Seite an.

Zimmerseiten ohne Page Builder

Jede Zimmerkategorie hat eine eigene Seite auf Ihrer Website. Ist sie nicht mit Elementor gebaut, macht JetBookIn selbst eine vollständige Zimmerseite daraus: die Fotogalerie (ab fünf Fotos ein Mosaik), Gäste / Betten / Größe, der „Ab“-Preis, Ihre Beschreibung, Ausstattung, Richtlinien und die Buchungsbox – auf breiten Bildschirmen neben den Details, auf Handys darunter.

Enthält der Inhalt des Zimmers bereits einen Shortcode [jetbookin_room_…], wird nur die Buchungsbox am Ende angefügt; enthält er [jetbookin_booking], wird nichts hinzugefügt. Mit Elementor gestalten Sie im Theme Builder eine Einzelvorlage für Zimmerkategorien und verwenden die Zimmer-Widgets mit — Aktuelle Zimmerkategorie —.

Elementor-Widgets

Suchen Sie im Elementor-Editor nach JetBookIn oder öffnen Sie im Widget-Panel die Kategorie JetBookIn. Jedes Widget erzeugt genau denselben Block wie sein Shortcode.

Das Elementor-Widget-Panel mit geöffneter Kategorie JetBookIn und allen JetBookIn-Widgets
Die Kategorie JetBookIn in Elementor.

Inhaltseinstellungen

Widget Shortcode Inhaltseinstellungen
Buchungssuche jetbookin_search Ergebnisseite, Layout (Horizontale Leiste / Vertikal), Button-Text, Preise pro Nacht anzeigen
Buchungsergebnisse jetbookin_results Suchleiste über den Ergebnissen anzeigen
Zimmer-Buchungsbox jetbookin_booking Zimmerkategorie (— Aktuelle Zimmerkategorie — für Theme-Builder-Vorlagen), Angezeigte Monate (1–2), Nach „Reservieren“ (Auf der Checkout-Seite fortfahren / Im Kasten buchen)
Verfügbarkeitskalender jetbookin_calendar Zimmerkategorie, Angezeigte Monate (1–3, Standard 2), Preise pro Nacht anzeigen
Buchungsbestätigung / Buchung verwalten jetbookin_confirmation Keine
Such-Hero jetbookin_search_hero Hintergrundbild, Überschrift (Standard Ihr Sommerurlaub beginnt hier), Überschrift-Tag, Unterüberschrift (Standard Buchen Sie direkt zum besten Preis.), Ergebnisseite, Button-Text, Ausrichtung, Mindesthöhe (px, pro Gerät), Bild abdunkeln (%)
Zimmer-Raster / Karussell jetbookin_rooms Layout, Unterkunft, Nur diese Zimmer, Maximale Anzahl Zimmer, Reihenfolge (Eigene Reihenfolge / Günstigster Preis zuerst / Name), Spalten, Abstand, Bildformat; Karteninhalt: Titel-Tag, Gäste, Betten & Größe, Kurzbeschreibung, Angezeigte Ausstattung, „Ab“-Preis, Button-Text
Zimmergalerie jetbookin_room_gallery Fotos von (Zimmerkategorie / Unterkunft), Zimmerkategorie, Unterkunft, Layout (Mosaik / Raster / Slider), Spalten, Abstand, Maximale Anzahl Fotos, Beitragsbild einbeziehen, Beim Klick im Vollbild öffnen
Zimmerausstattung jetbookin_room_amenities Zimmerkategorie, Spalten, Abstand, Maximum (0 = alle), Symbole
Zimmerdetails jetbookin_room_specs Zimmerkategorie, Anzeigen (Gäste / Betten / Größe), Layout (In einer Zeile / Liste)
Zimmerpreis ab jetbookin_room_price Zimmerkategorie, Vor dem Preis, Nach dem Preis, Kleiner Hinweis
Zimmer-Richtlinien & Tarife jetbookin_room_policies Zimmerkategorie, Check-in- / Check-out-Zeiten, Tarife (Stornierung, Zahlung, Verpflegung), Text zu den Richtlinien der Unterkunft
Unterkunftsinfo & Karte jetbookin_property_info Unterkunft, Anzeigen (Check-in, Check-out, Adresse, Telefon, E-Mail, Registrierungsnummer), Layout (Liste / Raster), Karte, Kartenhöhe (px)
Bewertungen jetbookin_reviews Unterkunft, Zimmerkategorie (— Alle Zimmer / aktuelle Zimmerkategorie —), Bewertungen pro Seite, Durchschnittliche Bewertung, Bewertungen nach Kategorie, Aktuelle Bewertungen für Suchmaschinen, Text, wenn keine Bewertungen vorhanden sind
Bewertungsformular jetbookin_review Keine

Spalten sind responsiv: standardmäßig 3 auf dem Desktop, 2 auf dem Tablet und 1 auf dem Handy, und Sie können jedes Gerät einzeln einstellen.

Stileinstellungen

Jedes JetBookIn-Widget hat im Tab Stil einen Abschnitt Farben & Form:

  • Primärfarbe (Buttons, Auswahl), Button-Text, Hintergrund, Text, Rahmen – Farben;
  • Eckenradius – 0 bis 24 px;
  • Typografie – Schriftart, Größe, Stärke usw. für das ganze Widget.

Einige Widgets haben mehr:

  • Zimmer-Raster / Karussell: Karte (Hintergrund, Schatten, Innenabstand), Zimmertitel und Preis (Typografie und Farbe).
  • Zimmerausstattung: Symbole (Farbe, Größe).
  • Zimmerpreis ab: Preis (Typografie und Farbe).
  • Such-Hero: Überschrift und Unterüberschrift (Typografie und Farbe).
  • Bewertungen: Titel der Bewertung und Text der Bewertung (Typografie und Farbe).

Tipp: Stellen Sie bei den Buchungs-Widgets einer Seite dieselbe Primärfarbe ein. Die Schaltfläche Buchung abschließen, die bei unbezahlten Buchungen erscheint, übernimmt Farben, Ecken und Schrift vom Buchungs-Widget der Seite.

Farben und Gestaltung

Alle JetBookIn-Blöcke beziehen ihre Farben und Formen aus CSS-Variablen, die auf dem Wrapper .jbi-widget gesetzt sind. Die Stileinstellungen von Elementor setzen genau diese Variablen. Ohne Elementor setzen Sie sie unter Design → Customizer → Zusätzliches CSS oder im Stylesheet Ihres Themes.

Variable Standard Verwendet für
--jbi-primary #1c1a17 Schaltflächen, ausgewählte Daten, Symbole
--jbi-on-primary #fff Text auf Schaltflächen
--jbi-accent #5b3fd1 Akzente und Hervorhebungen
--jbi-surface #fff Hintergrund von Boxen und Karten
--jbi-surface-2 #f6f5f2 Zweiter Hintergrund (Panels, Zeilen)
--jbi-text inherit Textfarbe (standardmäßig die Ihres Themes)
--jbi-muted #6b6f76 Nebentext
--jbi-border #e4e2dd Rahmen und Linien
--jbi-good #1b7f4d Positive Hinweise, z. B. kostenlose Stornierung
--jbi-bad #b3261e Fehler und Warnungen
--jbi-radius 10px Eckenradius
--jbi-gap 24px Abstand zwischen Karten und Elementen
--jbi-cols 3 Spalten von Rastern
--jbi-shadow Ein weicher zweischichtiger Schatten Kartenschatten

Die Variablen sind direkt auf .jbi-widget definiert; setzen Sie sie also mit einem mindestens ebenso starken Selektor, zum Beispiel:

/* Meerblaue Schaltflächen, eckige Ecken, überall */
body .jbi-widget {
	--jbi-primary: #0e5e6f;
	--jbi-on-primary: #ffffff;
	--jbi-radius: 4px;
}

/* Eine dunkle Buchungsbox nur in einem Abschnitt */
.booking-dark .jbi-widget {
	--jbi-surface: #1f1d1a;
	--jbi-surface-2: #2a2723;
	--jbi-text: #f4f1ea;
	--jbi-muted: #b9b4aa;
	--jbi-border: #3a3631;
}

Die Variablen nur auf body oder :root zu setzen, hat keine Wirkung, weil .jbi-widget eigene Standardwerte setzt.

Mehrsprachige Websites (Polylang, WPML)

JetBookIn funktioniert mit Polylang und WPML. Übersetzungen einer Zimmerkategorie oder Unterkunft sind dasselbe Zimmer: Sie teilen Verfügbarkeit, Preise, Buchungen, Galerie und Hauptbild. Gäste sehen alles in der Sprache der Seite, auf der sie buchen, und erhalten ihre E-Mails und ihre Buchungsseite in dieser Sprache.

Was zu übersetzen ist

  • Zimmerkategorien und Unterkünfte: Übersetzen Sie sie mit Ihrem Mehrsprachigkeits-Plugin (Titel, Beschreibung, Auszug). In der Übersetzung einer Unterkunft schreiben Sie auch deren Check-in-Anleitung in dieser Sprache.
  • Die Buchungsbestätigungsseite und, falls Sie eine verwenden, die Seite Buchen / Checkout: Legen Sie von jeder eine Übersetzung mit demselben Shortcode oder Widget an. In die Einstellungen kommt nur die ID des Originals; JetBookIn leitet Gäste zur Übersetzung in ihrer Sprache.
  • AGB- und Datenschutzseiten sowie die Bewertungsseite: Übersetzen Sie sie auf die gleiche Weise. Der Checkout öffnet die Version in der Sprache des Gastes.
  • Seiten mit Suche, Zimmern und Bewertungen: Übersetzen Sie sie als normale Seiten; Shortcodes und Widgets bleiben gleich.

Hat eine Seite keine Übersetzung, wird das Original verwendet.

Namen, die Sie im Dashboard eingeben

Namen von Tarifen, Extras (Name und Beschreibung), Aktionen, eigene Gebühren und die Bankverbindung für Überweisungen werden als Strings registriert: in Polylang unter Sprachen → Übersetzungen (Gruppe JetBookIn), in WPML unter String-Übersetzung (Domain JetBookIn). Tarife, Extras und Aktionen haben im Dashboard außerdem direkt unter ihrem Namen die Felder In anderen Sprachen; beide Stellen bleiben synchron. Eine leere Übersetzung zeigt das Original.

E-Mails

E-Mail-Texte werden pro Sprache unter Einstellungen → E-Mails bearbeitet, nicht mit dem Mehrsprachigkeits-Plugin. Siehe E-Mails → Ein Text pro Sprache.

Entwickler: REST-API

Alles, was das Dashboard tut, läuft über die REST-API im Namespace jetbookin/v1, z. B. https://example.com/wp-json/jetbookin/v1/availability/search. Endpunkte für Mitarbeiter brauchen einen angemeldeten Benutzer mit der Berechtigung manage_jetbookin (Administratoren und die Rolle Buchungsmanager) – ein Cookie mit REST-Nonce oder ein Anwendungspasswort für Apps und andere Server. Die stärker genutzten öffentlichen Endpunkte (Checkout, Preisabfragen, Gastaktionen, Bewertungen) sind pro Client in der Anfragerate begrenzt.

Die wichtigsten öffentlichen Endpunkte

Methode und Pfad Wofür er dient
GET /availability/search Freie Zimmerkategorien und Tarife für einen Aufenthalt: check_in, check_out (YYYY-MM-DD), adults, children, optional property_id, room_type_id.
GET /availability/calendar Verfügbarkeit und Preise einer Zimmerkategorie Tag für Tag: room_type_id, start, days (bis 120, Standard 62).
GET /availability/alternatives Nahe Termine, wenn der gewählte Aufenthalt nicht verfügbar ist.
POST /availability/quote Live-Preis eines Aufenthalts mit Extras.
POST /checkout Legt aus den Angaben des Gastes und dem gewählten Aufenthalt eine Buchung an und startet die Zahlung.
GET /booking-status Status einer Buchung (ref + key).
GET /resume, POST /resume/cancel Die nicht abgeschlossene Buchung dieses Besuchers; sie stornieren.
POST /guest/lookup Eine Buchung über Buchungsnummer und E-Mail finden; liefert den Link zur Buchungsseite.
GET /guest/booking Die Daten der Buchungsseite des Gastes (ref + key).
POST /guest/booking/pay, /cancel, /update, /verify, /resend, /proof, /card Gastaktionen: bezahlen (oder eine Anforderung bezahlen), stornieren, Ankunftszeit / Wünsche / Ausweisdaten speichern, per E-Mail-Link bestätigen, diesen Link erneut senden, einen Überweisungsbeleg hochladen (multipart), eine neue Garantiekarte hinzufügen.
GET /reviews/published Veröffentlichte Bewertungen.
GET / POST /guest/review Das Bewertungsformular für eine Buchung und das Absenden.

Zu den Endpunkten für Mitarbeiter gehören /bookings (Liste, Anlegen, PUT /bookings/{id}, Stornieren, Zahlungen, Zahlungsanforderungen, Nachrichten), /calendar, /quote, /settings, /emails, /reviews und /ical/connections. Zahlungsanbieter rufen ihre eigenen Webhook-Routen im selben Namespace auf.

Entwickler: Hooks

Alle JetBookIn-Hooks beginnen mit jbi/. Verwenden Sie sie in einem kleinen Plugin oder in der functions.php Ihres Child-Themes.

Actions

Action Argumente Wird ausgelöst, wenn
jbi/booking_created $booking Eine Buchung angelegt wurde (jede Quelle, jeder Status).
jbi/booking_confirmed $booking Eine Buchung bestätigt wurde.
jbi/booking_awaiting_payment $booking Eine Buchung auf eine Banküberweisung wartet.
jbi/booking_status_changed $booking, $old, $new Sich der Status ändert.
jbi/booking_cancelled $booking Eine Buchung storniert wurde.
jbi/booking_modified $booking Daten, Zimmer oder Gäste geändert wurden.
jbi/booking_deleted $booking Eine Testbuchung gelöscht wurde.
jbi/payment_received $booking, $amount Eine Online-Zahlung abgeschlossen wurde.
jbi/balance_charge_failed $booking Eine automatische Abbuchung des Restbetrags fehlgeschlagen ist.
jbi/ari_changed $change (Zimmerkategorie, Einheit oder Tarif, Beginn, Ende) Verfügbarkeit, Preise oder Einschränkungen sich geändert haben – der Hook, um Änderungen an andere Systeme weiterzugeben.
jbi/review_submitted $review, $booking Ein Gast eine Bewertung abgegeben hat.
jbi/review_moderated $review, $fields Eine Bewertung veröffentlicht, ausgeblendet oder beantwortet wurde.
jbi/housekeeping_changed $unit, $details Sich der Housekeeping-Status oder die Notiz einer Einheit geändert hat.
jbi/document_issued $doc Eine Quittung, Rechnung oder Gutschrift ausgestellt wurde.
jbi/owner_paid $owner_id, $month, $fields Eine Eigentümerabrechnung als bezahlt markiert wurde.
jbi/ical_conflict $connection, $events Ein Kalenderimport eine mögliche Doppelbuchung gefunden hat.
jbi/ical_failing $connection, $message Ein Kalenderimport wiederholt fehlschlägt.
jbi/hourly, jbi/daily – Die stündlichen und täglichen Aufgaben von JetBookIn laufen.
jbi/loaded $plugin JetBookIn fertig geladen ist (für Add-ons).

Filter

Filter Standard Zweck
jbi/max_open_holds 1 Erlaubte unbezahlte Buchungen pro E-Mail-Adresse.
jbi/max_open_holds_network 3 Erlaubte unbezahlte Buchungen pro Netzwerk.
jbi/max_rooms_public 4 Zimmer pro Online-Buchung.
jbi/max_rooms_per_booking 10 Zimmer pro Buchung, jede Quelle.
jbi/checkout_verify true Geben Sie einen WP_Error zurück, um einen Checkout abzulehnen – die Stelle für ein CAPTCHA wie Cloudflare Turnstile. Erhält die REST-Anfrage.
jbi/client_ip Einstellungen → System → Besucheradresse Die IP des Besuchers hinter einem Proxy oder CDN (Anfragebegrenzung und Grenzen für unbezahlte Buchungen verwenden sie). Erhält die in der Einstellung gewählte Adresse und $_SERVER.
jbi/rate_limit Pro Bucket Erlaubte Anfragen im Begrenzungsfenster eines öffentlichen Endpunkts (erhält das Limit und den Bucket-Namen, z. B. checkout).
jbi/render/{name} Das HTML Die Ausgabe eines serverseitig erzeugten Blocks ändern: rooms, gallery, amenities, specs, price, policies, property, reviews, hero.
jbi/auto_room_page true Geben Sie false zurück, um keine vollständigen Zimmerseiten mehr zu erzeugen; dann wird nur die Buchungsbox hinzugefügt.
jbi/auto_booking_box true Geben Sie false zurück, um den Seiten der Zimmerkategorien nichts hinzuzufügen.
jbi/room_url Der Link des Zimmers Wohin Zimmerkarten verlinken (erhält die Zimmer-ID).
jbi/structured_data_enabled true im Frontend Geben Sie false zurück, wenn ein SEO-Plugin bereits Ihr Lodging-Schema ausgibt.
jbi/structured_data Der JSON-LD-Graph Die schema.org-Daten ändern.
jbi/structured_data_room_type Accommodation Schema-Typ eines Zimmers, z. B. HotelRoom oder Suite.
jbi/reviews/schema Bestandteile der Bewertungen Das Bewertungsschema einer Unterkunft ändern.
jbi/ical_export_summary Nicht verfügbar Der Ereignistitel in Ihren exportierten Kalendern.
jbi/module_enabled Die Einstellung Ein Modul per Code ausschalten. Ein Modul, das die Lizenz nicht umfasst, lässt sich damit nicht einschalten.
// Zwei unbezahlte Buchungen pro E-Mail-Adresse erlauben.
add_filter( 'jbi/max_open_holds', fn() => 2 );

// Jede bestätigte Buchung an ein anderes System senden.
add_action( 'jbi/booking_confirmed', function ( array $booking ) {
	wp_remote_post( 'https://example.com/hook', [ 'body' => [ 'ref' => $booking['ref'] ] ] );
} );

// Zimmer sind für Suchmaschinen Hotelzimmer.
add_filter( 'jbi/structured_data_room_type', fn() => 'HotelRoom' );

Die fest vorgegebenen Warn-E-Mails lassen sich überschreiben, indem Sie admin-conflict.php, admin-sync-failing.php oder admin-late-payment.php nach yourtheme/jetbookin/emails/ kopieren.

Entwickler: WP-CLI

Befehl Wofür er dient
wp jetbookin run-jobs [--limit=<n>] Führt sofort jede fällige Aufgabe aus: Kalenderimporte, Erinnerungen, Abbuchungen des Restbetrags, Abläufe. --limit begrenzt die Zahl der verarbeiteten Aktionen in der Warteschlange (Standard 100).
wp jetbookin sync [<connection-id>...] [--force] Importiert Plattformkalender sofort – alle aktiven Import-Links oder die angegebenen. --force ignoriert HTTP-Caching.
wp jetbookin status Zeigt, wann die stündlichen und täglichen Aufgaben zuletzt liefen, ob ein Server-Cron eingerichtet ist, überfällige Aktionen und fehlerhafte Kalender.

Auf Live-Websites empfiehlt sich ein echter Server-Cron statt des von Besuchern ausgelösten WordPress-Crons, zum Beispiel alle 5 Minuten:

*/5 * * * * cd /path/to/wordpress && wp jetbookin run-jobs --quiet

Zu den Hintergrundaufgaben siehe Erweiterte Einstellungen.

Häufige Fragen

Die Buchungsbox zeigt nichts an.

Außerhalb der eigenen Seite einer Zimmerkategorie braucht sie room="ID" (in Elementor: die Zimmerkategorie wählen). Prüfen Sie außerdem, ob die Zimmerkategorie veröffentlicht ist und Preise hat.

Die Suche schickt Gäste auf die falsche Seite.

Setzen Sie bei der Suche results_url (oder im Widget Ergebnisseite) auf die Seite mit [jetbookin_results]. Ohne diese Angabe öffnen sich die Ergebnisse unter dem Formular.

Meine Farben ändern sich nicht.

Setzen Sie die Variablen auf .jbi-widget (zum Beispiel body .jbi-widget { … }), nicht nur auf body oder :root. Leeren Sie danach den Cache eines CSS- oder Optimierungs-Plugins.

Kann ich die Shortcodes in Gutenberg, Divi oder Bricks verwenden?

Ja. Fügen Sie einen Shortcode-Block (oder das Shortcode-Element Ihres Builders) ein und fügen Sie den Shortcode dort ein.

Brauche ich eine eigene Checkout-Seite?

Nein. Ist ID der Checkout-Seite leer, führt die Buchungsbox zur Buchungsbestätigungsseite weiter. Eine eigene Seite Buchen mit den Ergebnissen ist nützlich, wenn Sie zusätzlich eine Suchseite möchten.

Ich habe die Seite Buchungsbestätigung versehentlich gelöscht.

Legen Sie eine Seite mit [jetbookin_confirmation] an, veröffentlichen Sie sie und tragen Sie ihre ID unter Einstellungen → Allgemein als ID der Buchungsbestätigungsseite ein. Links in bereits verschickten E-Mails zeigen noch auf die alte Adresse; schicken Sie betroffenen Gästen ihren Buchungslink bei Bedarf erneut.