Spis treści
- Czym jest moduł
- Po co powstał
- Jaki problem rozwiązuje
- Wymagania
- Instalacja
- Konfiguracja
- Obsługa – strona klienta
- Obsługa – panel administracyjny
- Powiadomienia e-mail
- Statusy zwrotów
- Rozwiązywanie problemów
- Hooki dla deweloperów
1. Czym jest moduł
DC One Click Return to wtyczka WordPress/WooCommerce, która umożliwia klientom składanie wniosków o odstąpienie od umowy (zwrot towaru) bezpośrednio w sklepie internetowym.
Moduł zapewnia:
- publiczny formularz zwrotów dostępny pod dedykowaną stroną sklepu,
- możliwość dodania linku „Formularz zwrotów” do menu nawigacyjnego (sekcja endpointów WooCommerce),
- dwuetapowy proces składania oświadczenia o odstąpieniu (zgodny z wymaganiami dyrektywy UE),
- obsługę klientów zalogowanych i gości (bez konieczności zakładania konta),
- wybór konkretnych produktów z zamówienia do zwrotu (nie trzeba zwracać całego zamówienia),
- panel administracyjny „Zwroty” w menu WooCommerce do zarządzania wnioskami,
- automatyczne powiadomienia e-mail dla klienta i sklepu.
Zobacz wideo z instalacji i obsługi modułu:
2. Po co powstał
Moduł powstał jako odpowiedź na nowe wymagania prawne Unii Europejskiej dotyczące praw konsumenta w handlu internetowym.
Od 19 czerwca 2026 roku obowiązują przepisy wynikające z Dyrektywy (UE) 2023/2673, która zmienia dyrektywę o prawach konsumenta (2011/83/UE). Sklepy internetowe sprzedające konsumentom w UE muszą udostępnić elektroniczną funkcję odstąpienia od umowy.
Wcześniej w wielu sklepach odstąpienie od umowy wymagało:
- pobrania formularza PDF,
- wysłania e-maila na ogólny adres sklepu,
- telefonu do obsługi klienta,
- logowania się do konta (co prawnie nie może być warunkiem).
DC One Click Return implementuje ten proces w WooCommerce w sposób prosty dla klienta i przejrzysty dla właściciela sklepu.
3. Jaki problem rozwiązuje
Problem prawny
Dyrektywa wymaga, aby konsument mógł odstąpić od umowy zawartej online również online – bez zbędnych przeszkód. Formularz musi być:
- łatwo dostępny (np. w menu sklepu),
- dostępny bez logowania,
- proces dwuetapowy: oświadczenie + potwierdzenie,
- z automatycznym potwierdzeniem otrzymania wniosku (np. e-mail).
Problem operacyjny
Bez dedykowanego modułu zwroty często trafiają na różne kanały (e-mail, telefon, formularz kontaktowy), co utrudnia:
- śledzenie statusu wniosku,
- powiązanie zwrotu z konkretnym zamówieniem,
- informowanie klienta o postępie,
- spełnienie wymogu potwierdzenia na trwałym nośniku.
Co daje moduł w praktyce
- Jeden, spójny proces zwrotu dla wszystkich klientów.
- Weryfikacja zamówienia po numerze i e-mailu (dla gości) lub wybór z listy (dla zalogowanych).
- Możliwość zwrotu wybranych produktów z zamówienia.
- Centralna lista wniosków w panelu WooCommerce.
- Automatyczne maile przy złożeniu wniosku i przy zmianie statusu.
4. Wymagania
- WordPress 6.0 lub nowszy
- PHP 7.4 lub nowszy
- WooCommerce 7.0 lub nowszy (aktywna wtyczka)
- Działająca wysyłka e-mail z serwera (wp_mail) lub plugin SMTP
5. Instalacja
Krok 1 – skopiowanie plików
- Skopiuj folder
dc_one_click_returndo kataloguwp-content/plugins/na serwerze. - Upewnij się, że główny plik wtyczki to
dc-one-click-return.php.
Krok 2 – aktywacja
- Wejdź w panel WordPress: Wtyczki.
- Znajdź DC One Click Return i kliknij Aktywuj.
- Jeśli WooCommerce nie jest aktywny, wtyczka nie uruchomi się i wyświetli komunikat o braku zależności.
Krok 3 – permalinki
- Po aktywacji wejdź w Ustawienia → Bezpośrednie odnośniki.
- Kliknij Zapisz zmiany (bez konieczności zmiany ustawień).
- To odświeża reguły adresów URL w WordPressie.
Krok 4 – strona formularza
Po aktywacji plugin automatycznie tworzy stronę Formularz zwrotów pod adresem:
https://twoja-domena.pl/formularz-zwrotow/
Strona zawiera shortcode [dc_return_form]. Możesz ją edytować w Strony, ale nie usuwaj shortcode’a.

