Daty w checkoutcie WooCommerce: możliwości API i wdrożenie
WooCommerce 11.2 dodaje typ pola daty do Checkout API. Sprawdź, gdzie je umieścić, jak ograniczyć terminy i co musi przygotować wykonawca.

WooCommerce 11.2.0 dodało typ daty do API dodatkowych pól checkoutu. Rozszerzenie lub wykonawca może dzięki temu zbierać na przykład preferowany termin dostawy w Checkout block, ale aktualizacja sama nie dodaje pola do sklepu. Trzeba zarejestrować je w kodzie i określić jego położenie oraz reguły wyboru. Informacja o wydaniu WooCommerce 11.2.0 została opublikowana 7 października 2026 r.
W skrócie
- Typ
datejest dostępny w dodatkowych polach Checkout API od WooCommerce 11.2.0. - Datę dostawy można pokazać w sekcji informacji o zamówieniu i zapisać przy zamówieniu.
- Opcje
minimaxograniczają wybór do dat stałych albo względnych wobec bieżącego dnia. - Pole trzeba wdrożyć i sprawdzić w sklepie. API nie ustala dostępności przewoźnika, godzin dostawy ani dni roboczych.
WooCommerce 11.2 i pola checkoutu: co zmieniło się w API?
Wydanie z 7 października 2026 r. wprowadziło obsługę dat w Additional Checkout API. Dokumentacja opisuje cztery typy dodatkowych pól: select, text, checkbox i date. Pole daty przechowuje datę kalendarzową bez godziny, więc pasuje do wyboru dnia, a nie przedziału godzinowego. Notatki wydania wskazują przykłady takie jak urodziny i preferowane daty dostawy.
Warto rozróżnić możliwość techniczną od gotowej funkcji sklepu. WooCommerce udostępnia rozszerzeniu sposób rejestracji pola, ale ktoś musi ustalić jego etykietę, lokalizację, obowiązkowość oraz dopuszczalne terminy. Właściciel sklepu powinien też zdecydować, czy klient wybiera preferowaną datę, czy termin, którego sklep faktycznie może dotrzymać.
| Lokalizacja pola | Gdzie pojawia się w checkoutcie | Gdzie trafia wartość | Typowe zastosowanie |
|---|---|---|---|
order | Blok informacji o zamówieniu | Do zamówienia | Preferowana data dostawy lub wiadomość do zamówienia |
contact | Sekcja danych kontaktowych | Do danych konta klienta | Informacja powiązana z klientem, używana przy kolejnych zakupach |
address | Formularz adresu wysyłki i rozliczeniowy | Do klienta i zamówienia, osobno dla adresu wysyłki i rozliczeniowego | Dodatkowa informacja adresowa |
Dla jednorazowego wyboru daty dostawy najczytelniejsza jest zwykle lokalizacja order: wartość dotyczy konkretnego zamówienia. Dokumentacja wyjaśnia, że pola w lokalizacji order zapisują się przy zamówieniu, a pola address pojawiają się w obu formularzach adresowych i mogą zebrać dwie wartości. Opis lokalizacji pól pomoże dobrać miejsce do celu.
Jak zarejestrować pole daty dostawy
API rejestruje się funkcją woocommerce_register_additional_checkout_field. WooCommerce zaleca uruchomić ją przy akcji woocommerce_init lub później; wcześniejsza rejestracja może powodować problemy z inicjalizacją i tłumaczeniami. Dokumentacja funkcji i opcji rejestracji podaje taki przykład:
add_action(
'woocommerce_init',
function() {
woocommerce_register_additional_checkout_field(
array(
'id' => 'moj-sklep/data-dostawy',
'label' => 'Preferowana data dostawy',
'location' => 'order',
'type' => 'date',
'required' => true,
'min' => 'P1D',
'max' => 'P30D',
)
);
}
);
To pole jest wymagane, a klient może wskazać termin od jutra do 30 dni naprzód. P1D i P30D to okresy względne zapisane w formacie ISO 8601-2. Dokumentacja zaleca przekazać taki okres bezpośrednio, zamiast obliczać datę w PHP podczas rejestracji, bo wartość względna jest rozpatrywana podczas wyświetlania i wysyłania pola. Opis ograniczeń daty i formatów podaje też, że pole nie obsługuje składowej godziny.
API dotyczy dodatkowych pól Checkout block. Przed wdrożeniem wykonawca powinien więc sprawdzić, czy sklep korzysta z bloku checkoutu, a nie zakładać, że identyczna rejestracja doda pole do każdego wariantu checkoutu. Ogólny poradnik WooCommerce podaje minimalną wersję 8.9.0 dla funkcji dodatkowych pól, lecz obsługa typu date pojawiła się dopiero w WooCommerce 11.2.0. Poradnik dodawania pól podaje minimum WooCommerce 8.9.0, a notatki wydania WooCommerce 11.2.0 potwierdzają dodanie typu date. Wymagania WordPress zależą od wersji WooCommerce; sprawdź wersje środowiska w WooCommerce > Status i porównaj je z aktualną tabelą wymagań WooCommerce. Tabela opublikowana obecnie nie wymienia jeszcze WooCommerce 11.2, więc nie należy z niej wyprowadzać osobnego minimum WordPress dla tego wydania. Dla WooCommerce 11.2.1 katalog WordPress.org podaje minimum WordPress 7.0 i testowanie do wersji 7.1.3; sprawdź te wymagania na karcie WooCommerce.
Stały termin czy okno względne?
min i max mogą przyjmować konkretną datę w formacie YYYY-MM-DD albo okres względem dzisiaj. min ustawione na 2026-12-01 jest przykładem stałej dolnej granicy, a max równe P30D przykładem ruchomej górnej granicy. Nie należy łączyć tych wartości bez sprawdzenia zakresu: 22 października 2026 r. minimum przypada później niż maksimum, więc WooCommerce ignoruje obie granice, pozostawia pole bez ograniczeń i emituje ostrzeżenie w logu. Ustawienie samych granic nie wyklucza weekendów ani świąt. Jeśli sklep nie realizuje dostaw w takie dni, wykonawca musi zaprojektować dodatkową walidację lub inne rozwiązanie zgodne z procesem sklepu.
| Potrzeba | Przykładowa opcja | Co oznacza |
|---|---|---|
| Od jutra | 'min' => 'P1D' | Najwcześniejszy wybór przypada następnego dnia |
| Do 30 dni naprzód | 'max' => 'P30D' | Ostatni wybór przypada w granicy 30 dni |
| Daty od wskazanego dnia włącznie | 'min' => '2026-12-01' | Ograniczenie zaczyna się od wskazanej daty |
| Walidacja względem innego pola | JSON Schema z formatExclusiveMinimum | Można wymagać, by data końcowa była późniejsza od początkowej |
Daty zapisują się w bazie jako YYYY-MM-DD, a widok w sklepie i e-mailach używa formatu daty ustawionego w WordPressie. Klient wpisuje lub wybiera datę zgodnie z ustawieniami lokalnymi przeglądarki. Jeśli dwa pola są od siebie zależne, na przykład „od” i „do”, dokumentacja opisuje walidację JSON Schema porównującą ich wartości. Przykład walidacji dat między polami pokazuje regułę, która wymaga, by data końcowa przypadała po początkowej.
Plan wdrożenia dla sklepu i wykonawcy
- Sprawdź wersję i rodzaj checkoutu. Potwierdź, że sklep działa na WooCommerce 11.2.0 lub nowszym oraz korzysta z Checkout block. Numer wersji WooCommerce i WordPressa znajdziesz w
WooCommerce > Status; wymagania środowiska sprawdź w dokumentacji WooCommerce. - Opisz reguły terminu. Zdecyduj, czy data jest obowiązkowa, jaki jest najwcześniejszy i najpóźniejszy wybór oraz czy trzeba wykluczyć niedostępne dni. API
minimaxokreśla granice dat, ale samo nie opisuje kalendarza operacyjnego sklepu. - Zarejestruj pole w rozszerzeniu lub kodzie sklepu. Ten fragment PHP jest przeznaczony dla wykonawcy przygotowującego własne rozszerzenie WooCommerce; właściciel sklepu bez zaplecza programistycznego powinien przekazać go wykonawcy. Użyj unikalnego identyfikatora w formacie
przestrzeń/nazwa, właściwej lokalizacji i typudate. Rejestrację wykonaj nawoocommerce_initlub później. - Ustal obsługę zapisanej wartości. Dla pola
orderodczytuj datę z danych zamówienia. Dokumentacja zaleca korzystanie z metod pomocniczych klasyCheckoutFields, bo są mniej podatne na zmiany niż bezpośredni dostęp do metadanych. - Sprawdź cały przepływ na środowisku testowym. Zweryfikuj widok checkoutu, wymagane i niedozwolone wartości, zapis w zamówieniu oraz format daty na ekranie zamówienia i w wiadomości e-mail. Osobno sprawdź, jak działa pole w telefonie, bo interfejs wyboru daty zależy od przeglądarki.
Właściciel sklepu odpowiada za decyzję, jakie terminy są realne operacyjnie. Wykonawca odpowiada za rejestrację pola, walidację, zapis i sprawdzenie widoku. Taki podział ogranicza ryzyko, że klient wybierze datę, której sklep nie jest w stanie obsłużyć.
FAQ
Czy WooCommerce 11.2 samo dodaje pole daty do checkoutu?
Nie. Wydanie dodaje typ date do API. Rozszerzenie lub kod sklepu musi zarejestrować pole i ustawić jego parametry. Notatki wydania mówią o obsłudze dat przez API.
Czy klient może wybrać godzinę dostawy?
Nie za pomocą typu date. To pole przechowuje dzień kalendarzowy bez komponentu czasu. Godziny wymagają innego rozwiązania.
Czy pole działa z klasycznym checkoutem?
Opisana dokumentacja dotyczy dodatkowych pól Checkout block. Nie należy zakładać, że ta rejestracja doda pole do klasycznego checkoutu. Sprawdź najpierw, z którego checkoutu korzysta sklep.
Jak ograniczyć daty do najbliższych 30 dni?
Ustaw max na P30D. Aby dodatkowo odrzucić dzisiejszą datę i wcześniejsze, ustaw min na P1D. Są to względne okresy obsługiwane przez pole daty.
Gdzie zapisuje się wybrany termin?
Zależy to od lokalizacji. Pole order zapisuje się przy zamówieniu, contact przy danych klienta, a address przy danych adresowych klienta i zamówienia. Dla terminu odnoszącego się do jednej dostawy wybierz lokalizację order.
Co dalej
Jeśli planujesz aktualizację sklepu do WooCommerce 11.2, sprawdź też co naprawia WooCommerce 11.2.1 i kto powinien skontrolować checkout.
