Konfiguracja
Rezervo konfigurujesz na dwóch poziomach: dwa ustawienia sklepu w WooCommerce > Przedsprzedaż oraz dwa pola per produkt w edytorze produktu. Pola per produkt decydują, które produkty są przedsprzedażą, ustawienia sklepu rządzą całą resztą.
Ustawienia sklepu
Dział zatytułowany „Ustawienia sklepu”Otwórz WooCommerce > Przedsprzedaż. Obie wartości są zapisane w jednej opcji preorder_settings, a odczyt jest scalany z domyślnymi z paczki, więc brakująca lub niepełna opcja niczego nie psuje.
Włącz przedsprzedaż
Dział zatytułowany „Włącz przedsprzedaż”Klucz opcji enabled (domyślnie true). Główny przełącznik dla całego sklepu. Gdy jest włączony, każdy produkt oznaczony jako przedsprzedaż zachowuje się jak przedsprzedaż: kupowalny mimo braku w magazynie, z własną etykietą przycisku i z kartonikiem rezerwacji na karcie produktu.
Gdy jest wyłączony, Rezervo nie rejestruje żadnego ze swoich hooków na sklepie, a oznaczone produkty wracają do zwykłego zachowania WooCommerce: przestają być kupowalne po wyczerpaniu stanu, wraca standardowa etykieta dodania do koszyka, a kartonik rezerwacji znika. Flagi na poszczególnych produktach pozostają zachowane, więc ponowne włączenie przełącznika przywraca wszystkie przedsprzedaże naraz. To bezpieczny sposób, by wstrzymać premierę bez ruszania dziesiątek produktów.
Domyślny tekst przycisku
Dział zatytułowany „Domyślny tekst przycisku”Klucz opcji default_button_text (domyślnie Zamów w przedsprzedaży). Etykieta dodania do koszyka pokazywana na każdym produkcie w przedsprzedaży, wstawiana przez filtry WooCommerce woocommerce_product_single_add_to_cart_text i woocommerce_product_add_to_cart_text. Ten tekst od razu mówi klientowi, że kupuje z wyprzedzeniem, a nie produkt wysyłany od ręki.
Zostaw pole puste, a Rezervo użyje przetłumaczonej wartości domyślnej, pusta wartość nigdy nie daje pustego przycisku. Ekran ustawień pokazuje podgląd etykiety na żywo podczas pisania.
Nie ma nadpisania per produkt dla tej etykiety. Jest globalna.
Pola per produkt
Dział zatytułowany „Pola per produkt”Edytuj produkt i otwórz Dane produktu > Ogólne.
Przedsprzedaż
Dział zatytułowany „Przedsprzedaż”Pole wyboru zapisywane jako meta produktu _preorder_enabled (yes po zaznaczeniu, puste w przeciwnym razie). Po zaznaczeniu, przy włączonym przełączniku globalnym, produkt:
- zostaje kupowalny mimo statusu „brak w magazynie” (Rezervo filtruje
woocommerce_is_purchasable,woocommerce_product_is_in_stockiwoocommerce_product_backorders_allowed), o ile ma cenę, produkt bez ceny pozostaje niekupowalny; - pokazuje skonfigurowaną etykietę przycisku i kartonik rezerwacji;
- oznacza swoje pozycje w koszyku i zamówieniu jako przedsprzedaż.
Pole jest renderowane na zakładce Ogólne danych produktu, więc jest dostępne dla typów produktów, które tę zakładkę pokazują. Oznaczenie koszyka i zamówienia dotyczy tego produktu lub wariantu, który trafił do koszyka.
Data premiery
Dział zatytułowany „Data premiery”Opcjonalne pole daty obok pola wyboru, zapisywane jako meta produktu _preorder_release_date w formacie Y-m-d. Wartość, która nie jest poprawną datą Y-m-d, jest odrzucana przy zapisie, a wyczyszczenie pola usuwa meta.
Gdy produkt w przedsprzedaży ma datę, kartonik rezerwacji dokłada linię „Oczekiwana premiera: ”, sformatowaną wg formatu daty Twojej witryny. Nie ma przełącznika dla tej linii: pojawia się, gdy data jest ustawiona, i znika, gdy jej nie ma. Data nie jest przenoszona do koszyka ani na pozycję zamówienia, widać ją na karcie produktu.
Wariant z własną _preorder_release_date nadpisuje datę produktu nadrzędnego, wariant bez własnej ją dziedziczy. Samo pole per wariant to kontrolka Rezervo Pro, darmowa wtyczka czyta meta niezależnie od tego, skąd pochodzi.
Zostaw puste, jeśli nie masz jeszcze daty, produkt nadal jest sprzedawany jako przedsprzedaż, tylko bez wyświetlanej daty.
Jak łączą się poziomy
Dział zatytułowany „Jak łączą się poziomy”- Globalny przełącznik decyduje, czy przedsprzedaż w ogóle działa. Wyłączony oznacza, że żaden hook Rezervo się nie rejestruje.
- Tekst przycisku to jedna wartość dla całego sklepu z wbudowaną wartością domyślną.
- Pole wyboru per produkt decyduje, które produkty są przedsprzedażą, a opcjonalna data premiery decyduje, czy kartonik poda też datę.
Bezpieczeństwo i porządek
Dział zatytułowany „Bezpieczeństwo i porządek”Ekran ustawień jest chroniony uprawnieniem manage_woocommerce, a jego formularz zabezpieczony nonce (check_admin_referer). Zapis pól produktu dodatkowo weryfikuje woocommerce_meta_nonce. Całe wyjście na sklepie jest escapowane, a wejście sanityzowane.
Rezervo nie tworzy własnych tabel w bazie danych. Zapisuje jedną opcję ustawień (preorder_settings), znacznik preorder_db_version oraz dwa klucze meta produktu (_preorder_enabled i _preorder_release_date). Usunięcie wtyczki na ekranie Wtyczki uruchamia deinstalację, która kasuje obie opcje. Meta na produktach jest celowo zostawiana, to treść produktu, którą mogą czytać inne narzędzia; usuń ją ręcznie, jeśli chcesz się jej pozbyć.