Jak umieścić JetBookIn na swojej stronie: każdy shortcode i widżet Elementora ze wszystkimi opcjami, na której stronie powinien się znaleźć, jak dopasować kolory do Twojej marki, jak działają strony wielojęzyczne oraz – dla programistów – REST API, hooki i polecenia WP-CLI.
Potrzebne strony
Typowa strona z JetBookIn ma poniższe podstrony. Każdy blok można umieścić za pomocą shortcode’u (w dowolnym motywie lub edytorze) albo odpowiadającego mu widżetu Elementora.
| Strona | Co na niej umieścić | Widżet Elementora |
|---|---|---|
| Strona główna | [jetbookin_search_hero] lub [jetbookin_search], [jetbookin_rooms], [jetbookin_reviews] |
Sekcja wyszukiwania (hero), Wyszukiwarka rezerwacji, Siatka / karuzela pokoi, Opinie |
| Rezerwacja / wyniki wyszukiwania (np. /book/) | [jetbookin_results] |
Wyniki wyszukiwania |
| Strona każdego typu pokoju | Tworzona automatycznie (zobacz Strony pokoi) albo [jetbookin_booking] wraz z shortcode’ami pokoju |
Pole rezerwacji pokoju, Galeria pokoju, Parametry pokoju, Cena pokoju od, Udogodnienia pokoju, Zasady i ceny pokoju |
| Potwierdzenie rezerwacji | [jetbookin_confirmation] – tworzona automatycznie przy aktywacji |
Potwierdzenie rezerwacji / Zarządzanie rezerwacją |
| Kontakt / dojazd | [jetbookin_property_info] |
Informacje o obiekcie i mapa |
| Strona opinii (opcjonalnie) | [jetbookin_review] |
Formularz opinii |
| Sprzątanie (opcjonalnie, Pro) | [jetbookin_housekeeping] |
– |
| Strona właściciela (opcjonalnie, Pro) | [jetbookin_owner] |
– |
Przy małej willi z trzema apartamentami wystarczy czasem tak prosty zestaw: strona główna z sekcją wyszukiwania (hero) i siatką pokoi, po jednej stronie na każdy apartament (tworzonej automatycznie) oraz strona potwierdzenia. Hotel z 20 pokojami zwykle dodaje stronę Rezerwuj z wynikami, do której prowadzi wyszukiwarka z każdej podstrony.
Strona potwierdzenia rezerwacji i strona finalizacji
Dwa ustawienia w JetBookIn → Ustawienia → Ogólne wskazują JetBookIn, dokąd kierować gości:
| Ustawienie | Domyślnie | Do czego służy |
|---|---|---|
| ID strony potwierdzenia rezerwacji | Strona Potwierdzenie rezerwacji utworzona przy aktywacji | Strona z [jetbookin_confirmation] lub widżetem Potwierdzenie rezerwacji. Tu trafiają goście po zapłacie i tę stronę otwiera każdy link Zobacz rezerwację w e-mailach. Tutaj goście mogą też odszukać rezerwację po numerze i adresie e-mail. |
| ID strony finalizacji rezerwacji | Puste | Dokąd prowadzi przycisk Zarezerwuj w polu rezerwacji pokoju: strona z widżetem Wyniki wyszukiwania lub Potwierdzenie rezerwacji, np. Twoja strona Rezerwuj. Puste = strona potwierdzenia rezerwacji. |
| URL regulaminu | Puste | Jeśli jest ustawiony, goście muszą zaakceptować regulamin przed zapłatą. Strona otwiera się w panelu nad formularzem finalizacji. |
W zależności od tego, jak zostanie otwarta, strona potwierdzenia pokazuje: finalizację pobytu wybranego w polu rezerwacji; rezerwację gościa (z linku z numerem rezerwacji i kluczem); albo formularz Znajdź rezerwację. Nigdy nie potrzebujesz więcej niż jednej takiej strony na język. Co goście mogą tam zrobić, opisuje rozdział Strona rezerwacji gościa.
Aby poznać ID strony, otwórz ją w menu Strony; liczba po post= w pasku adresu to ID.
Motywy mogą dopasować otoczenie rezerwacji dzięki dwóm klasom elementu body: jbi-is-checkout, gdy gość jeszcze rezerwuje, oraz jbi-is-booking, gdy jest już rezerwacja do pokazania – na przykład aby ukryć nagłówek „Dziękujemy” podczas finalizacji.