Krok 5 – link w menu (opcjonalnie, zalecane)
- Wejdź w Wygląd → Menu.
- Po lewej stronie rozwiń sekcję WooCommerce endpoints (endpointy WooCommerce).
- Zaznacz pozycję Formularz zwrotów.
- Kliknij Dodaj do menu i zapisz menu.
Link będzie widoczny w nawigacji sklepu i prowadzi do strony formularza zwrotów.
6. Konfiguracja
Plugin nie wymaga osobnej strony ustawień. Domyślne parametry:
- Termin odstąpienia: 14 dni od daty zrealizowania zamówienia (lub daty utworzenia, jeśli brak daty realizacji).
- Dopuszczalne statusy zamówień: „W realizacji” (processing) oraz „Zrealizowane” (completed).
- Adres e-mail sklepu: pobierany z ustawień WooCommerce (adres nadawcy wiadomości e-mail).
Te wartości można zmienić programistycznie przez hooki WordPress (patrz sekcja „Hooki dla deweloperów”).
7. Obsługa – strona klienta
Scenariusz A – klient gość (niezalogowany)
1) Klient wchodzi na stronę formularza zwrotów (z menu lub bezpośredni link).
2) Podaje numer zamówienia (z e-maila potwierdzającego) oraz adres e-mail użyty przy zakupie.
3) Klika Znajdź zamówienie.
4) System weryfikuje dane. Przy błędzie wyświetla komunikat (np. zły numer, zły e-mail, minął termin, niewłaściwy status).
5) Po poprawnej weryfikacji klient widzi podsumowanie zamówienia i listę produktów z checkboxami.

6) Zaznacza produkty, które chce zwrócić (co najmniej jeden).
7) Opcjonalnie dodaje uwagi.
8) Klika Odstąp od umowy tutaj.

9) Przechodzi do kroku potwierdzenia – widzi podsumowanie wniosku.

10) Klika Potwierdź odstąpienie tutaj.

11) Otrzymuje potwierdzenie na stronie oraz e-mail z potwierdzeniem odstąpienia.
Scenariusz B – klient zalogowany
- Klient wchodzi na stronę formularza zwrotów.
- Wybiera zamówienie z listy rozwijanej (widoczne są tylko zamówienia kwalifikujące się do zwrotu).
- Strona odświeża się i pokazuje produkty z wybranego zamówienia.
- Dalsze kroki jak u gościa: zaznaczenie produktów → oświadczenie → potwierdzenie → e-mail.
Ważne informacje dla klienta
- Nie trzeba podawać powodu odstąpienia od umowy.
- Nie trzeba zwracać wszystkich produktów z zamówienia – wybiera się tylko te, od których się odstępuje.
- Link weryfikacyjny gościa (
guest_token) działa tylko w tej samej instalacji sklepu, w której wyszukano zamówienie. Nie można kopiować linku między różnymi sklepami (np. ze stagingu na produkcję).
8. Obsługa – panel administracyjny
Dostęp do listy zwrotów
W panelu WordPress: WooCommerce → Zwroty

Lista wniosków
Tabela zawiera:
- ID wniosku
- numer powiązanego zamówienia (link do edycji zamówienia)
- imię i nazwisko klienta (z danych billingowych zamówienia)
- adres e-mail
- status wniosku
- datę złożenia

Można filtrować listę po statusie (linki nad tabelą).
Szczegóły wniosku
Kliknij Szczegóły przy wybranym wniosku. Zobaczysz:
- dane klienta,
- powiązane zamówienie,
- listę produktów objętych wnioskiem,
- uwagi klienta (jeśli podał),
- datę utworzenia i datę potwierdzenia,
- formularz zmiany statusu.

