Największe wydanie w historii wtyczki: nowa nazwa, kod napisany od zera, dwa nowe moduły, przeprojektowany kalendarz i reguły dostępności pilnowane na serwerze, a nie tylko w przeglądarce.
Nowa nazwa, nowy kod
Wtyczka, jej menu w panelu i cała dokumentacja nazywają się teraz BookingHive. Pod nazwą stoi przepisany kod: rezerwacje mają własną tabelę, cenniki własny model, a panel własną oprawę graficzną. Zakładka Support prowadzi do kanałów BookingHive: kontakt@ilabs.dev i bookinghive.ilabs.dev, gdzie znajdziesz instrukcję obsługi, FAQ i wsparcie techniczne.
Pulpit rezerwacji
Ekran Reservations pokazuje rezerwacje wprost z tabeli wtyczki, a nie listę zamówień WooCommerce — zamówienie z pobytem na pięć nocy jest tu jedną pozycją, nie pięcioma. Cztery kafelki nad listą podają wszystkie rezerwacje, przyszłe, trwające i przychód z ostatnich 30 dni, więc stan sprzedaży widać od razu, bez przeglądania zamówień jedno po drugim.

Listę zawężasz po gościu lub numerze zamówienia, po produkcie, statusie i zakresie dat. Same rezerwacje są pogrupowane miesiącami, a każda karta pokazuje zakres dat z dniami tygodnia, produkt, gościa, status, kwotę i liczbę nocy.

Przycisk Details otwiera szczegóły: kontakt do gościa, datę i metodę płatności, sumę zamówienia, rozbicie ceny na poszczególne noce oraz zmianę statusu zamówienia bez wychodzenia z ekranu.
Termin sprzedany dokładnie raz
Dostępność jest pilnowana na serwerze, na każdej drodze, którą można złożyć rezerwację:
- Reguły są sprawdzane dla całego żądanego zakresu, a nie dla pojedynczych dat z osobna, więc termin obejmujący czyjś pobyt zostaje odrzucony — w koszyku, na checkoucie i przy zapisie rezerwacji.
- Dostępność i cena są weryfikowane przy dodaniu do koszyka i jeszcze raz przed płatnością, więc otwarta od godziny karta produktu ani ręcznie podmieniony formularz nie kupią zajętego terminu po własnej cenie.
- Zapisy rezerwacji tego samego produktu ustawiają się w kolejkę i są sprawdzane ponownie bezpośrednio przed zapisem, więc dwie płatności kończące się w tej samej sekundzie nie wezmą tego samego terminu.
Reguły okresów Week i Whole range obowiązują w tym samym trybie: pojedynczego dnia z obiektu wynajmowanego na tygodnie nie sprzeda ani kalendarz, ani żądanie złożone poza nim.
Pobyty jeden po drugim, bez traconej doby
Gość może przyjechać w dniu, w którym wyjeżdża poprzedni, więc wymiana gości nie kosztuje doby. Zasada obowiązuje wszędzie tak samo: w kalendarzu, w cenniku po REST oraz w walidacji koszyka i checkoutu. Dzień rotacji wolno wykorzystać tylko w roli przeciwnej — jako przyjazd tam, gdzie ktoś wyjeżdża, i odwrotnie. Rezerwacja jednodniowa blokuje swój dzień w całości, bo jest jednocześnie przyjazdem i wyjazdem.

