Poradniki

Prawo odstąpienia od umowy w WooCommerce (przycisk odstąpienia)

Autor: Mariusz Szatkowski · Zaktualizowano: 2026-11-06

Prawo odstąpienia od umowy to najbardziej znane uprawnienie konsumenta w handlu internetowym: 14 dni na rezygnację z zakupu na odległość, bez podawania przyczyny. Przepis jest stary, ale sposób jego obsługi właśnie się zmienia. Dyrektywa (UE) 2023/2673 dodaje do unijnego prawa konsumenckiego wymóg tzw. funkcji odstąpienia, czyli wyraźnie oznaczonej możliwości odstąpienia od umowy dostępnej w tym samym interfejsie, w którym umowę zawarto. Konsument nie ma już szukać adresu do korespondencji ani drukować formularza z PDF-a: klika, wskazuje zamówienie i składa oświadczenie. Dla sklepu WooCommerce oznacza to konkretne zadanie techniczne, bo WooCommerce nie ma takiej funkcji wbudowanej. Ten przewodnik wyjaśnia, co dokładnie wynika z przepisów, jak wygląda poprawna obsługa odstąpienia (w tym częściowego i dla gości) i jak wdrożyć ją w WooCommerce bez pisania własnego modułu.

Co mówią przepisy: 14 dni i funkcja odstąpienia

Podstawa jest znana od lat. Dyrektywa o prawach konsumenta (2011/83/UE), w Polsce wdrożona ustawą o prawach konsumenta, daje konsumentowi 14 dni na odstąpienie od umowy zawartej na odległość bez podawania przyczyny (art. 9 ust. 1 dyrektywy 2011/83/UE). Przy sprzedaży termin biegnie od dnia, w którym konsument albo wskazana przez niego osoba inna niż przewoźnik wejdzie w fizyczne posiadanie towaru, czyli w praktyce od dostarczenia przesyłki. Gdy kilka towarów przychodzi osobno, liczy się ostatni z nich, a gdy towar składa się z wielu partii lub części, ostatnia partia lub część. Przy usługach termin biegnie od zawarcia umowy (art. 9 ust. 2 dyrektywy 2011/83/UE). Konsument może złożyć oświadczenie na wzorze formularza odstąpienia z załącznika I część B do dyrektywy albo w dowolnej innej jednoznacznej formie (art. 11 ust. 1 dyrektywy 2011/83/UE).

Sprzedawca ma następnie 14 dni na zwrot wszystkich płatności, łącznie z kosztami dostawy, tym samym sposobem płatności, chyba że konsument wyraźnie zgodził się na inny (art. 13 ust. 1 dyrektywy 2011/83/UE). Nie musi zwracać dodatkowych kosztów, jeśli konsument wybrał dostawę droższą niż najtańsza standardowa (art. 13 ust. 2 dyrektywy 2011/83/UE). Jeśli nie zaproponował, że sam odbierze towar, może wstrzymać się ze zwrotem do czasu otrzymania towaru z powrotem lub dowodu jego odesłania, zależnie od tego, co nastąpi wcześniej (art. 13 ust. 3 dyrektywy 2011/83/UE). Konsument odsyła towar w ciągu 14 dni od złożenia oświadczenia i ponosi tylko bezpośredni koszt zwrotu, chyba że sklep zgodził się go pokryć albo nie poinformował o nim konsumenta (art. 14 ust. 1 dyrektywy 2011/83/UE). Za zmniejszenie wartości towaru odpowiada tylko wtedy, gdy korzystał z niego dalej, niż było trzeba, by sprawdzić jego charakter, cechy i działanie (art. 14 ust. 2 dyrektywy 2011/83/UE).

Jeżeli sklep nie poinformował o prawie odstąpienia, okres kończy się dopiero 12 miesięcy po upływie pierwotnych 14 dni (art. 10 ust. 1 dyrektywy 2011/83/UE). Gdy sklep przekaże tę informację w ciągu tych 12 miesięcy, termin upływa 14 dni po tym, jak konsument ją otrzyma (art. 10 ust. 2 dyrektywy 2011/83/UE). Dlatego przed zawarciem umowy sklep informuje o warunkach, terminie i procedurach korzystania z prawa odstąpienia, udostępnia wzór formularza odstąpienia z załącznika I część B, a gdy ma to zastosowanie, informuje o istnieniu funkcji odstąpienia z art. 11a i o tym, gdzie ją znaleźć (art. 6 ust. 1 lit. h dyrektywy 2011/83/UE).

