Opis
BuddyPilot Withdrawal for WooCommerce implementuje obowiązkową funkcję odstąpienia wymaganą przez art. 11a dyrektywy UE 2023/2673 dla sprzedawców internetowych sprzedających konsumentom z UE.
Od 19 czerwca 2026 r. każdy sklep WooCommerce obsługujący klientów z UE musi zapewniać wyraźnie widoczną i łatwo dostępną funkcję odstąpienia (przycisk „odstąp od umowy tutaj”), obok istniejących wymogów informacyjnych dotyczących prawa odstąpienia.
Co robi wtyczka
Widok klienta
- Przycisk „Odstąp od umowy tutaj” zgodny z art. 11a na stronie szczegółów zamówienia w Moim koncie
- Dwuetapowy formularz odstąpienia: wybór pozycji, podgląd zgłoszenia, potwierdzenie jednym kliknięciem
- Obsługa produktów z wariantami: każdy wariant (rozmiar, kolor itp.) pojawia się z pełnymi etykietami atrybutów jako osobna linia w formularzu odstąpienia
- Obsługa zakupu bez konta przez bezpośredni przepływ weryfikacji (e-mail i numer zamówienia, bez logowania)
- Historia odstąpień w Moim koncie: lista i strona szczegółów zgłoszenia
- Rejestrowanie zgody z art. 16(m) na kasie dla towarów cyfrowych i wirtualnych (konfigurowalne: wymagana, opcjonalna lub ukryta)
- E-mail z potwierdzeniem zgłoszenia dla klienta stanowiący potwierdzenie na trwałym nośniku wymagane przez art. 11a ust. 3
- E-mail o zamknięciu odstąpienia wysyłany do klienta po zamknięciu zgłoszenia przez operatora
Panel operatora
- Metabox edycji zamówienia do rejestrowania zgłoszeń otrzymanych telefonicznie, pocztą lub osobiście
- Osobna strona „Dodaj nowe zgłoszenie” dla operatorów obsługujących dużą liczbę zgłoszeń, bez opuszczania listy zgłoszeń
- Lista zgłoszeń z wyszukiwaniem, filtrowaniem i sortowaniem w panelu WooCommerce
- Strona szczegółów zgłoszenia z pełnym dziennikiem audytu i zarządzaniem statusem
- E-mail z powiadomieniem dla administratora wysyłany natychmiast po złożeniu odstąpienia przez klienta
Zgodność prawna
- Niestandardowy status zamówienia
wc-withdrawal(opcjonalny, rejestrowany przez wtyczkę) z pełną historią zmian zapisywaną jako notatki zamówienia WooCommerce - Strona z informacją o odstąpieniu Załącznika I(A) dostępna do wygenerowania jednym kliknięciem z Ustawień
- Strona z wzorcowym formularzem odstąpienia Załącznika I(B) dostępna do wygenerowania jednym kliknięciem z Ustawień, publikowana jako strona WordPress i automatycznie linkowana z e-maili zamówień oraz Mojego konta
- Konfigurowalny termin zwrotu (domyślnie 14 dni, dostosowany do warunków umowy)
- Konfigurowalne statusy „dostarczono” uruchamiające bieg terminu odstąpienia
- Przypisanie kosztów odesłania (płaci konsument lub sprzedawca, zgodnie z wymogami Załącznika I(A))
- Eksport i anonimizacja danych osobowych zgodnie z RODO, kompatybilne z narzędziami prywatności WordPress
- Zgodność z HPOS (High-Performance Order Storage) i tryb legacy post-meta
- Zgodność z dostępnością WCAG 2.2 AA we wszystkich formularzach widocznych dla klientów
- Tłumaczenia polskie i angielskie w zestawie
Dodatek Pro
Rozszerzona funkcjonalność jest dostępna przez Dodatek BuddyPilot Withdrawal Pro:
- Automatyczny zwrot zatwierdzony przez operatora, oparty na zadeklarowanych pozycjach (jedno kliknięcie z poziomu ekranu zgłoszenia)
- Weryfikacja liczby pobrań: przywraca prawo do odstąpienia, gdy produkt cyfrowy nie został faktycznie pobrany, ograniczając nieuzasadnione odmowy zwrotu
- Obsługa WooCommerce Subscriptions: anulowanie przyszłych odnowień, proporcjonalne rozliczenie bieżącego okresu rozliczeniowego zgodnie z art. 9 ust. 2 lit. b) ppkt (iii)
- Obsługa WooCommerce Product Bundles: automatyczna obsługa według typu zestawu; dla zestawów z rabatem na pozycję do wyboru: czy częściowy zwrot zachowuje zapłaconą kwotę, czy traci cały rabat zestawu
- Eksport oświadczenia o odstąpieniu do PDF
- Generowanie formularza Załącznika I(B) dostosowanego do kraju
Instalacja
- Wgraj folder wtyczki do
/wp-content/plugins/lub zainstaluj przez Wtyczki > Dodaj nową. - Aktywuj wtyczkę przez menu Wtyczki w WordPress.
- Przejdź do WooCommerce > Ustawienia > Odstąpienie i skonfiguruj:
- Ogólne: termin odstąpienia, okres karencji, statusy dostarczenia
- Dane sprzedawcy: nazwa, adres, adres zwrotu, odpowiedzialność za koszty odesłania
- Doświadczenie klienta: tryb zgody dla towarów cyfrowych, strona informacji o odstąpieniu
- W sekcji Doświadczenie klienta kliknij „Utwórz stronę informacji o odstąpieniu”, aby opublikować zgodny z UE komunikat Załącznika I(A) i formularz wzorcowy Załącznika I(B). Adres URL strony jest automatycznie linkowany z e-maili zamówień i widoku zamówienia w Moim koncie.
- Klienci uprawnieni do odstąpienia zobaczą przycisk „Odstąp od umowy tutaj” na stronie swojego zamówienia. Formularz działa bez JavaScript.
Najczęściej zadawane pytania
-
Czy wtyczka działa przy zakupie bez konta?
-
Tak. Klienci dokonujący zakupu bez konta weryfikują swoją tożsamość przez e-mail i numer zamówienia na publicznej stronie odstąpienia. Logowanie nie jest wymagane.
-
Czy wtyczka automatycznie przetwarza zwroty płatności?
-
Darmowa wersja rejestruje zgłoszenie odstąpienia i zmienia status zamówienia na
wc-withdrawal. Operator przetwarza zwrot za pomocą natywnych narzędzi WooCommerce. Automatyczny zwrot jednym kliknięciem, oparty na zadeklarowanych pozycjach, jest dostępny w Dodatku Pro. -
Czego wtyczka NIE robi?
-
Wtyczka rejestruje zgłoszenia odstąpienia jako dokumenty prawne i powiadamia zarówno klienta, jak i operatora. Nie wykonuje automatycznie zwrotu płatności, nie weryfikuje przesyłek zwrotnych, nie egzekwuje terminów zwrotu ani nie obsługuje księgowości i podatku VAT. Operator sklepu jest odpowiedzialny za przetworzenie zwrotu w ustawowym terminie (domyślnie 14 dni, konfigurowalnym w WooCommerce > Ustawienia > Odstąpienie > Ogólne).
-
Czy wtyczka obsługuje produkty z wariantami?
-
Tak, bez żadnej dodatkowej konfiguracji. Produkty z wariantami (różne rozmiary, kolory itp.) są w pełni obsługiwane w darmowej wersji. Każdy wariant pojawia się w formularzu odstąpienia jako osobna linia z pełnymi etykietami atrybutów (np. T-shirt, Rozmiar: L, Kolor: Czarny), dzięki czemu klient precyzuje dokładnie, co zwraca, a operator widzi te same szczegóły na liście zgłoszeń i stronie szczegółów zgłoszenia.
-
Czy wtyczka działa z WooCommerce Subscriptions lub Product Bundles?
-
Obsługa subskrypcji, zestawów i produktów złożonych (anulowanie odnowień, proporcjonalne rozliczenie, tryby zwrotu zestawu) jest częścią Dodatku Pro. Darmowa wersja traktuje je jak standardowe produkty.
-
Czy wtyczka obsługuje zgodę z art. 16(m) dla towarów cyfrowych?
-
Tak. Wtyczka dodaje wyraźne pole zgody na kasie, gdy koszyk zawiera produkty do pobrania lub wirtualne. Operator może wybrać tryb: „wymagana przed zakupem”, „opcjonalna” lub „ukryta” (sprzedawca rezygnuje z wyłączenia). Zgoda jest zapisywana na zamówieniu i wyświetlana w formularzu odstąpienia.
-
Kiedy zaczyna się bieg terminu odstąpienia?
-
Termin odstąpienia rozpoczyna się w dokładnym momencie zmiany statusu zamówienia na jeden ze statusów „dostarczono” skonfigurowanych w WooCommerce > Ustawienia > Odstąpienie > Ogólne. Wtyczka rejestruje precyzyjny znacznik czasu tej zmiany. Dopóki termin nie upłynął, klient widzi w formularzu, ile dni pozostało. Po upływie terminu przycisk odstąpienia nie jest już wyświetlany. Jako wyzwalacz „dostarczono” można przypisać dowolny wbudowany lub niestandardowy status zamówienia WooCommerce (np. „Ukończono”, własny status „Wysłano” itp.). Pusta lista oznacza, że termin nigdy nie startuje, co jest przydatne podczas testów lub gdy chcemy, aby odstąpienie było dostępne bezterminowo.
-
Czy wtyczka jest zgodna z HPOS?
-
Tak. Wtyczka jest w pełni zgodna z WooCommerce High-Performance Order Storage (HPOS) i automatycznie przechodzi w tryb legacy post-meta.
Recenzje
Wtyczka nie ma jeszcze żadnej recenzji.
Kontrybutorzy i deweloperzy
„BuddyPilot Odstąpienie (Szybkie Zwroty)” jest oprogramowaniem open source. Poniższe osoby miały wkład w rozwój wtyczki.
ZaangażowaniWtyczka „BuddyPilot Odstąpienie (Szybkie Zwroty)” została przetłumaczona na 1 język. Podziękuj tłumaczom za ich wkład.
Przetłumacz wtyczkę “BuddyPilot Odstąpienie (Szybkie Zwroty)” na swój język.
Interesuje cię rozwój wtyczki?
Przeglądaj kod, sprawdź repozytorium SVN lub czytaj dziennik rozwoju przez RSS.
Rejestr zmian
1.0.4
- Funkcja: ułamkowe ilości produktów są teraz wykrywane i raportowane w zgłoszeniu odstąpienia. Pełna obsługa ułamkowych ilości (prawidłowe proporcjonalne rozliczenie, obliczanie zwrotu) jest dostępna w BuddyPilot Withdrawal Pro.
- Funkcja: dodano link akcji „Przejdź na Pro” na liście wtyczek, wyświetlany tylko gdy wersja Pro nie jest aktywna.
1.0.3
- Przetestowano i potwierdzono zgodność z WordPress 7.0.
- Bezpieczeństwo: nonce jest teraz weryfikowany przed zajęciem slotu rate-limit, co uniemożliwia sondowaniu CSRF wyczerpanie godzinnego limitu użytkownika.
- Bezpieczeństwo: anonimowe (gościnne) zasobniki rate-limit są teraz przypisane do zahaszowanego adresu IP zamiast wspólnego zasobnika
user_id=0. - Bezpieczeństwo:
sealed_mapi przesłane GET IDs presealed są walidowane względem zamówienia przed użyciem, co uniemożliwia spreparowanym żądaniom dołączanie potwierdzeń zapieczętowanych do zwykłych pozycji. - Bezpieczeństwo: wynik
apply_filters('buddypilot_withdrawal_declaration_items_payload')jest ponownie walidowany: wpisy zitem_id=0, ujemnymi ilościami lub wartościami innymi niż tablica są usuwane. - Bezpieczeństwo:
PermissionCheckerteraz jawnie blokujeuser_id=0niezależnie odcustomer_idzamówienia. - Bezpieczeństwo:
OperatorRegistrationsprawdzaEXCLUDED_STATUSESprzy wejściu do handlera i czyści cache uprawnień po zapisie zamówienia. - Bezpieczeństwo:
DeclarationRepositorywaliduje formatfiling_datei odrzuca ciągi z zerową datą. - Bezpieczeństwo:
RateLimit::tally()zwracaPHP_INT_MAX, gdy tabela rate-limit nie istnieje, zapobiegając cichemu wyłączeniu limitera. - Poprawka:
round(qty, 10)wget_declared_quantities()zapobiega akumulacji błędu epsilon IEEE-754 przy ułamkowych ilościach produktów. - Poprawka: usunięto błędny hook
user_registerz Privacy Managera; używany jest tylkowoocommerce_created_customer.
1.0.2
- Kod: przemianowano wszystkie krótkie identyfikatory
bpw_/bpw-na pełny prefiksbuddypilot_withdrawal_/buddypilot-withdrawal-w całym kodzie. Dotyczy nazw akcji AJAX/admin-post, uchwytów skryptów, obiektu JS, ID metaboxa, typu pola WooCommerce, nazw pól nonce, kluczy blokad i parametrów GET. Rozwiązuje wymóg unikalnego prefiksu recenzji WordPress.org.
1.0.1
- Bezpieczeństwo: wszystkie handlery żądań admina i AJAX weryfikują teraz uprawnienia użytkownika przed weryfikacją nonce, zgodnie z wytycznymi bezpieczeństwa WordPress.
- Bezpieczeństwo: ścieżka AJAX w handlerze rejestracji operatora używa teraz
check_ajax_referer()zamiastcheck_admin_referer(), zwracając właściwą odpowiedź błędu AJAX przy nieprawidłowym nonce. - Bezpieczeństwo: dodano bramkę
current_user_can()do handlera powiadomień admina dla statusu tworzenia strony informacyjnej. - Bezpieczeństwo: symbol waluty i wartości separatorów z danych formatu cen są teraz escapowane po stronie JavaScript przed wstawieniem do DOM.
- Kod: przeniesiono inline JavaScript z szablonu rejestracji operatora do kolejkowanego pliku (
assets/js/admin/operator-registration.js); ciągi znaków przekazywane przezwp_localize_script(). - Kod: usunięto wywołanie
load_plugin_textdomain(); WordPress 4.6 i nowsze automatycznie ładują tłumaczenia dla wtyczek hostowanych na WordPress.org.
1.0.0
- Pierwsze stabilne wydanie. Pełna implementacja funkcji odstąpienia z art. 11a: dwuetapowy formularz, weryfikacja gości, ręczna rejestracja przez operatora, lista zgłoszeń w panelu admina, konfigurowalny termin i statusy dostarczenia, rejestrowanie zgody z art. 16(m), generator stron Załącznika I(A)/(B), e-maile do klienta i admina, historia odstąpień w Moim koncie, obsługa HPOS, hooki RODO, zgodność z WCAG 2.2 AA, tłumaczenia polskie i angielskie.