Nie każdy obiekt nadaje się do wymiany gości tego samego dnia, więc decyduje o tym ustawienie Changeover day (Dzień rotacji). Domyślne Free for the next booking zwalnia dzień wyjazdu dla następnej rezerwacji; Blocked for a service day trzyma go zablokowanym — dla łodzi, kampera czy auta, które trzeba przygotować między klientami. Ustawienie działa dla całej wtyczki w zakładce Global settings i osobno dla każdego produktu w jego zakładce Price List. Warto pamiętać, że dzień wyjazdu jest płatny także dla wyjeżdżającego, czyli przy zwolnionym dniu rotacji sprzedajesz tę dobę dwa razy.
Tryb ilości: goście czy sztuki
Pole Default quantity mode (Domyślny tryb ilości) decyduje o tym, czym jest liczba podawana przez klienta. Guests trzyma ją przy pobycie jako jedną pozycję koszyka i zapisuje razem z rezerwacją — tak działa apartament czy domek. Units zamienia ją na ilość w koszyku WooCommerce, więc wartość pozycji mnoży się przez liczbę sztuk — tak wynajmuje się kajaki, rowery czy sprzęt. Tryb ustawia się globalnie i można go nadpisać na każdym produkcie.
Przypomnienia o pobycie i samodzielne odwołanie
Nowy moduł Stay Notifications wysyła przypomnienia 14 dni, 7 dni i dzień przed przyjazdem. Każde z nich nosi podpisany link, którym gość sam odwoła pobyt — do skonfigurowanego terminu granicznego, po którym link przestaje działać. Odwołanie potwierdza osobny e-mail, więc gość ma na piśmie, że rezygnacja się powiodła, a termin wraca do kalendarza bez telefonu do obsługi.
Wszystkie trzy wiadomości korzystają ze standardowej oprawy WooCommerce, a przypomnienie wita gościa imieniem, wymienia zarezerwowane dni z nazwą produktu i odlicza dni do przyjazdu z poprawną odmianą w każdym języku.

Które przypomnienia już poszły, widać w szczegółach rezerwacji na pulpicie — nie trzeba szukać w skrzynce nadawczej.
Plakietki zainteresowania
Drugi nowy moduł, Spectator Views, pokazuje odwiedzającym, ile osób oglądało produkt i ile patrzy na niego teraz, oraz powiadamia o świeżo dokonanych rezerwacjach.

Do tego cztery plakietki — popular, viewed in last 24h, occupancy i just booked — każda z własnym progiem, oknem czasowym, kolorami i listą produktów, na których ma się pojawiać. Presja czasu jest widoczna tylko tam, gdzie ma sens, i tylko wtedy, gdy liczby ją uzasadniają.
Kalendarz na dwa miesiące
Kalendarz rezerwacji jest zbudowany wokół siatki dwóch miesięcy, więc gość widzi więcej wolnych terminów naraz i rzadziej przełącza widok, żeby złożyć pobyt przechodzący między miesiącami.

Kliknięcie daty początkowej i końcowej podświetla cały zakres, a pod kalendarzem od razu pojawia się kwota do zapłaty. Stawka liczy się za każdy zaznaczony dzień, włącznie z dniem końcowym — zakres 18–22 sierpnia to pięć dni, i tak samo opisuje go pulpit rezerwacji.
HPOS, język i waluta
Wtyczka jest zgodna z High-Performance Order Storage. Ekran Rezerwacje czyta dane zamówień przez WooCommerce, a nie wprost z tabel postów, więc nazwiska gości, wyszukiwanie i odnośniki do zamówień działają niezależnie od tego, w którym magazynie zamówień pracuje sklep.
Daty, dni tygodnia i nagłówki miesięcy na tym ekranie są pokazywane w języku osoby, która na niego patrzy, a kwoty idą za ustawieniami waluty sklepu — ten sam symbol, pozycja i separatory, których WooCommerce używa wszędzie indziej.
Języki
Paczka zawiera angielskie źródła i pełne tłumaczenie polskie. Pozostałe języki pochodzą z translate.wordpress.org, gdzie społeczność może je utrzymywać na bieżąco, a wtyczka pobiera je razem z aktualizacjami WordPressa.
Aktualizacja ze starej wersji
BookingHive 2.0 jest napisany od nowa i nie przenosi danych z wersji 1.0.x: cenniki i rezerwacje żyją w nowej strukturze, więc każdy produkt rezerwacyjny wymaga ponownego wpisania cennika, a wcześniej sprzedane terminy nie blokują kalendarza. Zrób kopię zapasową i przetestuj aktualizację na kopii sklepu, zanim ruszysz produkcję.