Ostrzeżenie: Niepoinformowanie konsumenta o prawie odstąpienia przed złożeniem zamówienia wydłuża termin do 12 miesięcy po upływie pierwotnych 14 dni (art. 10 ust. 1 dyrektywy 2011/83/UE). Zadbaj o informację o zwrotach i odstąpieniu, zanim zajmiesz się czymkolwiek innym.

Nowość to sposób składania oświadczenia. Dyrektywa (UE) 2023/2673, przyjęta przy okazji reformy przepisów o usługach finansowych na odległość, dodaje do dyrektywy 2011/83/UE artykuł 11a. Wynika z niego, że gdy umowa jest zawierana za pomocą interfejsu internetowego, przedsiębiorca ma zapewnić konsumentowi możliwość odstąpienia przez funkcję odstąpienia: wyraźnie oznaczoną, łatwą do znalezienia i stale dostępną przez cały okres odstąpienia. Po jej uruchomieniu konsument podaje lub potwierdza podstawowe dane identyfikujące (kogo dotyczy, która umowa), a po wysłaniu oświadczenia przedsiębiorca bez zbędnej zwłoki potwierdza jego otrzymanie na trwałym nośniku, wraz z datą złożenia. Potocznie mówi się o przycisku odstąpienia, analogicznie do znanego już przycisku rezygnacji z subskrypcji. Państwa członkowskie stosują nowe przepisy od 19 czerwca 2026, więc dla sklepów to już teraźniejszość, nie odległy plan.

Uwaga: Państwa członkowskie stosują funkcję odstąpienia z art. 11a od 19 czerwca 2026, a sklep wiąże ona przez prawo krajowe. Stan na 29.10.2026: polska ustawa o prawach konsumenta nie zawiera jeszcze takiego przepisu. Proces oparty wyłącznie na „napisz do nas” nie odpowiada temu, czego wymaga dyrektywa.

Warto zapamiętać trzy praktyczne konsekwencje. Po pierwsze, e-mail czy telefon do biura obsługi przestają wystarczać jako jedyna ścieżka: potrzebna jest funkcja w interfejsie sklepu. Po drugie, oświadczenie musi być proste do złożenia, bez zakładania konta i bez zbędnych pól. Po trzecie, sklep musi umieć wykazać, kiedy oświadczenie wpłynęło, bo od tej daty liczy się termin zwrotu płatności.

Uwaga: Prawo odstąpienia przysługuje konsumentowi, nie posiadaczowi konta. Przepływ ukryty za kontem klienta wyklucza kupujących jako gość, więc identyfikuj zamówienia gości po numerze zamówienia i adresie e-mail z rozliczenia.

Kogo to dotyczy

Obowiązki dotyczą przedsiębiorców zawierających z konsumentami umowy na odległość przez interfejs internetowy, czyli w praktyce każdego sklepu internetowego sprzedającego konsumentom w UE. Nie ma znaczenia, czy sklep działa na WooCommerce, platformie hostowanej czy własnym kodzie. Prawo odstąpienia ma wyjątki z art. 16 dyrektywy 2011/83/UE (m.in. usługi w pełni wykonane, a przy usługach płatnych tylko wtedy, gdy wykonanie zaczęło się za wcześniejszą wyraźną zgodą konsumenta i po przyjęciu przez niego do wiadomości, że traci prawo odstąpienia; towary wykonane według specyfikacji konsumenta lub wyraźnie spersonalizowane; towary szybko psujące się lub z krótkim terminem przydatności; towary w zapieczętowanym opakowaniu, których ze względu na ochronę zdrowia lub higienę nie można zwrócić po otwarciu; towary nierozłącznie połączone z innymi po dostarczeniu; zapieczętowane nagrania audio, wideo i programy komputerowe otwarte po dostarczeniu; dzienniki, periodyki i czasopisma poza prenumeratą; aukcje publiczne), ale wyjątki nie zwalniają z posiadania samej funkcji: o tym, czy konkretne odstąpienie jest skuteczne, sklep rozstrzyga po otrzymaniu oświadczenia, nie przez ukrycie formularza.

