Przejdź do treści

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.

Daty w checkoutcie WooCommerce: możliwości API i wdrożenie

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 date jest 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 min i max ograniczają 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 polaGdzie pojawia się w checkoutcieGdzie trafia wartośćTypowe zastosowanie
orderBlok informacji o zamówieniuDo zamówieniaPreferowana data dostawy lub wiadomość do zamówienia
contactSekcja danych kontaktowychDo danych konta klientaInformacja powiązana z klientem, używana przy kolejnych zakupach
addressFormularz adresu wysyłki i rozliczeniowyDo klienta i zamówienia, osobno dla adresu wysyłki i rozliczeniowegoDodatkowa 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.

PotrzebaPrzykładowa opcjaCo 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 polaJSON Schema z formatExclusiveMinimumMoż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

  1. 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.
  2. 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 min i max określa granice dat, ale samo nie opisuje kalendarza operacyjnego sklepu.
  3. 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 typu date. Rejestrację wykonaj na woocommerce_init lub później.
  4. Ustal obsługę zapisanej wartości. Dla pola order odczytuj datę z danych zamówienia. Dokumentacja zaleca korzystanie z metod pomocniczych klasy CheckoutFields, bo są mniej podatne na zmiany niż bezpośredni dostęp do metadanych.
  5. 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.

Asystent zakupowy AI dla Twojego sklepu WooCommerce

Klient pyta w oknie czatu, asystent odpowiada z Twojego katalogu. Plan darmowy nie wymaga karty.