Przedsprzedaż (pre-orders)
Moduł przedsprzedaży pozwala oznaczać produkty jako pre-order, wyświetlać datę premiery i zmieniać tekst przycisku. Przydatny w sklepach z elektroniką, książkami, grami i innymi produktami oferowanymi przed premierą.
Konfiguracja globalna
Dział zatytułowany „Konfiguracja globalna”Przejdź do Polski > Moduły i włącz Przedsprzedaż (klucz modułu pre_order). Od Polski PRO 1.22.0 moduły PRO mają tam własne wiersze, a ustawienia poniżej to pola tego wiersza; zapis wiersza wpisuje je do opcji polski_preorder. Moduł jest domyślnie wyłączony, bo zmienia to, co komunikujesz klientowi.
| Ustawienie | Klucz | Domyślnie | Opis |
|---|---|---|---|
| Pokaż komunikat przedsprzedaży na karcie produktu | show_on_single |
Włączone | Bramkuje komunikat przedsprzedaży na karcie produktu |
| Tekst przycisku dodania do koszyka | button_text |
puste, zapas “Pre-order now” | Globalny tekst przycisku dla produktów w przedsprzedaży |
| Tekst dostępności | availability_text |
puste, zapas “Pre-order, shipping from {date}” | Zastępuje stan magazynowy. {date} to sformatowana data premiery |
| Pokaż komunikat przedsprzedaży | show_notice |
Włączone | Komunikat pod podsumowaniem produktu |
| Treść komunikatu | notice_text |
puste | Treść tego komunikatu. {date} jest podstawiane również tutaj |
| Pozwól mieszać przedsprzedaż ze zwykłymi produktami w koszyku | allow_mixed_cart |
Włączone | Przy włączonym mieszanie jest dozwolone. Wyłącz, aby ostrzegać o mieszanym koszyku |
| Format daty premiery | date_format |
d.m.Y |
Format wyświetlania daty premiery |
Konfiguracja produktu
Dział zatytułowany „Konfiguracja produktu”Meta pola
Dział zatytułowany „Meta pola”Od Polski PRO 1.26.0 te pola są na zakładce Polski Pro w polu danych produktu i to ona je zapisuje. Całą zakładkę opisuje Ustawienia per produkt.
| Pole | Klucz | Typ | Opis |
|---|---|---|---|
| Sell as a pre-order | _polski_preorder_enabled |
yes / no |
Połowa bramki |
| Release date | _polski_preorder_date |
string (Y-m-d) |
Druga połowa, i data pokazywana klientowi |
| Button text | _polski_preorder_button_text |
string |
Nadpisuje globalny tekst przycisku dla tego produktu |
Produkt jest w przedsprzedaży tylko wtedy, gdy jednocześnie flaga ma yes i data daje się sparsować. Zaznaczenie pola przy pustej dacie nie zmienia niczego na froncie. Tekst dostępności jest globalny, na ekranie Moduły, i nie ma nadpisania per produkt.
Ustawienie przez WP-CLI
Dział zatytułowany „Ustawienie przez WP-CLI”wp post meta update 123 _polski_preorder_enabled "yes"wp post meta update 123 _polski_preorder_date "2026-06-15"wp post meta update 123 _polski_preorder_button_text "Zamów teraz, premiera 15 czerwca"Ustawienie programowe
Dział zatytułowany „Ustawienie programowe”update_post_meta($product_id, '_polski_preorder_enabled', 'yes');update_post_meta($product_id, '_polski_preorder_date', '2026-06-15');Wyświetlanie na froncie
Dział zatytułowany „Wyświetlanie na froncie”Przycisk zakupu
Dział zatytułowany „Przycisk zakupu”Przycisk “Dodaj do koszyka” zmienia się na tekst przedsprzedaży. Dotyczy:
- Strony pojedynczego produktu
- Stron archiwum, kategorii i tagów
- Wyników wyszukiwania
- Bloków WooCommerce (Product Grid, Product Collection)
Tekst dostępności
Dział zatytułowany „Tekst dostępności”Zamiast stanu magazynowego wyświetla się tekst z datą premiery. Placeholder {date} jest zamieniany na datę.
Przykład wyświetlania:
Dostępne od 15.06.2026
Po dacie premiery
Dział zatytułowany „Po dacie premiery”Nic nie wyłącza się samo. Nie ma zadania cron, które kasowałoby flagę przedsprzedaży po dacie premiery, więc komunikaty zostają, dopóki nie odznaczysz Sell as a pre-order na produkcie albo nie wyczyścisz daty.
Walidacja koszyka
Dział zatytułowany „Walidacja koszyka”Przy wyłączonym Pozwól mieszać przedsprzedaż ze zwykłymi produktami w koszyku koszyk zawierający jednocześnie produkt w przedsprzedaży i zwykły produkt dostaje przy każdym przeliczaniu sum komunikat błędu WooCommerce z treścią ustawioną w module.
To komunikat, nie blokada: produkt i tak zostaje dodany i nic nie powstrzymuje klienta przed dojściem do kasy z mieszanym koszykiem. Daty premiery nie są porównywane, więc dwie przedsprzedaże z różnymi datami nigdy nie są oznaczane.
Shortcode i hooki
Dział zatytułowany „Shortcode i hooki”Moduł nie rejestruje żadnego shortcode’u i nie dodaje własnych filtrów ani akcji. Działa w całości na hookach samego WooCommerce:
| Hook WooCommerce | Co robi moduł |
|---|---|
woocommerce_product_single_add_to_cart_text i woocommerce_product_add_to_cart_text (priorytet 20) |
Podmienia tekst przycisku |
woocommerce_get_availability_text (priorytet 20) |
Zastępuje stan magazynowy tekstem dostępności |
woocommerce_single_product_summary (priorytet 31) |
Wypisuje komunikat przedsprzedaży |
woocommerce_before_calculate_totals |
Podnosi komunikat o mieszanym koszyku |
Żeby zmienić teksty z kodu, podepnij się pod te filtry WooCommerce na późniejszym priorytecie.
Produkty wariantowe
Dział zatytułowany „Produkty wariantowe”Flaga przedsprzedaży i data premiery to meta na produkcie nadrzędnym, więc produkt wariantowy jest w przedsprzedaży w całości albo wcale. Nie ma ustawień przedsprzedaży per wariant.
Rozwiązywanie problemów
Dział zatytułowany „Rozwiązywanie problemów”Produkt dalej jest w przedsprzedaży po dacie premiery Tak to działa dzisiaj, to nie usterka: nic nie kasuje flagi automatycznie. Odznacz Sell as a pre-order na produkcie albo wyczyść jego datę premiery.
Komunikaty przedsprzedaży w ogóle się nie pojawiają
Sprawdź wszystkie trzy rzeczy: moduł pre_order jest włączony w Polski > Moduły, Sell as a pre-order jest zaznaczone na produkcie, a produkt ma datę premiery, która daje się sparsować.
Klient wrzucił do jednego koszyka przedsprzedaż i zwykłe produkty To jest dozwolone, dopóki nie wyłączysz Pozwól mieszać przedsprzedaż ze zwykłymi produktami w koszyku, a i wtedy klient dostaje tylko komunikat błędu, nikt go nie zatrzymuje.
Data premiery wyświetla się w złym formacie
Sprawdź ustawienie “Format daty” w konfiguracji modułu. Format korzysta ze standardowych placeholderów PHP date().
Dalsze kroki
Dział zatytułowany „Dalsze kroki”- Zgłaszaj problemy: GitHub Issues
- Powiązane moduły: Pakiety i dodatki