Sprzedaż B2B pozostaje poza tym reżimem, bo prawo odstąpienia przysługuje konsumentom (w Polsce także przedsiębiorcom na prawach konsumenta przy umowach niezwiązanych zawodowo z ich działalnością). Jeśli sklep sprzedaje i firmom, i konsumentom, funkcja odstąpienia musi działać dla tych drugich.

Czego brakuje w samym WooCommerce

WooCommerce dobrze obsługuje techniczną stronę zwrotu pieniędzy: w widoku zamówienia jest przycisk Refund, integracje płatności potrafią zwrócić środki na kartę, a zamówienie dostaje status zwrócone. Brakuje natomiast całej warstwy oświadczenia konsumenta:

  • nie ma formularza, w którym klient zadeklaruje odstąpienie od umowy;
  • nie ma licznika okresu odstąpienia ani weryfikacji, czy 14 dni już minęło;
  • nie ma przycisku odstąpienia w widoku zamówienia w koncie klienta;
  • nie ma ścieżki dla gości, którzy kupili bez konta;
  • nie ma ewidencji wniosków ze statusami, do której można sięgnąć przy sporze;
  • nie ma automatycznego potwierdzenia złożenia oświadczenia e-mailem.

Zbudowanie tego samodzielnie oznacza własny shortcode lub stronę z formularzem, bezpieczne wyszukiwanie zamówień (z ochroną przed odpytywaniem cudzych zamówień), logikę terminu liczonego od dostarczenia, tabelę na wnioski, ekran administracyjny i dwa szablony e-maili. Do tego testy w klasycznym i blokowym WooCommerce oraz zgodność z HPOS. To wykonalne, ale to kilka dni pracy nad czymś, co jest identyczne w każdym sklepie.

Jak powinna wyglądać poprawna obsługa odstąpienia

Niezależnie od tego, czy piszesz kod, czy instalujesz wtyczkę, kompletna implementacja potrzebuje tych elementów:

  1. Widoczny punkt wejścia. Przycisk odstąpienia przy szczegółach zamówienia w koncie klienta plus osobna strona z formularzem, do której można dojść z regulaminu i stopki. Funkcja ma być łatwa do znalezienia, nie schowana w FAQ.
  2. Identyfikacja zamówienia bez konta. Para numer zamówienia + e-mail z zamówienia wystarcza do bezpiecznej identyfikacji i obejmuje też gości. Wymaganie logowania odcina każdego, kto kupił jako gość.
  3. Weryfikacja terminu. Licz okres odstąpienia od dostarczenia towaru (w WooCommerce najbliższym odpowiednikiem jest data zakończenia zamówienia), a jeśli zamówienie nigdy nie zostało oznaczone jako zrealizowane, od daty złożenia. Odrzucaj wnioski po terminie z czytelnym komunikatem.
  4. Odstąpienie częściowe. Pozwól wskazać konkretne pozycje i ilości. Klient, który zamówił trzy sztuki i chce zwrócić jedną, nie powinien być zmuszany do deklaracji o całym zamówieniu.
  5. Wzór oświadczenia. Pokaż na formularzu treść zgodną z ustawowym wzorem formularza odstąpienia (załącznik I.B), z możliwością edycji pod własną jurysdykcję.
  6. Potwierdzenie na trwałym nośniku. Automatyczny e-mail do klienta z listą pozycji i datą złożenia oświadczenia oraz powiadomienie do sklepu.
  7. Ewidencja wniosków. Rejestr z datą, zamówieniem, pozycjami i statusem obsługi. Przy sporze albo kontroli to ewidencja rozstrzyga, kiedy oświadczenie wpłynęło i co się z nim stało.
  8. Rozdzielenie oświadczenia od pieniędzy. Zwrot płatności wykonuj świadomie w ekranie zamówienia, po weryfikacji. Formularz przyjmuje oświadczenie, człowiek decyduje o przelewie.

Jak zrobić to z wtyczką Plogins Withdraw

Darmowa wtyczka Plogins Withdraw pakuje dokładnie ten przepływ. Tworzysz stronę z shortcodem [withdraw_form] i wskazujesz ją w ustawieniach (WooCommerce > Withdrawal). Formularz prowadzi przez kilka kroków: klient najpierw wyszukuje zamówienie po numerze i adresie e-mail z zamówienia (działa też dla gości, bez konta), potem zaznacza pozycje i ilości, których dotyczy odstąpienie, opcjonalnie dopisuje powód, a na końcu potwierdza odstąpienie w osobnym kroku, tak jak wymaga art. 11a ust. 3. Wszystkie kroki są chronione noncem, a ilości są przycinane do faktycznie zamówionych.