Shortcody rezerwacji
Te bloki są interaktywne: na bieżąco wczytują dostępność i ceny i wymagają JavaScriptu (odwiedzający bez niego zobaczą komunikat Aby zarezerwować online, prosimy włączyć JavaScript.). W atrybutach yes/no każda wartość inna niż no oznacza „tak”.
[jetbookin_search] – formularz wyszukiwania
Daty i liczba gości, a potem przycisk wyszukiwania. Bez strony wyników wyniki pojawiają się pod formularzem.
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
results_url |
Adres URL | Puste | Strona z [jetbookin_results], do której trafia wyszukiwanie. Puste = wyniki pod formularzem. |
property |
ID obiektu | 0 (wszystkie) | Wyszukuje tylko pokoje tego obiektu. |
layout |
horizontal, vertical |
horizontal |
Pasek na całą szerokość strony albo pola jedno pod drugim, np. do paska bocznego. |
button |
Tekst | Szukaj | Napis na przycisku. |
prices |
yes, no |
yes |
Najniższa cena za noc pod każdym dniem w kalendarzu wyboru dat. |
[jetbookin_search results_url="/book/" button="Check availability"]
[jetbookin_results] – wyniki wyszukiwania i finalizacja
Wyświetla typy pokoi wolne w wybranych datach wraz z planami cenowymi, pozwala gościowi wybrać jeden lub kilka pokoi i prowadzi przez finalizację rezerwacji. Jeśli nic nie jest wolne, proponuje inne daty.
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
property |
ID obiektu | 0 (wszystkie) | Tylko pokoje tego obiektu. |
show_search |
yes, no |
yes |
Pokazuje pasek wyszukiwania nad wynikami. |
[jetbookin_booking] – pole rezerwacji pokoju
Kalendarz, goście, plany cenowe i cena dla jednego typu pokoju. Przycisk Zarezerwuj prowadzi na stronę finalizacji z już wypełnionymi danymi pobytu.
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
room |
ID typu pokoju | Typ pokoju bieżącej strony | Który typ pokoju. Wymagany wszędzie poza stroną danego typu pokoju. |
months |
1, 2 |
1 |
Liczba miesięcy widocznych w kalendarzu. |
checkout |
page, inline |
page |
page przechodzi na stronę finalizacji (pełną stronę na dane i płatność). inline zatrzymuje całą rezerwację w polu. Gdy nie ma ani strony finalizacji, ani strony potwierdzenia, pole prowadzi rezerwację w sobie. |
[jetbookin_booking room="42" months="2"]

