Przejdź do głównej zawartości

Czas dostawy

Polskie prawo wymaga, by sklep informował o czasie dostawy przed złożeniem zamówienia. Wtyczka Polski for WooCommerce pozwala ustawić czas dostawy globalnie, per produkt i per wariant.

Podaj czas dostawy zanim klient kliknie przycisk zamówienia. Informacja powinna być:

  • jasna i zrozumiała
  • podana w dniach roboczych lub kalendarzowych
  • widoczna na stronie produktu

Brak tej informacji grozi karami od UOKiK.

Wtyczka tworzy taksonomię polski_delivery_time, w której definiujesz czasy dostawy i przypisujesz je do produktów.

Przejdź do Produkty > Czas dostawy, aby zarządzać dostępnymi terminami.

Przykładowe terminy:

NazwaSlugOpis
1-2 dni robocze1-2-dni-roboczeProdukty na magazynie
3-5 dni roboczych3-5-dni-roboczychProdukty zamawiane u dostawcy
7-14 dni roboczych7-14-dni-roboczychProdukty na zamówienie
Do 24 godzindo-24-godzinProdukty cyfrowe / ekspres
Dostępny od rękidostepny-od-rekiNatychmiastowa realizacja

Terminy dostawy to taksonomia WordPress - tworzysz, edytujesz i usuwasz je w panelu admina.

Przejdź do WooCommerce > Ustawienia > Polski > Ceny i skonfiguruj sekcję “Czas dostawy”.

UstawienieOpis
Włącz czas dostawyAktywuje wyświetlanie na stronie produktu
Domyślny czas dostawyWartość zapasowa (fallback) dla produktów bez przypisanego terminu
Pokaż na listinguWyświetla czas dostawy na stronach kategorii
Pokaż w koszykuWyświetla czas dostawy w koszyku
EtykietaTekst przed czasem dostawy (domyślnie: “Czas dostawy:“)

Domyślny czas dostawy (fallback) pojawia się, gdy produkt nie ma własnego terminu. Dzięki temu nie musisz edytować każdego produktu osobno.

Hierarchia wyświetlania:

  1. Czas dostawy wariantu (jeśli ustawiony)
  2. Czas dostawy produktu głównego (jeśli ustawiony)
  3. Domyślny czas dostawy z ustawień globalnych (fallback)

Jeśli nic nie jest ustawione, czas dostawy nie pojawi się.

W edytorze produktu otwórz zakładkę “Wysyłka”. W polu Czas dostawy wybierz termin z listy lub dodaj nowy.

Każdy wariant może mieć własny czas dostawy. Rozwiń sekcję wariantu i ustaw termin. Warianty bez terminu dziedziczą wartość z produktu głównego.

Użyj shortcode [polski_delivery_time], aby wyświetlić czas dostawy w dowolnym miejscu.

ParametrTypDomyślnyOpis
product_idintbieżącyID produktu
labelstring"Czas dostawy: "Etykieta przed wartością
show_labelbooltrueCzy wyświetlać etykietę
wrapperstringspanElement HTML opakowujący
fallbackstring""Tekst, gdy brak czasu dostawy

Podstawowe użycie:

[polski_delivery_time]

Wynik: Czas dostawy: 1-2 dni robocze

Bez etykiety:

[polski_delivery_time show_label="false"]

Wynik: 1-2 dni robocze

Z niestandardową etykietą i fallbackiem:

[polski_delivery_time label="Wysyłka: " fallback="Zapytaj o dostępność"]

Dla konkretnego produktu:

[polski_delivery_time product_id="456"]

W szablonie PHP:

echo do_shortcode('[polski_delivery_time product_id="' . $product->get_id() . '"]');
wp_set_object_terms($product_id, '1-2-dni-robocze', 'polski_delivery_time');
$terms = wp_get_object_terms($product_id, 'polski_delivery_time');
if (!empty($terms) && !is_wp_error($terms)) {
$delivery_time = $terms[0]->name;
}
wp_insert_term(
'2-3 dni robocze',
'polski_delivery_time',
[
'slug' => '2-3-dni-robocze',
'description' => 'Standardowy czas realizacji',
]
);

Do importu czasu dostawy przez CSV użyj kolumny:

Kolumna CSVOpisWartość
polski_delivery_timeNazwa terminu dostawy1-2 dni robocze

Jeśli termin o podanej nazwie nie istnieje, zostanie automatycznie utworzony podczas importu.

Przykład:

"Laptop Dell XPS 15",5499.00,"3-5 dni roboczych"
"Mysz Logitech MX",299.00,"1-2 dni robocze"

Możesz programistycznie zmieniać czas dostawy na podstawie stanu magazynowego lub daty zamówienia.

add_filter('polski/delivery_time/display', function (string $delivery_time, WC_Product $product): string {
if ($product->get_stock_quantity() > 0) {
return '1-2 dni robocze';
}
return '7-14 dni roboczych';
}, 10, 2);
.polski-delivery-time {
display: inline-block;
margin-top: 0.5em;
font-size: 0.9em;
color: #2e7d32;
}
.polski-delivery-time__label {
font-weight: 600;
}
.polski-delivery-time__value {
color: #333;
}
  1. Sprawdź, czy moduł jest włączony w ustawieniach
  2. Upewnij się, że produkt ma przypisany termin lub ustawiony jest domyślny fallback
  3. Zweryfikuj, czy motyw obsługuje hook woocommerce_single_product_summary

Sprawdź, czy JavaScript wtyczki jest załadowany. Otwórz konsolę przeglądarki i szukaj błędów JS. Wtyczka aktualizuje czas dostawy wariantu przez AJAX.

Ta strona ma wyłącznie charakter informacyjny i nie stanowi porady prawnej. Przed wdrożeniem skonsultuj się z prawnikiem. Polski for WooCommerce jest oprogramowaniem open source (GPLv2) dostarczanym bez gwarancji.