Formularz odstąpienia w sklepie WooCommerce z wyszukiwaniem zamówienia i wyborem pozycji Formularz odstąpienia po stronie sklepu: klient wyszukuje zamówienie, zaznacza pozycje i składa oświadczenie.

Ostrzeżenie: Prawo przysługuje „bez podawania przyczyny”, więc obowiązkowe pole na powód w formularzu odstąpienia to sygnał ostrzegawczy dla zgodności. Zostaw powód jako opcjonalny.

Wtyczka sama pilnuje terminu: okres odstąpienia jest konfigurowalny (domyślnie ustawowe 14 dni, można wydłużyć do 365) i liczony od daty zakończenia zamówienia, a gdy zamówienie nigdy nie zostało zakończone, od daty jego złożenia. Konfigurujesz też, które statusy zamówień kwalifikują się do odstąpienia (domyślnie zrealizowane i w trakcie realizacji). Zamówienia po terminie albo w innym statusie dostają czytelną odmowę. Ilości objętych wcześniejszym oświadczeniem nie da się zgłosić drugi raz, ale resztę zamówienia klient może zgłosić później.

W koncie klienta, pod szczegółami zamówienia i na liście zamówień, pojawia się przycisk odstąpienia, który prowadzi na stronę formularza z numerem zamówienia wpisanym z góry. Widać go tylko wtedy, gdy zamówienie ma kwalifikujący się status, a okres odstąpienia jeszcze trwa. Na formularzu wyświetlany jest edytowalny tekst wzoru odstąpienia (do dostosowania pod załącznik I.B), a treść wprowadzenia też ustawiasz sam. Po wysłaniu klient dostaje e-mail z potwierdzeniem i listą pozycji, a sklep powiadomienie na wskazany adres (domyślnie e-mail administratora).

Każdy wniosek trafia do ewidencji na ekranie WooCommerce > Withdrawal Requests: numer, zamówienie, klient, pozycje z ilościami, data i status. Wnioski przechodzą przez statusy oczekujący, zaakceptowany, odrzucony i zrealizowany, z filtrowaniem po statusie i zmianą statusu przy każdym wierszu. Wtyczka celowo nie rusza pieniędzy: zwrot wykonujesz normalnie w ekranie zamówienia WooCommerce, a w ewidencji odnotowujesz, że wniosek został obsłużony. Zamówienia są czytane przez API zamówień WooCommerce, więc całość jest zgodna z HPOS. Wszystko powyższe jest w edycji darmowej.

Dla sklepów poszukujących jednego zbiorczego pakietu na wszystkie obowiązki unijne, podstawowy formularz oświadczenia o odstąpieniu (moduł withdrawal, nie jest to funkcja z art. 11a), formularz dla gości ([shoplex_withdrawal_form]) oraz rejestr wniosków zawiera bezpłatna wtyczka Shoplex.

Ekran ustawień Plogins Withdraw w panelu WordPress pod WooCommerce Ekran ustawień odstąpienia w panelu WordPress: okres, strona formularza, kwalifikujące się statusy i e-mail powiadomień.

Rozsądne wdrożenie

Zacznij od strony z formularzem i wpisu w regulaminie oraz stopce, żeby funkcja odstąpienia była łatwa do znalezienia. Ustaw okres zgodny z własną polityką (ustawowo 14 dni, dłuższy okres bywa argumentem sprzedażowym) i dopasuj tekst wzoru odstąpienia do brzmienia obowiązującego w Twojej jurysdykcji, najlepiej po konsultacji z prawnikiem, bo wtyczka dostarcza funkcję techniczną, nie poradę prawną. Przetestuj pełny obieg na zamówieniu testowym: złożenie wniosku jako gość, e-maile, zmiana statusu w ewidencji, zwrot w ekranie zamówienia. Cel jest prosty: konsument, który chce odstąpić od umowy, ma zrobić to w minutę, a sklep ma mieć każdy taki wniosek udokumentowany z datą i rozstrzygnięciem.

Plogins Withdraw