Najczęściej zadawane pytania
Odpowiedzi na pytania, które padają najczęściej — od terminów i cennika po diagnozowanie błędów.
Rezerwacje i terminy
Wtyczka nalicza stawkę za każdy zaznaczony dzień, włącznie z dniem końcowym. Zakres od 18 do 22 sierpnia to pięć pozycji, więc przy stawce 512 zł klient zapłaci 2 560 zł. Dashboard opisuje taki pobyt jako „5 nights”. Jeżeli chcesz rozliczać noce w klasycznym rozumieniu (bez dnia wyjazdu), ustaw stawkę odpowiednio wyższą albo poinformuj klientów w opisie produktu, że ostatni dzień również jest płatny.
To zależy od reguły okresu w cenniku. Any range pozwala wybrać dowolny przedział mieszczący się w okresie, Week wymusza pełne tygodnie od wskazanego dnia tygodnia, a Whole range dopuszcza wyłącznie cały okres. Reguły ustawia się per wiersz cennika, więc jeden produkt może mieć sezon z dowolnymi terminami i sezon wyłącznie tygodniowy.nnReguła obowiązuje nie tylko w kalendarzu, ale i na serwerze — przy dodaniu do koszyka, na stronie koszyka i checkoutu oraz przy zapisie rezerwacji. Żądanie omijające kalendarz, na przykład wysłane wprost do sklepu z pojedynczym dniem produktu tygodniowego, zostanie odrzucone z komunikatem mówiącym, jaki zakres jest dopuszczalny. Zakres musi być też ciągły: żeby zarezerwować dwa osobne terminy, klient składa dwa zamówienia.
Tak. Dzień, w którym jedna rezerwacja się kończy, a druga zaczyna, pozostaje dostępny — kalendarz blokuje wyłącznie dni w środku pobytu oraz takie, gdzie pokrywają się dwie rezerwacje. Dzięki temu obsługa rotacji nie wymaga żadnej dodatkowej konfiguracji. Rezerwacja jednodniowa blokuje swój dzień w całości, bo jest on jednocześnie dniem przyjazdu i wyjazdu.nnDzień styku wolno wykorzystać tylko w roli przeciwnej: dzień, w którym ktoś wyjeżdża, może być dniem przyjazdu następnego gościa, a dzień, w którym ktoś przyjeżdża, może być dniem wyjazdu poprzedniego. Nie da się natomiast zarezerwować terminu, który obejmowałby czyjś pobyt w środku — na przykład przy istniejącej rezerwacji od 21 do 22 nowa rezerwacja od 21 do 22 zostanie odrzucona, a od 20 do 21 albo od 22 do 23 przejdzie.nnPamiętaj, że dzień wyjazdu jest płatny także dla wyjeżdżającego gościa (patrz pytanie o naliczanie ceny wyżej), więc dzień rotacji sprzedajesz dwa razy. Pasuje to do wynajmu liczonego za dzień. Jeśli obiekt wymaga doby przerwy między klientami — łódź albo samochód do przygotowania — ustaw Changeover day (Dzień rotacji) na Zablokowany na dobę serwisową w BookingHive → Global settings albo na samym produkcie, w jego zakładce Price List, gdzie ustawienie produktu nadpisuje globalne. Programista może też rozstrzygnąć to w kodzie filtrem bookinghive_release_changeover_day, który ma ostatnie słowo.nnJedna rzecz do zapamiętania przy zmianie tego ustawienia na już działającym sklepie: przestawienie produktu na Zablokowany na dobę serwisową działa od zaraz również na rezerwacje złożone wcześniej. Dzień, który był wolny jako dzień rotacji, staje się zajęty, więc klient, który trzyma go w koszyku, zobaczy przy przejściu do płatności komunikat o niedostępnych datach. To nie błąd, tylko nowa reguła zastosowana do koszyka złożonego pod starą. Zmiana w drugą stronę, na Wolny dla następnej rezerwacji, tylko dodaje dostępność i nikomu nie przerywa zakupu.
Nie. Wtyczka sprawdza dostępność przy dodaniu do koszyka oraz ponownie na stronie koszyka i checkoutu, a sam zapis rezerwacji jest szeregowany: dwa zamówienia domykane w tej samej chwili są obsługiwane jedno po drugim, a przed zapisem każde z nich jeszcze raz sprawdza terminy. Pierwsze zamówienie zajmuje termin, drugie zostaje odrzucone z komunikatem o zajętych datach. Podwójna rezerwacja nie powstanie nawet przy obiekcie o dużym ruchu.
Nie. Kalendarz wyszarza dni przeszłe, a walidacja po stronie serwera odrzuca je również wtedy, gdy klient miał stronę otwartą od dłuższego czasu albo próbował wysłać dane pomijając kalendarz.
Cennik i reguły okresów
Kalendarz pokazuje wyłącznie dni objęte wierszem cennika. Produkt bez cennika — albo z cennikiem tylko dla innego roku — jest widoczny w sklepie, ale nie da się go zarezerwować. Sprawdź zakładkę Price List i przełącznik roku nad tabelą.
Tak. Wiersze są przypisane do roku i przełącznik nad tabelą pokazuje wyłącznie wybrany rok. Wiersze z innych lat nie znikają — trzeba je tylko dodać, zanim zacznie się nowy sezon. Dobrą praktyką jest wprowadzenie kolejnego roku razem z ogłoszeniem cennika.
Dla dnia objętego więcej niż jednym wierszem obowiązuje pierwszy dopasowany wiersz. Efekt jest trudny do przewidzenia przy edycji, dlatego lepiej trzymać okresy rozłączne — koniec jednego dzień przed początkiem następnego.
Dla reguły Any range tak — dostępna jest pozostała część okresu, licząc od dziś. Dla reguły Week dostępny jest najbliższy pełny tydzień zaczynający się wskazanym dniem tygodnia. Reguła Whole range przestaje być dostępna, bo z definicji rezerwuje się cały okres.
Wybierz regułę Week — obok ceny pojawi się select Start of period z dniem tygodnia. Działa to zarówno przy dodawaniu wiersza, jak i przy edycji już zapisanego: kliknij Edit przy wierszu, wybierz Week, wskaż dzień tygodnia i zapisz produkt.
Produkty i konfiguracja
Guests (does not affect price) zapisuje liczbę osób razem z rezerwacją, ale nie zmienia ceny — właściwe dla apartamentu, gdzie płaci się za obiekt. Units (multiplies price / cart quantity) traktuje ilość jak mnożnik ceny i przenosi ją na ilość w koszyku WooCommerce — właściwe dla wynajmu sztuk: kajaków, rowerów, sprzętu.
Tak. Pole Quantity mode w zakładce Price List produktu domyślnie ma wartość Inherit global default (…), czyli dziedziczy ustawienie globalne, ale można je nadpisać dla konkretnego produktu.
Nie. Moduł Core jest oznaczony jako Always enabled i nie ma przełącznika, bo odpowiada za typ produktu, cenniki, kalendarz i zapis rezerwacji. Pozostałe moduły — Spectator Views i Stay Notifications — można włączać i wyłączać dowolnie.
Ustawienia zostają w bazie. Wyłączenie zdejmuje funkcje modułu z frontendu i panelu, a po ponownym włączeniu konfiguracja wraca w tym samym stanie.
Nie — rezerwacja jest produktem wirtualnym, więc WooCommerce nie liczy dla niej wysyłki. Ma to jeden praktyczny skutek: metody płatności wymagające wysyłki (na przykład płatność przy odbiorze w domyślnej konfiguracji) nie pojawią się na checkoucie. Trzeba włączyć metodę obsługującą zamówienia wirtualne.
Powiadomienia e-mail i anulowanie pobytu
Trzy, wszystkie konfigurowalne w WooCommerce → Settings → Emails: Booking Cancellation Link (do klienta zaraz po rezerwacji, z linkiem do samodzielnego anulowania), Booking Reminder (przypomnienie przed pobytem) i Booking Cancellation Confirmed (potwierdzenie anulowania).
Z linku w mailu Booking Cancellation Link. Link jest podpisany tokenem powiązanym z konkretną rezerwacją, więc działa tylko dla adresata i tylko do momentu wyznaczonego przez Cancellation cutoff (hours).
Do liczby godzin przed rozpoczęciem pobytu ustawionej w polu Cancellation cutoff (hours) w ustawieniach modułu Stay Notifications. Domyślnie są to 24 godziny. Po tym czasie link przestaje działać.
W terminach zaznaczonych w Reminder settings: 14 dni, 7 dni i 1 dzień przed rozpoczęciem pobytu. Każdy termin ma osobny przełącznik, a nad nimi jest główny przełącznik Enable reminder emails.
Z modalu rezerwacji na ekranie Reservations — sekcja REMINDERS SENT wymienia wysłane przypomnienia. Jeśli nic tam nie ma, przypomnienie jeszcze nie zostało wysłane.
Zarządzanie rezerwacjami w panelu
Lista zamówień pokazuje transakcje, a ekran Reservations pokazuje pobyty — z zakresem dat, liczbą nocy, produktem i statusem. Jedno zamówienie na pięć nocy jest tu jedną pozycją, pogrupowaną w miesiącu, w którym się zaczyna.
Statusy processing i completed blokują termin jako zajęty, a pending i on-hold jako wstępnie zajęty. Anulowanie, zwrot i nieudana płatność zwalniają daty, więc termin wraca do kalendarza.
W modalu szczegółów, w sekcji CHANGE STATUS — select ze statusami i przycisk Save status. Zmiana dotyczy całego zamówienia WooCommerce, a nie pojedynczego dnia, i może wysłać klientowi standardowy mail WooCommerce o zmianie statusu.
Paskiem filtrów nad listą. Pole Search przyjmuje nazwisko gościa albo numer zamówienia, a obok są filtry po produkcie, statusie i zakresie dat. Przycisk Reset czyści wszystkie filtry.
ALL RESERVATIONS to liczba wszystkich rezerwacji, UPCOMING — przyszłych, ONGOING — trwających, a REVENUE (30 DAYS) to przychód z ostatnich 30 dni. Kafelki uwzględniają aktualnie ustawione filtry, więc po odfiltrowaniu jednego zamówienia pokażą wartości tylko dla niego.
Daty, skróty dni tygodnia i nagłówki miesięcy idą za językiem ustawionym w Twoim własnym profilu WordPressa, więc dwie osoby obsługujące ten sam sklep mogą czytać ten ekran każda w swoim języku. Kwoty nie: te zawsze idą za ustawieniami WooCommerce → Ustawienia → Ogólne — symbolem waluty i jego pozycją, separatorem dziesiętnym i separatorem tysięcy oraz liczbą miejsc po przecinku. Kwota na tym ekranie wygląda więc dokładnie tak jak w całym pozostałym sklepie, niezależnie od używanego języka.
Problemy i rozwiązywanie błędów
Najczęstsza przyczyna to brak wiersza cennika dla danego roku albo dla bieżącego okresu — kalendarz oferuje wyłącznie dni objęte cennikiem. Sprawdź zakładkę Price List, przełącznik roku i to, czy okresy nie kończą się przed dzisiejszą datą. Drugą przyczyną bywa rezerwacja zajmująca cały widoczny zakres — zajęte dni też są wyszarzone.
Produkt jest w trybie Guests (does not affect price), w którym liczba osób jest tylko zapisywana przy rezerwacji. Aby liczba wpływała na cenę, ustaw Units (multiplies price / cart quantity) — globalnie w zakładce Global settings albo dla pojedynczego produktu w jego zakładce Price List.
Sprawdź dwie rzeczy: czy nie minął czas z pola Cancellation cutoff (hours) (domyślnie 24 godziny przed rozpoczęciem pobytu) i czy moduł Stay Notifications jest włączony. Po przekroczeniu cutoffu link z maila przestaje działać, co jest zachowaniem zamierzonym.
Przypomnienia wysyła zadanie cron uruchamiane raz na dobę. Na witrynie bez ruchu WP-Cron nie ma kto wywołać, więc zadanie nie startuje — w takim wypadku ustaw systemowy cron wywołujący wp-cron.php. Sprawdź też, czy Enable reminder emails jest włączone, czy zaznaczony jest przynajmniej jeden termin i czy sklep w ogóle wysyła maile (najprościej przyciskiem Send a test email w ustawieniach maila).
Operacje w tabeli cennika — Accept przy nowym wierszu i Delete przy istniejącym — działają tylko w przeglądarce. Cennik trafia do bazy dopiero po kliknięciu Update na produkcie. Jeśli przypadkiem usunięto wiersz, wystarczy odświeżyć stronę produktu bez zapisywania, żeby przywrócić stan z bazy.
Rezerwacja jest produktem wirtualnym, więc metody wymagające wysyłki nie są dostępne. Włącz metodę obsługującą zamówienia wirtualne — na przykład przelew bankowy — w WooCommerce → Settings → Payments.