[jetbookin_calendar] – kalendarz dostępności
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
room |
ID typu pokoju | Typ pokoju bieżącej strony | Który typ pokoju. |
months |
1–3 |
2 |
Liczba widocznych miesięcy. |
prices |
yes, no |
yes |
Ceny za noc przy poszczególnych dniach. |
[jetbookin_confirmation] – potwierdzenie rezerwacji / zarządzanie rezerwacją
Bez atrybutów. [jetbookin_manage] działa dokładnie tak samo. Umieść go tylko na jednej stronie (dla każdego języka) i ustaw tę stronę jako ID strony potwierdzenia rezerwacji.
[jetbookin_search_hero] – sekcja hero na całą szerokość z wyszukiwarką
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
image |
URL obrazu | Puste | Zdjęcie w tle. |
overlay |
0–90 |
35 |
Stopień przyciemnienia zdjęcia, w %. |
heading |
Tekst | Puste | Główny tytuł. |
heading_tag |
h1, h2, div |
h1 |
Znacznik HTML tytułu. |
subheading |
Tekst | Puste | Wiersz pod tytułem. |
min_height |
Piksele (240 lub więcej) | 560 |
Minimalna wysokość sekcji. |
align |
left, center |
center |
Wyrównanie tekstu. |
results_url |
Adres URL | Puste | Strona wyników wyszukiwania (jak w [jetbookin_search]). |
button |
Tekst | Sprawdź dostępność | Napis na przycisku. |
[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/"]
Shortcody pokoi i obiektu
Te bloki są generowane na serwerze (to dobre dla szybkości i wyszukiwarek). Gdy atrybut przyjmuje typ pokoju, a go pominiesz, użyty zostanie typ pokoju, którego strona jest wyświetlana; atrybuty obiektu domyślnie przyjmują bieżący obiekt, obiekt bieżącego pokoju albo Twój pierwszy obiekt.
Gdy blok nie ma nic do pokazania (brak zdjęć, brak udogodnień…), goście nic nie widzą; zalogowany personel i edytor Elementora widzą podpowiedź, co trzeba uzupełnić.
[jetbookin_rooms] – siatka lub karuzela pokoi
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
property |
ID obiektu | 0 (wszystkie) | Tylko pokoje tego obiektu. |
ids |
ID typów pokoi oddzielone przecinkami | Puste (wszystkie) | Tylko te pokoje, w tej kolejności. |
limit |
1–50 |
12 |
Maksymalna liczba pokoi. |
orderby |
menu_order, title, price |
menu_order |
Twoja własna kolejność, według nazwy albo od najniższej ceny „od”. |
layout |
grid, carousel |
grid |
Siatka albo przewijany rząd ze strzałkami. |
columns |
1–4 |
3 |
Liczba kart w rzędzie (w karuzeli: liczba kart widocznych naraz). |
image_ratio |
np. 4/3, 3/2, 16/9, 1/1, 3/4 |
4/3 |
Proporcje zdjęcia na karcie. |
show_specs |
yes, no |
yes |
Liczba gości, łóżka i powierzchnia. |
show_excerpt |
yes, no |
yes |
Krótki opis pokoju (zajawka). |
amenities |
Liczba | 4 |
Ile udogodnień pokazać; 0 je ukrywa. |
show_price |
yes, no |
yes |
Cena „od … / noc”. |
button |
Tekst (puste ukrywa przycisk) | Zobacz i zarezerwuj | Napis na przycisku. |
heading_tag |
h2, h3, h4, div |
h3 |
Znacznik HTML nazw pokoi. |
[jetbookin_rooms layout="carousel" columns="3" orderby="price" amenities="0"]
[jetbookin_room_gallery]
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
room |
ID typu pokoju | Bieżący typ pokoju | Czyje zdjęcia. |
post |
ID wpisu | Puste | Zamiast tego pokazuje zdjęcia innego wpisu, np. obiektu. |
layout |
mosaic, grid, slider |
mosaic |
Mozaika to jedno duże zdjęcie i cztery małe, z przyciskiem Pokaż wszystkie zdjęcia (…), gdy jest ich więcej niż pięć. |
columns |
Liczba | 3 |
Liczba kolumn dla siatki i slidera. |
ratio |
np. 4/3 |
4/3 |
Proporcje zdjęć w siatce. |
limit |
Liczba | 0 (wszystkie) |
Maksymalna liczba zdjęć. |
featured |
yes, no |
yes |
no pokazuje tylko zdjęcia z galerii, np. gdy obrazek wyróżniający jest ilustracją. |
lightbox |
yes, no |
yes |
Otwiera zdjęcia na pełnym ekranie po kliknięciu. |
[jetbookin_room_amenities]
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
room |
ID typu pokoju | Bieżący typ pokoju | Który pokój. |
columns |
1–4 |
3 |
Liczba kolumn listy. |
limit |
Liczba | 0 (wszystkie) |
Maksymalna liczba udogodnień. |
icons |
yes, no |
yes |
Pokazuje ikonę przy każdym udogodnieniu. |
[jetbookin_room_specs]
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
room |
ID typu pokoju | Bieżący typ pokoju | Który pokój. |
items |
Dowolne z guests, beds, size, oddzielone przecinkami |
guests,beds,size |
Co pokazać i w jakiej kolejności. |
layout |
inline, list |
inline |
W jednym wierszu albo jedno pod drugim. |
[jetbookin_room_price]
Najniższa cena za noc z Twoich planów cenowych, np. od 95 € / noc.
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
room |
ID typu pokoju | Bieżący typ pokoju | Który pokój. |
prefix |
Tekst | od | Przed ceną. |
suffix |
Tekst | / noc | Po cenie. |
note |
Tekst | Puste | Mały dopisek pod ceną, np. Najlepsza cena przy rezerwacji bezpośredniej. |
[jetbookin_room_policies]
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
room |
ID typu pokoju | Bieżący typ pokoju | Który pokój. |
times |
yes, no |
yes |
Godziny zameldowania i wymeldowania. |
rates |
yes, no |
yes |
Każdy plan cenowy z wyżywieniem, warunkami anulowania i płatności. |
text |
yes, no |
yes |
Tekst zasad obiektu. |
[jetbookin_property_info]
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
property |
ID obiektu | Bieżący / pierwszy obiekt | Który obiekt. |
items |
Dowolne z checkin, checkout, address, phone, email, registry |
Wszystkie sześć | Co pokazać i w jakiej kolejności. Adres otwiera Mapy Google, telefon i e-mail są linkami. |
layout |
list, grid |
list |
Jedno pod drugim albo w siatce. |
map |
yes, no |
yes |
Osadzona mapa Google według współrzędnych lub adresu obiektu. |
map_height |
Piksele (120 lub więcej) | 280 |
Wysokość mapy. |
Shortcody opinii Pro
Oba wymagają modułu Opinie gości; gdy jest wyłączony, nic nie wyświetlają.
[jetbookin_reviews] – opublikowane opinie
Średnia ocena z opisem (np. Doskonały), karty opinii z Twoimi odpowiedziami, przycisk Pokaż więcej opinii oraz dane ocen schema.org dla wyszukiwarek.
| Atrybut | Wartości | Domyślnie | Do czego służy |
|---|---|---|---|
property_id (lub property) |
ID obiektu | 0 | Tylko opinie o tym obiekcie. |
room_type_id (lub room) |
ID typu pokoju | 0 | Tylko opinie gości, którzy mieszkali w tym typie pokoju. |
limit |
Liczba | 5 |
Liczba opinii na stronę. |
summary |
yes, no |
yes |
Średnia ocena na górze. |
bars |
yes, no |
no |
Oceny w kategoriach (czystość, komfort, lokalizacja, personel, stosunek jakości do ceny). |
schema |
yes, no |
yes |
Dodaje najnowsze opinie do danych schema.org strony. Ocena ogólna jest dodawana zawsze. |
empty |
Tekst | Puste | Tekst wyświetlany, gdy nie ma jeszcze opinii. Puste = nic. |
[jetbookin_reviews limit="3" bars="yes" empty="Be the first to review your stay."]
[jetbookin_review] – formularz opinii
Bez atrybutów. Potrzebny tylko wtedy, gdy chcesz, aby goście wystawiali opinie na osobnej stronie: umieść go na niej i wpisz ID tej strony jako ID strony opinii w Rezerwacje → Opinie. W przeciwnym razie goście wystawiają opinie na stronie potwierdzenia rezerwacji. Formularz otwiera się z podpisanego linku w e-mailu z prośbą o opinię.
Strony sprzątania i właściciela Pro
[jetbookin_housekeeping](moduł Sprzątanie): codzienna lista sprzątania na telefonie, dla zalogowanych użytkowników z rolą Pracownik sprzątający oraz menedżerów rezerwacji. Pozostali zobaczą prośbę o zalogowanie lub informację o braku dostępu. Personel sprzątający trafia na tę stronę po zalogowaniu.[jetbookin_owner](moduł Właściciele i rozliczenia): miesięczne rozliczenia i kalendarz obłożenia właściciela, dla zalogowanych użytkowników z rolą Właściciel obiektu powiązanych z obiektem. Właściciele trafiają tu po zalogowaniu zamiast do wp-admin.
Żaden z nich nie ma atrybutów. Obie strony są automatycznie wyłączane z pamięci podręcznej. Utwórz każdą jako zwykłą, opublikowaną stronę WordPressa.
Strony pokoi bez kreatora stron
Każdy typ pokoju ma na Twojej stronie własną podstronę. Jeśli nie jest zbudowana w Elementorze, JetBookIn sam zamienia ją w kompletną stronę pokoju: galeria zdjęć (mozaika od pięciu zdjęć), goście / łóżka / powierzchnia, cena „od”, Twój opis, udogodnienia, zasady i pole rezerwacji – obok szczegółów na szerokich ekranach, pod nimi na telefonach.
Jeśli treść pokoju zawiera już shortcode [jetbookin_room_…], na końcu dodawane jest tylko pole rezerwacji; jeśli zawiera [jetbookin_booking], nic nie jest dodawane. W Elementorze zaprojektuj w Theme Builderze jeden szablon pojedynczego typu pokoju i użyj widżetów pokoju z opcją — Bieżący typ pokoju —.
Widżety Elementora
W edytorze Elementora wyszukaj JetBookIn lub otwórz kategorię JetBookIn w panelu widżetów. Każdy widżet generuje dokładnie ten sam blok co odpowiadający mu shortcode.

Ustawienia treści
| Widżet | Shortcode | Ustawienia treści |
|---|---|---|
| Wyszukiwarka rezerwacji | jetbookin_search |
Strona wyników, Układ (Pasek poziomy / Pionowo), Tekst przycisku, Pokaż ceny za noc |
| Wyniki wyszukiwania | jetbookin_results |
Pokaż pasek wyszukiwania nad wynikami |
| Pole rezerwacji pokoju | jetbookin_booking |
Typ pokoju (— Bieżący typ pokoju — dla szablonów Theme Buildera), Liczba wyświetlanych miesięcy (1–2), Po „Zarezerwuj” (Dalej na stronie płatności / Rezerwacja w ramce) |
| Kalendarz dostępności | jetbookin_calendar |
Typ pokoju, Liczba wyświetlanych miesięcy (1–3, domyślnie 2), Pokaż ceny za noc |
| Potwierdzenie rezerwacji / Zarządzanie rezerwacją | jetbookin_confirmation |
Brak |
| Sekcja wyszukiwania (hero) | jetbookin_search_hero |
Obraz tła, Nagłówek (domyślnie Twój letni wypoczynek zaczyna się tutaj), Znacznik nagłówka, Podtytuł (domyślnie Rezerwuj bezpośrednio w najlepszej cenie.), Strona wyników, Tekst przycisku, Wyrównanie, Minimalna wysokość (px, osobno dla każdego urządzenia), Przyciemnienie obrazu (%) |
| Siatka / karuzela pokoi | jetbookin_rooms |
Układ, Obiekt, Tylko te pokoje, Maksymalna liczba pokoi, Kolejność (Własna kolejność / Najpierw najniższa cena / Nazwa), Kolumny, Odstęp, Proporcje obrazu; Zawartość karty: Znacznik tytułu, Goście, łóżka i powierzchnia, Krótki opis, Wyświetlane udogodnienia, Cena „od”, Tekst przycisku |
| Galeria pokoju | jetbookin_room_gallery |
Zdjęcia z (Typ pokoju / Obiekt), Typ pokoju, Obiekt, Układ (Mozaika / Siatka / Slider), Kolumny, Odstęp, Maksymalna liczba zdjęć, Uwzględnij obrazek wyróżniający, Otwieraj na pełnym ekranie po kliknięciu |
| Udogodnienia pokoju | jetbookin_room_amenities |
Typ pokoju, Kolumny, Odstęp, Maksimum (0 = wszystkie), Ikony |
| Parametry pokoju | jetbookin_room_specs |
Typ pokoju, Pokaż (Goście / Łóżka / Rozmiar), Układ (W linii / Lista) |
| Cena pokoju od | jetbookin_room_price |
Typ pokoju, Przed ceną, Po cenie, Mała notka |
| Zasady i ceny pokoju | jetbookin_room_policies |
Typ pokoju, Godziny zameldowania / wymeldowania, Plany cenowe (anulowanie, płatność, wyżywienie), Tekst zasad obiektu |
| Informacje o obiekcie i mapa | jetbookin_property_info |
Obiekt, Pokaż (Zameldowanie, Wymeldowanie, Adres, Telefon, E-mail, Numer rejestracyjny), Układ (Lista / Siatka), Mapa, Wysokość mapy (px) |
| Opinie | jetbookin_reviews |
Obiekt, Typ pokoju (— Wszystkie pokoje / bieżący typ pokoju —), Opinie na stronę, Średnia ocena, Oceny w kategoriach, Najnowsze opinie dla wyszukiwarek, Tekst, gdy brak opinii |
| Formularz opinii | jetbookin_review |
Brak |
Kolumny są responsywne: domyślnie 3 na komputerze, 2 na tablecie i 1 na telefonie, a każde urządzenie możesz ustawić osobno.
Ustawienia stylu
Każdy widżet JetBookIn ma w zakładce Styl sekcję Kolory i kształt:
- Główny (przyciski, zaznaczenie), Tekst przycisku, Tło, Tekst, Obramowania – kolory;
- Zaokrąglenie narożników – od 0 do 24 px;
- Typografia – krój pisma, rozmiar, grubość itd. dla całego widżetu.
Niektóre widżety mają więcej opcji:
- Siatka / karuzela pokoi: Karta (Tło, Cień, Wypełnienie), Tytuł pokoju i Cena (typografia i kolor).
- Udogodnienia pokoju: Ikony (Kolor, Rozmiar).
- Cena pokoju od: Cena (typografia i kolor).
- Sekcja wyszukiwania (hero): Nagłówek i Podtytuł (typografia i kolor).
- Opinie: Tytuł opinii i Treść opinii (typografia i kolor).
Wskazówka: ustaw ten sam kolor Główny we wszystkich widżetach rezerwacji na stronie. Przycisk Dokończ rezerwację, który pojawia się przy nieopłaconych rezerwacjach, przejmuje kolory, zaokrąglenia i czcionkę od widżetu rezerwacji na danej stronie.
Kolory i wygląd
Wszystkie bloki JetBookIn pobierają kolory i kształty ze zmiennych CSS ustawionych na elemencie .jbi-widget. Ustawienia stylu w Elementorze ustawiają właśnie te zmienne. Bez Elementora ustaw je w Wygląd → Dostosuj → Dodatkowy CSS albo w arkuszu stylów motywu.
| Zmienna | Domyślnie | Zastosowanie |
|---|---|---|
--jbi-primary |
#1c1a17 |
Przyciski, wybrane daty, ikony |
--jbi-on-primary |
#fff |
Tekst na przyciskach |
--jbi-accent |
#5b3fd1 |
Akcenty i wyróżnienia |
--jbi-surface |
#fff |
Tło pól i kart |
--jbi-surface-2 |
#f6f5f2 |
Tło dodatkowe (panele, wiersze) |
--jbi-text |
inherit |
Kolor tekstu (domyślnie z motywu) |
--jbi-muted |
#6b6f76 |
Tekst drugorzędny |
--jbi-border |
#e4e2dd |
Obramowania i linie |
--jbi-good |
#1b7f4d |
Pozytywne informacje, np. bezpłatne anulowanie |
--jbi-bad |
#b3261e |
Błędy i ostrzeżenia |
--jbi-radius |
10px |
Zaokrąglenie narożników |
--jbi-gap |
24px |
Odstęp między kartami i elementami |
--jbi-cols |
3 |
Liczba kolumn siatek |
--jbi-shadow |
Delikatny, dwuwarstwowy cień | Cień kart |
Zmienne są zdefiniowane bezpośrednio na .jbi-widget, więc ustawiaj je selektorem co najmniej tak samo silnym, na przykład:
/* Morskie przyciski i kwadratowe narożniki, wszędzie */
body .jbi-widget {
--jbi-primary: #0e5e6f;
--jbi-on-primary: #ffffff;
--jbi-radius: 4px;
}
/* Ciemne pole rezerwacji tylko w jednej sekcji */
.booking-dark .jbi-widget {
--jbi-surface: #1f1d1a;
--jbi-surface-2: #2a2723;
--jbi-text: #f4f1ea;
--jbi-muted: #b9b4aa;
--jbi-border: #3a3631;
}
Ustawienie zmiennych tylko na body lub :root nic nie da, bo .jbi-widget ustawia własne wartości domyślne.
Strony wielojęzyczne (Polylang, WPML)
JetBookIn współpracuje z Polylang i WPML. Tłumaczenia typu pokoju lub obiektu to ten sam pokój: mają wspólną dostępność, ceny, rezerwacje, galerię i zdjęcie główne. Goście widzą wszystko w języku strony, na której rezerwują, i w tym języku otrzymują e-maile oraz stronę rezerwacji.
Co przetłumaczyć
- Typy pokoi i obiekty: przetłumacz je za pomocą wtyczki wielojęzycznej (tytuł, opis, zajawka). W tłumaczeniu obiektu wpisujesz też instrukcje zameldowania w danym języku.
- Stronę potwierdzenia rezerwacji oraz, jeśli z niej korzystasz, stronę rezerwacji / finalizacji: utwórz tłumaczenie każdej z nich z tym samym shortcode’em lub widżetem. W Ustawieniach podajesz tylko ID oryginału; JetBookIn kieruje gości do tłumaczenia w ich języku.
- Strony regulaminu i polityki prywatności oraz stronę opinii: przetłumacz je w ten sam sposób. Finalizacja otwiera wersję w języku gościa.
- Strony z wyszukiwarką, pokojami i opiniami: tłumacz je jak zwykłe strony; shortcody i widżety pozostają takie same.
Jeśli strona nie ma tłumaczenia, używany jest oryginał.
Nazwy wpisywane w panelu
Nazwy planów cenowych, dodatki (nazwa i opis), promocje, własne opłaty i dane do przelewu bankowego są rejestrowane jako ciągi znaków: w Polylang w Języki → Tłumaczenia (grupa JetBookIn), w WPML w String Translation (domena JetBookIn). Plany cenowe, dodatki i promocje mają też w panelu pola W innych językach tuż pod nazwą; oba miejsca są ze sobą zsynchronizowane. Puste tłumaczenie oznacza wyświetlenie oryginału.
E-maile
Treści e-maili edytujesz osobno dla każdego języka w Ustawienia → E-maile, a nie we wtyczce wielojęzycznej. Zobacz E-maile → Jedna treść na język.
Dla programistów: REST API
Wszystko, co robi panel, przechodzi przez REST API w przestrzeni nazw jetbookin/v1, np. https://example.com/wp-json/jetbookin/v1/availability/search. Punkty końcowe dla personelu wymagają zalogowanego użytkownika z uprawnieniem manage_jetbookin (administratorzy i rola Menedżer rezerwacji) – ciasteczka z nonce REST albo Hasła aplikacji dla aplikacji i innych serwerów. Najczęściej używane publiczne punkty końcowe (finalizacja, wyceny, działania gości, opinie) mają limit zapytań na klienta.
Główne publiczne punkty końcowe
| Metoda i ścieżka | Do czego służy |
|---|---|
GET /availability/search |
Wolne typy pokoi i plany cenowe dla pobytu: check_in, check_out (YYYY-MM-DD), adults, children, opcjonalnie property_id, room_type_id. |
GET /availability/calendar |
Dostępność i ceny typu pokoju dzień po dniu: room_type_id, start, days (do 120, domyślnie 62). |
GET /availability/alternatives |
Pobliskie daty, gdy wybrany pobyt jest niedostępny. |
POST /availability/quote |
Aktualna cena pobytu z dodatkami. |
POST /checkout |
Tworzy rezerwację z danych gościa i wybranego pobytu oraz rozpoczyna płatność. |
GET /booking-status |
Status rezerwacji (ref + key). |
GET /resume, POST /resume/cancel |
Niedokończona rezerwacja tego odwiedzającego; jej anulowanie. |
POST /guest/lookup |
Wyszukuje rezerwację po numerze i adresie e-mail; zwraca link do strony rezerwacji. |
GET /guest/booking |
Dane strony rezerwacji gościa (ref + key). |
POST /guest/booking/pay, /cancel, /update, /verify, /resend, /proof, /card |
Działania gościa: zapłata (lub opłacenie prośby o płatność), anulowanie, zapisanie godziny przyjazdu / życzeń / danych dokumentu, potwierdzenie linkiem z e-maila, ponowne wysłanie tego linku, przesłanie potwierdzenia przelewu (multipart), dodanie nowej karty gwarancyjnej. |
GET /reviews/published |
Opublikowane opinie. |
GET / POST /guest/review |
Formularz opinii dla rezerwacji i jego wysłanie. |
Punkty końcowe dla personelu to m.in. /bookings (lista, tworzenie, PUT /bookings/{id}, anulowanie, płatności, prośby o płatność, wiadomości), /calendar, /quote, /settings, /emails, /reviews i /ical/connections. Operatorzy płatności wywołują własne trasy webhooków w tej samej przestrzeni nazw.
Dla programistów: hooki
Wszystkie hooki JetBookIn zaczynają się od jbi/. Używaj ich w małej wtyczce lub w pliku functions.php motywu potomnego.
Akcje
| Akcja | Argumenty | Kiedy jest wywoływana |
|---|---|---|
jbi/booking_created |
$booking |
Utworzono rezerwację (z dowolnego źródła, w dowolnym statusie). |
jbi/booking_confirmed |
$booking |
Rezerwacja została potwierdzona. |
jbi/booking_awaiting_payment |
$booking |
Rezerwacja czeka na przelew bankowy. |
jbi/booking_status_changed |
$booking, $old, $new |
Dowolna zmiana statusu. |
jbi/booking_cancelled |
$booking |
Rezerwacja została anulowana. |
jbi/booking_modified |
$booking |
Zmieniono daty, pokój lub gości. |
jbi/booking_deleted |
$booking |
Usunięto testową rezerwację. |
jbi/payment_received |
$booking, $amount |
Zakończono płatność online. |
jbi/balance_charge_failed |
$booking |
Automatyczne pobranie dopłaty się nie powiodło. |
jbi/ari_changed |
$change (typ pokoju, jednostka lub plan cenowy, początek, koniec) |
Zmieniła się dostępność, ceny lub ograniczenia – hook do przekazywania zmian dalej. |
jbi/review_submitted |
$review, $booking |
Gość wystawił opinię. |
jbi/review_moderated |
$review, $fields |
Opinię opublikowano, ukryto lub na nią odpowiedziano. |
jbi/housekeeping_changed |
$unit, $details |
Zmienił się status sprzątania lub notatka jednostki. |
jbi/document_issued |
$doc |
Wystawiono paragon, fakturę lub fakturę korygującą. |
jbi/owner_paid |
$owner_id, $month, $fields |
Rozliczenie właściciela oznaczono jako zapłacone. |
jbi/ical_conflict |
$connection, $events |
Import kalendarza wykrył możliwą podwójną rezerwację. |
jbi/ical_failing |
$connection, $message |
Import kalendarza ciągle się nie udaje. |
jbi/hourly, jbi/daily |
– | Własne godzinne i dzienne zadania JetBookIn. |
jbi/loaded |
$plugin |
JetBookIn zakończył ładowanie (dla dodatków). |
Filtry
| Filtr | Domyślnie | Przeznaczenie |
|---|---|---|
jbi/max_open_holds |
1 | Dozwolona liczba nieopłaconych rezerwacji na adres e-mail. |
jbi/max_open_holds_network |
3 | Dozwolona liczba nieopłaconych rezerwacji na sieć. |
jbi/max_rooms_public |
4 | Liczba pokoi w jednej rezerwacji online. |
jbi/max_rooms_per_booking |
10 | Liczba pokoi w jednej rezerwacji, z dowolnego źródła. |
jbi/checkout_verify |
true |
Zwróć WP_Error, aby odrzucić finalizację – miejsce na CAPTCHA, np. Cloudflare Turnstile. Otrzymuje zapytanie REST. |
jbi/client_ip |
Ustawienia → System → Adres odwiedzającego | IP odwiedzającego za proxy lub CDN (korzystają z niego limity zapytań i limity nieopłaconych rezerwacji). Otrzymuje adres wybrany w ustawieniu oraz $_SERVER. |
jbi/rate_limit |
Dla każdego koszyka | Liczba zapytań dozwolonych w oknie limitu publicznego punktu końcowego (otrzymuje limit i nazwę koszyka, np. checkout). |
jbi/render/{name} |
Kod HTML | Zmienia wynik bloku generowanego na serwerze: rooms, gallery, amenities, specs, price, policies, property, reviews, hero. |
jbi/auto_room_page |
true |
Zwróć false, aby nie budować pełnych stron pokoi; dodawane będzie tylko pole rezerwacji. |
jbi/auto_booking_box |
true |
Zwróć false, aby nic nie dodawać do stron typów pokoi. |
jbi/room_url |
Link do pokoju | Dokąd prowadzą karty pokoi (otrzymuje ID pokoju). |
jbi/structured_data_enabled |
true na stronie publicznej |
Zwróć false, jeśli wtyczka SEO już generuje schemat Twojego obiektu noclegowego. |
jbi/structured_data |
Graf JSON-LD | Zmienia dane schema.org. |
jbi/structured_data_room_type |
Accommodation |
Typ schematu dla pokoju, np. HotelRoom lub Suite. |
jbi/reviews/schema |
Elementy opinii | Zmienia schemat opinii obiektu. |
jbi/ical_export_summary |
Niedostępne | Tytuł wydarzenia w eksportowanych kalendarzach. |
jbi/module_enabled |
Ustawienie | Wyłącza moduł w kodzie. Nie może włączyć modułu, którego nie obejmuje licencja. |
// Zezwól na dwie nieopłacone rezerwacje na adres e-mail.
add_filter( 'jbi/max_open_holds', fn() => 2 );
// Wysyłaj każdą potwierdzoną rezerwację do innego systemu.
add_action( 'jbi/booking_confirmed', function ( array $booking ) {
wp_remote_post( 'https://example.com/hook', [ 'body' => [ 'ref' => $booking['ref'] ] ] );
} );
// Dla wyszukiwarek pokoje są pokojami hotelowymi.
add_filter( 'jbi/structured_data_room_type', fn() => 'HotelRoom' );
Stałe e-maile z alertami możesz nadpisać, kopiując admin-conflict.php, admin-sync-failing.php lub admin-late-payment.php do yourtheme/jetbookin/emails/.
Dla programistów: WP-CLI
| Polecenie | Do czego służy |
|---|---|
wp jetbookin run-jobs [--limit=<n>] |
Od razu uruchamia wszystkie zaległe zadania: import kalendarzy, przypomnienia, pobieranie dopłat, wygaśnięcia. --limit ogranicza liczbę przetwarzanych akcji z kolejki (domyślnie 100). |
wp jetbookin sync [<connection-id>...] [--force] |
Od razu importuje kalendarze platform – wszystkie aktywne linki importu albo wskazane. --force pomija pamięć podręczną HTTP. |
wp jetbookin status |
Pokazuje, kiedy ostatnio uruchomiły się zadania godzinne i dzienne, czy skonfigurowano cron serwera, zaległe akcje i kalendarze z błędami. |
Na działających stronach zalecany jest prawdziwy cron serwera zamiast crona WordPressa uruchamianego przez odwiedziny, na przykład co 5 minut:
*/5 * * * * cd /path/to/wordpress && wp jetbookin run-jobs --quiet
O zadaniach w tle przeczytasz w rozdziale Ustawienia zaawansowane.
Pytania
Pole rezerwacji nic nie pokazuje.
Poza stroną danego typu pokoju wymaga ono atrybutu room="ID" (w Elementorze: wybierz Typ pokoju). Sprawdź też, czy typ pokoju jest opublikowany i ma ceny.
Wyszukiwarka kieruje gości na złą stronę.
Ustaw w wyszukiwarce results_url (albo Strona wyników w widżecie) na stronę z [jetbookin_results]. Bez tego wyniki pojawiają się pod formularzem.
Moje kolory się nie zmieniają.
Ustaw zmienne na .jbi-widget (na przykład body .jbi-widget { … }), a nie tylko na body lub :root. Potem wyczyść pamięć podręczną CSS lub wtyczki optymalizującej.
Czy mogę używać shortcode’ów w Gutenbergu, Divi lub Bricks?
Tak. Dodaj blok Shortcode (lub element shortcode swojego kreatora) i wklej shortcode.
Czy potrzebuję osobnej strony finalizacji?
Nie. Jeśli ID strony finalizacji rezerwacji jest puste, pole rezerwacji przechodzi na stronę potwierdzenia rezerwacji. Osobna strona Rezerwuj z wynikami przydaje się, gdy chcesz mieć także stronę wyszukiwania.
Przez pomyłkę usunąłem stronę Potwierdzenie rezerwacji.
Utwórz stronę z [jetbookin_confirmation], opublikuj ją i wpisz jej ID jako ID strony potwierdzenia rezerwacji w Ustawienia → Ogólne. Linki w wysłanych wcześniej e-mailach nadal prowadzą pod stary adres, więc w razie potrzeby wyślij gościom, których to dotyczy, link do rezerwacji jeszcze raz.