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.

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"]

[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.

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.