Ustawienia per produkt (zakładka Polski Pro)
Pięć modułów PRO konfiguruje się per produkt, nie globalnie: karty podarunkowe, przedsprzedaż, subskrypcje, pakiety produktów i często kupowane razem. Każdy z nich decyduje, czy w ogóle zadziała dla danego produktu, czytając meta zapisane na tym produkcie. Od Polski PRO 1.26.0 jest ekran, który te klucze zapisuje: zakładka Polski Pro w polu danych produktu w edytorze WooCommerce.
Gdzie jest ta zakładka i kiedy się pojawia
Dział zatytułowany „Gdzie jest ta zakładka i kiedy się pojawia”Otwórz dowolny produkt i spójrz na pole Dane produktu. Zakładka Polski Pro stoi po standardowych zakładkach WooCommerce i pokazuje się dla produktów prostych, wariantowych i zewnętrznych.
Zakładka pojawia się tylko wtedy, gdy włączony jest co najmniej jeden z pięciu modułów w Polski > Moduły. Przy wszystkich pięciu wyłączonych nie ma czego konfigurować, więc zakładka nie jest w ogóle dokładana. Wewnątrz zakładki grupę pól dostają wyłącznie moduły włączone: włącz dwa, a zobaczysz dwie grupy, nie pięć.
To jest pierwsza rzecz do sprawdzenia, gdy brakuje spodziewanego pola. Moduł jest przełącznikiem dla całego sklepu, ta zakładka jest przełącznikiem dla jednego produktu.
Każda grupa niżej odpowiada jednemu modułowi. Klucz meta jest tym, który czyta serwis danego modułu, więc kolumna z kluczem odpowiada zarazem na pytanie “co ustawić z WP-CLI albo z kodu”.
Karta podarunkowa
Dział zatytułowany „Karta podarunkowa”| Pole | Klucz meta | Typ | Uwagi |
|---|---|---|---|
| Sell as a gift card | _polski_gift_card_enabled |
yes / no |
Bramka. Moduł traktuje produkt jak kartę podarunkową tylko przy yes. |
| Preset amounts | _polski_gift_card_amounts |
tekst | Rozdzielone przecinkami, na przykład 50, 100, 200. Puste cofa się do globalnych kwot modułu. |
| Allow a custom amount | _polski_gift_card_allow_custom_amount |
yes / no |
Pozwala kupującemu wpisać własną kwotę. Moduł honoruje też swoje ustawienie globalne, więc sklepowe “pozwól na własną kwotę” działa nawet przy odznaczonym polu. |
| Minimum custom amount | _polski_gift_card_min_amount |
liczba | Czytane jako nadpisanie globalnego minimum modułu. |
| Maximum custom amount | _polski_gift_card_max_amount |
liczba | Czytane jako nadpisanie globalnego maksimum modułu. |
Przedsprzedaż
Dział zatytułowany „Przedsprzedaż”| Pole | Klucz meta | Typ | Uwagi |
|---|---|---|---|
| Sell as a pre-order | _polski_preorder_enabled |
yes / no |
Połowa bramki. |
| Release date | _polski_preorder_date |
data (Y-m-d) |
Druga połowa. Potrzebne są obie: przy zaznaczonym polu i pustej dacie produkt zostaje zwykłym produktem, bo moduł wymaga flagi i dającej się sparsować daty, zanim cokolwiek zmieni. |
| Button text | _polski_preorder_button_text |
tekst | Nadpisuje globalny tekst przycisku przedsprzedaży dla tego produktu. |
Subskrypcja
Dział zatytułowany „Subskrypcja”| Pole | Klucz meta | Typ | Uwagi |
|---|---|---|---|
| Sell as a subscription | _polski_subscription_enabled |
yes / no |
Bramka. |
| Bill every | _polski_subscription_interval |
liczba całkowita | Liczba okresów między obciążeniami. Czytane jako co najmniej 1. |
| Billing period | _polski_subscription_period |
day, week, month, year |
Bez wartości domyślnie month. |
| Number of payments | _polski_subscription_length |
liczba całkowita | 0 odnawia do czasu rezygnacji klienta. |
| Sign-up fee | _polski_subscription_signup_fee |
liczba | Doliczana raz, przy pierwszej płatności. |
| Trial days | _polski_subscription_trial_days |
liczba całkowita | Dni do pierwszego obciążenia. 0 oznacza brak okresu próbnego. |
Pakiet produktów
Dział zatytułowany „Pakiet produktów”| Pole | Klucz meta | Typ | Uwagi |
|---|---|---|---|
| Bundled products | _polski_bundle_items |
pole tekstowe | Jeden składnik na linię, format niżej. |
| Section title | _polski_bundle_title |
tekst | Nadpisuje globalny nagłówek pakietu dla tego produktu. |
| Button text | _polski_bundle_button_text |
tekst | Nadpisuje globalny tekst przycisku pakietu. |
| Bundle discount | _polski_bundle_discount_type |
puste, percent, fixed |
Puste oznacza brak rabatu. |
| Discount value | _polski_bundle_discount_value |
liczba | Czytane razem z typem wyżej. |
Bundled products przyjmuje jeden składnik na linię, zapisany jako identyfikator produktu, pionowa kreska, ilość, pionowa kreska i informacja, czy składnik jest wymagany:
42|2|yes57|1|no88Ilość i flagę wymagalności można pominąć, więc samo 88 to jedna, nieobowiązkowa sztuka produktu 88. Flaga liczy się jako wymagana przy yes, 1, true albo required. Pojedyncza linia identyfikatorów rozdzielonych przecinkami jest przyjmowana jako skrót na po jednej sztuce każdego. Identyfikatory, które nie wskazują istniejącego produktu, są pomijane.
Nie ma osobnego pola “włącz pakiet”: produkt jest pakietem wtedy, gdy Bundled products wskazuje co najmniej jeden istniejący produkt.
Często kupowane razem
Dział zatytułowany „Często kupowane razem”| Pole | Klucz meta | Typ | Uwagi |
|---|---|---|---|
| Suggested products | _polski_fbt_product_ids |
tekst | Identyfikatory produktów rozdzielone przecinkami, spacjami albo średnikami. Własny identyfikator produktu jest pomijany, duplikaty odrzucane, a lista przycinana do ustawienia modułu Maximum products taken from the product list (domyślnie 4). |
| Section title | _polski_fbt_title |
tekst | Nadpisuje globalny nagłówek dla tego produktu. |
| Intro text | _polski_fbt_intro |
pole tekstowe | Opcjonalna linia pod nagłówkiem. |
| Button text | _polski_fbt_button_text |
tekst | Nadpisuje globalny tekst przycisku dodania całego zestawu. |
Tak jak przy pakietach, nie ma tu przełącznika per produkt: blok pojawia się, gdy Suggested products wskazuje co najmniej jeden użyteczny identyfikator.
Jak działa zapis
Dział zatytułowany „Jak działa zapis”Każde pole jest sanityzowane po drodze: pole wyboru zapisuje się jako yes albo no, pole całkowite jako liczba całkowita nie mniejsza niż 0, pole liczbowe jako liczba zmiennoprzecinkowa nie mniejsza niż 0, dwa pola wieloliniowe przez sanitize_textarea_field, a wszystko pozostałe przez sanitize_text_field. Pole liczbowe zostawione puste zapisuje się jako puste, a nie jako 0, bo puste pole znaczy “brak wartości dla tego produktu”, a wpisane zero znaczy zero. Nonce i uprawnienie sprawdza WooCommerce, zanim ten kod się uruchomi.
Zapis pomija każdą grupę, której moduł jest wyłączony. To ważniejsze, niż brzmi: odznaczone pole wyboru nie wysyła nic, a pętla czyta brak wartości jako “wyczyszczone”. Dla pola, które merchant właśnie odznaczył, jest to poprawne, a dla pola, którego nigdy nie było na ekranie, nie, więc wyłączenie modułu nie kasuje po cichu wprowadzonych już ustawień per produkt. Po ponownym włączeniu modułu produkt jest skonfigurowany tak jak wcześniej.
Stopniowe odsłanianie
Dział zatytułowany „Stopniowe odsłanianie”Pola podrzędne karty podarunkowej, przedsprzedaży i subskrypcji siedzą w osobnych blokach, z których każdy zwija się, dopóki jego główne pole wyboru jest odznaczone, żeby produkt niebędący kartą podarunkową nie pokazywał pięciu pól karty podarunkowej.
To wyłącznie prezentacja. Znaczniki wychodzą rozwinięte, więc z zablokowanym JavaScriptem każde pole jest widoczne, edytowalne i zapisywane dokładnie tak samo; nic nie jest bramkowane skryptem. Zwinięty blok wypada też z kolejności tabulacji, więc ukrytego pola nie da się wypełnić klawiaturą i zapisać niepostrzeżenie.
Gdy moduł nadal nic nie robi
Dział zatytułowany „Gdy moduł nadal nic nie robi”- Czy moduł jest włączony w Polski > Moduły? Każdy z pięciu jest domyślnie wyłączony, bo każdy zmienia to, co widzi klient.
- Czy bramka per produkt jest ustawiona? Karty podarunkowe, przedsprzedaż i subskrypcje wymagają zaznaczenia własnego pola na produkcie, a przedsprzedaż dodatkowo daty premiery.
- Przy pakietach i często kupowanych razem: czy lista wskazuje realne, istniejące produkty?
- Czy ustawienie modułu Pokaż na karcie produktu (na ekranie Moduły) nadal na to pozwala?