Przejdź do treści

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.

Ustawienia, sekcja Ogólne z polami ID strony potwierdzenia rezerwacji, ID strony finalizacji i URL regulaminu
Ustawienia → Ogólne: strony, na które trafiają goście.

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"]
Strona pokoju z polem rezerwacji: kalendarz z cenami, liczba gości i przycisk Zarezerwuj
Pole rezerwacji na stronie pokoju.

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

Panel widżetów Elementora z otwartą kategorią JetBookIn i wszystkimi widżetami JetBookIn
Kategoria JetBookIn w Elementorze.

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.