Zmiana statusu
- Wejdź w szczegóły wniosku.
- W sekcji „Zmień status” wybierz nowy status z listy.
- Kliknij Zapisz status.
- Klient automatycznie otrzyma e-mail z informacją o nowym statusie (jeśli status faktycznie się zmienił).
9. Powiadomienia e-mail
| Zdarzenie | Odbiorca | Treść (skrót) |
|---|---|---|
| Klient potwierdzi odstąpienie (krok 2) | Klient | Potwierdzenie otrzymania oświadczenia o odstąpieniu, numer wniosku, zamówienie, produkty |
| Klient potwierdzi odstąpienie (krok 2) | Administrator sklepu | Informacja o nowym wniosku z linkiem do panelu |
| Administrator zmieni status wniosku | Klient | Informacja o nowym statusie wniosku |
E-maile wysyłane są przez standardową funkcję WordPress wp_mail. Jeśli maile nie dochodzą, skonfiguruj plugin SMTP (np. WP Mail SMTP) i sprawdź ustawienia nadawcy w WooCommerce.
10. Statusy zwrotów
| Status | Znaczenie |
|---|---|
| Oczekuje na potwierdzenie | Wniosek utworzony, klient jeszcze nie przeszedł kroku „Potwierdź odstąpienie” (stan pośredni, rzadko widoczny w panelu) |
| Potwierdzone | Klient złożył i potwierdził oświadczenie o odstąpieniu |
| Zaakceptowane | Sklep zaakceptował wniosek (ustawiane ręcznie przez administratora) |
| Odrzucone | Wniosek odrzucony (ustawiane ręcznie przez administratora) |
| Zakończone | Proces zwrotu zakończony (np. pieniądze zwrócone, towar odebrany) |
11. Rozwiązywanie problemów
Strona formularza pokazuje stronę główną zamiast formularza
- Wejdź w Ustawienia → Bezpośrednie odnośniki i kliknij Zapisz.
- Sprawdź, czy istnieje strona „Formularz zwrotów” ze shortcode
[dc_return_form]. - Dezaktywuj i ponownie aktywuj wtyczkę.
„Nie znaleziono zamówienia”
- Sprawdź, czy numer zamówienia pochodzi z tego samego sklepu (nie ze stagingu ani innej instalacji).
- Użyj numeru widocznego w e-mailu potwierdzającym zamówienie.
- Sprawdź, czy e-mail jest identyczny z adresem podanym przy składaniu zamówienia.
„Link weryfikacyjny jest nieprawidłowy lub wygasł”
- Link z parametrem
guest_tokendziała tylko w tej instalacji WordPress, w której wyszukano zamówienie. - Wejdź na formularz bez parametrów w URL i wyszukaj zamówienie ponownie.
„Zamówienie ma status …” lub „Minął termin odstąpienia”
- Zwrot możliwy jest tylko dla zamówień w statusie „W realizacji” lub „Zrealizowane”.
- Termin odstąpienia wynosi domyślnie 14 dni od daty realizacji (lub utworzenia zamówienia).
Maile nie dochodzą
- Sprawdź folder SPAM.
- Skonfiguruj wysyłkę SMTP.
- Sprawdź adres nadawcy w WooCommerce → Ustawienia → E-maile.
Zalogowany użytkownik nie widzi zamówień na liście
- Lista pokazuje tylko zamówienia przypisane do konta klienta i kwalifikujące się do zwrotu (status + termin).
- Zamówienia gościa (bez konta) wyszukuje się przez numer + e-mail.
12. Hooki dla deweloperów
Filtry
// Zmiana liczby dni na odstąpienie (domyślnie 14)
add_filter('dc_ocr_withdrawal_days', function() {
return 14;
});
// Zmiana statusów zamówień kwalifikujących się do zwrotu
add_filter('dc_ocr_eligible_order_statuses', function($statuses, $order) {
return array('completed', 'processing');
}, 10, 2);
Akcje
// Po potwierdzeniu odstąpienia przez klienta
add_action('dc_ocr_return_confirmed', function($return_id) {
// własna logika, np. integracja z ERP
});
// Po zmianie statusu w panelu admina
add_action('dc_ocr_return_status_updated', function($return_id, $new_status, $old_status) {
// własna logika
});
Shortcode
[dc_return_form] – wyświetla formularz odstąpienia od umowy. Można umieścić na dowolnej stronie, nie tylko na automatycznie utworzonej.
Struktura plików pluginu
dc_one_click_return/
├── dc-one-click-return.php # główny plik wtyczki
├── includes/
│ ├── class-dc-ocr-post-type.php
│ ├── class-dc-ocr-order-validator.php
│ ├── class-dc-ocr-nav-menu.php
│ ├── class-dc-ocr-frontend.php
│ ├── class-dc-ocr-admin.php
│ └── class-dc-ocr-email.php
├── templates/
│ ├── return-form.php
│ ├── return-confirm.php
│ └── return-success.php
└── assets/
├── frontend.css
├── frontend.js
└── admin.css
