BuddyPilot Odstąpienie – Szybkie Zwroty dla WooCommerce

Opis

BuddyPilot Odstąpienie – Szybkie Zwroty dla WooCommerce dodaje do sklepu kompletną obsługę zwrotów i odstąpień: obowiązkowy przycisk odstąpienia od umowy wymagany przez art. 11a dyrektywy UE 2023/2673, formularz zwrotu online dla klientów oraz panel deklaracji dla operatora.

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.

Wtyczka uzupełnia politykę zwrotów sklepu: klient odstępuje od umowy online w terminie na odstąpienie (domyślnie 14 dni, konfigurowalne), a zwrot towaru i pieniędzy realizujesz natywnymi narzędziami WooCommerce.

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 (email 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)
  • Email z potwierdzeniem zgłoszenia dla klienta stanowiący potwierdzenie na trwałym nośniku wymagane przez art. 11a ust. 3
  • Email o rozstrzygnięciu odstąpienia wysyłany do klienta po zamknięciu oświadczenia przez operatora; zawiera link do platformy ODR UE (ec.europa.eu/consumers/odr) gdy dowolna pozycja zostanie odrzucona
  • Status rozstrzygnięcia dla każdej pozycji widoczny w formularzu odstąpienia po zamknięciu oświadczenia: każda pozycja wyświetla oznaczenie „zaakceptowana” lub „odrzucona” z powodem odrzucenia i linkiem ODR, dzięki czemu klient rozumie wynik bez kontaktowania się z pomocą techniczną

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 oświadczenia z pełną historią zmian i przepływem rozstrzygania: akceptacja wszystkich pozycji, odrzucenie wszystkich pozycji lub rozstrzygnięcie częściowe z indywidualnymi decyzjami i powodami odrzucenia dla każdej pozycji
  • Email 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 emaili 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

Wersja Pro

Rozszerzona funkcjonalność jest dostępna przez Dodatek BuddyPilot Odstąpienie Pro:

  • Automatyczny zwrot zatwierdzony przez operatora, obliczony na podstawie zadeklarowanych pozycji (jedno kliknięcie z ekranu oświadczenia)
  • Weryfikacja liczby pobrań: przywraca prawo do odstąpienia gdy produkt cyfrowy nigdy nie został faktycznie pobrany, ograniczając nieuzasadnioną odmowę zwrotów
  • Obsługa WooCommerce Subscriptions: anuluje przyszłe odnowienia, proporcjonalnie rozlicza bieżący okres rozliczeniowy zgodnie z artykułem 9 ust. 2 lit. b ppkt (iii)
  • Obsługa WooCommerce Product Bundles: automatyczna obsługa według typu zestawu; dla zestawów per pozycja ze skonfigurowanym rabatem, możliwość wyboru czy częściowe zwroty zachowują zapłaconą kwotę czy tracą cały rabat zestawu
  • Eksport PDF prawnie wiążącego oświadczenia o odstąpieniu
  • Generowanie formularza zgodnie z Załącznikiem I(B) dostosowane do wymogów kraju

Instalacja

  1. Wgraj folder wtyczki do /wp-content/plugins/ lub zainstaluj przez Wtyczki > Dodaj nową.
  2. Aktywuj wtyczkę przez menu Wtyczki w WordPress.
  3. 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
  4. 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 emaili zamówień i widoku zamówienia w Moim koncie.
  5. 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 zakupach bez rejestracji?

Tak. Utwórz dedykowaną stronę formularza odstąpienia w WooCommerce > Ustawienia > Odstąpienie > Klient (jednym kliknięciem). Umieść na tej stronie shortcode [buddypilot_withdrawal_guest_form]. Klienci-goście podają numer zamówienia i adres email rozliczeniowy; na adres rozliczeniowy wysyłany jest bezpieczny jednorazowy link. Kliknięcie linku otwiera pełny interaktywny formularz odstąpienia bez konieczności posiadania konta.

Czy wtyczka przetwarza zwroty automatycznie?

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 oświadczenia o odstąpieniu jako dokumenty prawne i powiadamia zarówno klienta, jak i operatora. Nie przetwarza zwrotów automatycznie, nie weryfikuje przesyłek zwrotnych, nie egzekwuje terminów zwrotów ani nie obsługuje księgowości i VAT. Operator sklepu jest odpowiedzialny za przetworzenie zwrotu w prawnie wymaganym terminie (domyślnie 14 dni, konfigurowalnie w WooCommerce > Ustawienia > Odstąpienie > Ogólne).

Czy to wtyczka do obsługi zwrotów w WooCommerce?

Tak, w sensie prawnym: obsługuje zwroty WooCommerce jako konsumenckie odstąpienia od umowy. Klient składa żądanie zwrotu (oświadczenie o odstąpieniu) przez formularz zwrotu online, a operator rozstrzyga je z listy deklaracji. Wtyczka nie jest narzędziem kurierskim ani RMA: nie generuje etykiet wysyłkowych i nie śledzi paczek zwrotnych.

Czy wtyczka zastępuje politykę zwrotów sklepu?

Nie, uzupełnia ją. Wtyczka generuje jednym kliknięciem wymaganą prawem stronę informacyjną o odstąpieniu (załącznik I(A)) oraz wzór formularza odstąpienia (załącznik I(B)); polityka zwrotów i regulamin pozostają Twoimi dokumentami. Razem pokrywają prawne minimum i praktyczne zasady Twojego sklepu.

Czy wtyczka obsługuje produkty zmienne?

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 zestawów) jest częścią Wersji Pro. Wersja bezpłatna traktuje je jak standardowe produkty.

Czy wtyczka obsługuje zgodę zgodnie z artykułem 16(m) dla towarów cyfrowych?

Tak. Wtyczka dodaje wyraźne pole wyboru zgody przy realizacji zamówienia, gdy koszyk zawiera produkty do pobrania lub wirtualne. Operator może wybrać opcję „wymagana przed zakupem”, „opcjonalna” lub „ukryta” (sprzedawca rezygnuje z wyłączenia). Zgoda jest zapisywana przy zamówieniu i wyświetlana w formularzu odstąpienia.

Kiedy zaczyna biec termin odstąpienia (czas na zwrot)?

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 kompatybilna z HPOS?

Tak. Wtyczka jest w pełni kompatybilna z WooCommerce High-Performance Order Storage (HPOS) i automatycznie przełącza się na tradycyjny tryb post-meta.

Recenzje

2026-06-19 1 odpowiedź
I tried many solutions out there before to choose this plugin but I have to say that this is the most complete and best overall. It covers many aspects that other ignores so this has been an easy choice
2026-06-17 1 odpowiedź
Swietna i prosta wtyczka zapewniajaca zgodnosc z dyrektywa. Doskonaly kontakt z devem i reakcja na bledy/poprawki. Wtyczka praktycznie plug&play. Zainstaluj, aktywuj, sprawdz usatwienia gdybys chcial cos niestandarowego, podepnij shortcode i tyle… Bardzo polecam!
2026-05-29 1 odpowiedź
Bardzo dobra wtyczka. Rozwiązuje problem, który wiele sklepów będzie miało już niebawem. Dobry kontakt z autorem. Będę ją polecał moim klientom.
Przeczytaj 4 recenzje

Kontrybutorzy i deweloperzy

„BuddyPilot Odstąpienie – Szybkie Zwroty dla WooCommerce” jest oprogramowaniem open source. Poniższe osoby miały wkład w rozwój wtyczki.

Zaangażowani

Wtyczka „BuddyPilot Odstąpienie – Szybkie Zwroty dla WooCommerce” została przetłumaczona na 7 języków. Podziękuj tłumaczom za ich wkład.

Przetłumacz wtyczkę “BuddyPilot Odstąpienie – Szybkie Zwroty dla WooCommerce” 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.21

  • Poprawka: link do odstąpienia wrócił do stopki emaili WooCommerce w sklepach, w których emaile tworzy wtyczka podmieniająca szablony wiadomości. Robi tak MailPoet z włączonym customizerem emaili WooCommerce, przez co link po cichu znikał ze wszystkich wiadomości. Link jest wymagany prawem, więc jest teraz dodawany do gotowej wiadomości zawsze, gdy nie przetrwał szablonu.
  • Poprawka: przycisk „Złóż formularz odstąpienia online” na stronie informacyjnej bywał nieczytelny w motywach, które kolorują linki w treści strony tym samym odcieniem co tło przycisku: napis przyjmował kolor linku i znikał na przycisku. Ta sama poprawka obejmuje przyciski powrotu na stronie potwierdzenia i w „Moim koncie”.
  • Funkcja: nowe ustawienie „Link w emailach” wyłącza automatyczny link do odstąpienia w emailach WooCommerce. Przyda się, jeśli dodajesz ten link do swoich emaili samodzielnie, na przykład w edytorze emaili, i nie chcesz, żeby pojawiał się dwa razy.

1.0.20

  • Nowość: ogólnodostępny link do odstąpienia. Dyskretny link w stopce każdej strony (oraz opcjonalny przyklejony przycisk) prowadzi klientów do funkcji odstąpienia z dowolnego miejsca w sklepie, nie tylko z Mojego konta, zgodnie z duchem art. 11a dyrektywy UE 2023/2673. Do ręcznego umieszczenia dostępny jest shortcode [buddypilot_withdrawal_link]. Link w stopce jest włączony dla nowych instalacji, a w istniejących sklepach pozostaje wyłączony do czasu włączenia.
  • Nowość: opcjonalny bezpośredni dostęp gościa. Możesz pozwolić gościom przejść do formularza odstąpienia od razu po podaniu numeru zamówienia i adresu email, bez linku dostępu wysyłanego emailem. Domyślnie link dostępu pozostaje wymagany.
  • Poprawka: opcje dostępne tylko w wersji Pro na ekranie ustawień są teraz w darmowej wtyczce pokazywane jako odznaczone, więc nie wyglądają na włączone.
  • Dla deweloperów: odświeżony szablon tłumaczenia (.pot) oraz tłumaczenie polskie.

1.0.19

  • Poprawka: nowo dodane stringi nie pojawiają się już po angielsku w witrynach bez aktualnej paczki językowej. Dołączone tłumaczenia zostały odświeżone i rozszerzone, tak aby każdy obsługiwany język UE był dołączany w bieżącej wersji wtyczki. Tłumaczenia społecznościowe z paczki językowej translate.wordpress.org zachowują priorytet; dołączona kopia wypełnia tylko to, czego w paczce brakuje.
  • Dla deweloperów: szablon tłumaczenia (.pot) jest teraz dołączany do paczki, aby umożliwić samodzielne tłumaczenie (np. w Loco Translate) i utrzymanie spójności witryn wielojęzycznych. Bez zmian w kodzie ani w bazie danych; aktualizacja jest bezpieczna.

1.0.18

  • Funkcja: koszt pierwotnej dostawy jest teraz zwracany, gdy klient odstępuje od wszystkich wysłanych pozycji w zamówieniu (art. 13). Kwota jest pokazywana klientowi na kroku potwierdzenia i w „Moim koncie” oraz doliczana do zwrotu jednym kliknięciem w wersji Pro. Dostawa jest doliczana także wtedy, gdy w zamówieniu zostają tylko produkty wirtualne lub do pobrania; nie jest doliczana przy częściowym zwrocie towarów fizycznych. Steruje tym nowe ustawienie „Zwrot kosztu pierwotnej dostawy” (domyślnie włączone).
  • Ulepszenie: kwoty widoczne dla klienta są teraz pokazywane w wartościach brutto. Krok potwierdzenia oraz widok deklaracji w „Moim koncie” pokazują podsumowanie zwrotu: pozycje, dostawa i razem do zwrotu.
  • Ulepszenie: po wysłaniu odstąpienia obejmującego towary fizyczne klient otrzymuje teraz na stronie potwierdzenia przypomnienie o odesłaniu towaru do sprzedawcy.
  • Ulepszenie: ekrany deklaracji po stronie operatora pokazują teraz odstąpione pozycje w znanym układzie pozycji zamówienia WooCommerce (Produkt, Cena, Ilość, Razem, podatek) wraz z podsumowaniem kwot (suma pozycji, wysyłka, podatek, razem do zwrotu).
  • Ulepszenie: ustawienie „Koszt zwrotu towaru” zmieniono na „Kto płaci za odesłanie towaru” i przeformułowano, aby jasno wskazać, że dotyczy kosztu odesłania towaru, a nie zwrotu kosztu pierwotnej dostawy.
  • Dla deweloperów: nowy filtr buddypilot_withdrawal_shipping_refund_snapshot do korygowania lub wyłączania kwoty zwrotu dostawy (na przykład ograniczenia dopłaty za dostawę ekspresową). Wersja publicznego API to teraz 1.1.

1.0.17

  • Ulepszenie: strona zamówienia w „Moim koncie” wyświetla teraz każdą pozycję wraz z jej statusem odstąpienia, kwalifikująca się, już odstąpiona lub niekwalifikująca się, nad przyciskiem odstąpienia. Pozycje cyfrowe, na których natychmiastowe otrzymanie klient wyraził zgodę (Artykuł 16(m)), są oznaczone plakietką „Nie kwalifikuje się do odstąpienia” zamiast być pomijane, a zamówienia, w których żadna pozycja się nie kwalifikuje, pokazują listę pozycji z tym wyjaśnieniem zamiast ogólnego komunikatu.
  • Ulepszenie: formularz odstąpienia wyświetla tę samą listę pozycji (tylko do odczytu) z plakietkami, gdy żadna pozycja w zamówieniu nie kwalifikuje się do odstąpienia.
  • Ulepszenie: dołączone tłumaczenia wypełniają teraz stringi, których brakuje jeszcze w paczce językowej z translate.wordpress.org, dzięki czemu stringi dodane w wydaniu pojawiają się w języku witryny od razu, bez czekania na aktualizację paczki. Tłumaczenia społecznościowe z paczki zachowują priorytet.
  • Poprawka: e-mail o odrzuceniu lub częściowym rozstrzygnięciu nie pokazuje już dwóch niemal identycznych komunikatów ADR / unijnej platformy ODR. Pozostaje komunikat z klikalnym linkiem; zduplikowany domyślny tekst został usunięty.

1.0.16

  • Poprawka: link „prawo do odstąpienia” w stopce e-maili WooCommerce oraz przycisk w „Moim koncie” kierują teraz do właściwej wersji językowej strony informacyjnej na stronach z Polylang i WPML. Wcześniej używane było wprost zapisane ID strony, przez co na sklepach wielojęzycznych link mógł nie pojawiać się wcale lub prowadzić do złej wersji językowej.
  • Poprawka: okres odstąpienia i termin zwrotu są teraz wyświetlane spójnie na wszystkich ekranach. Przycisk przy zamówieniu w „Moim koncie” pokazuje skonfigurowany okres odstąpienia zamiast zaszytych na sztywno 14 dni, a podgląd deklaracji i potwierdzenie po wysłaniu pokazują skonfigurowany termin zwrotu zamiast wartości zaszytej na sztywno lub błędnego ustawienia.
  • Poprawka: przepływ odstąpienia dla gościa pozostaje teraz w języku, w którym korzysta z niego odwiedzający, na stronach wielojęzycznych. Wcześniej po poproszeniu o link dostępu na stronie w języku innym niż domyślny, akcja formularza, każdy kolejny krok oraz e-maile wracały do domyślnego języka witryny. Formularz rozpoznaje teraz przetłumaczone warianty strony, trzyma każdy krok na stronie w bieżącym języku i wysyła zarówno e-mail z magic linkiem, jak i e-mail z potwierdzeniem odstąpienia w języku odwiedzającego (Polylang, WPML). E-mail potwierdzenia podąża teraz za językiem klienta także przy zgłoszeniach zalogowanych z „Mojego konta”; deklaracje rejestrowane przez operatora zachowują język witryny.
  • Ulepszenie: opcja terminu zwrotu jest teraz ustawiana przy aktywacji, dzięki czemu świeże instalacje raportują spójną wartość zanim operator odwiedzi ekran ustawień.

1.0.15

  • Funkcja: magic linki w e-mailach do gości kierują teraz do właściwej wersji językowej formularza odstąpienia na stronach wielojęzycznych. Obsługiwane automatycznie: Polylang, WPML, TranslatePress, Weglot i qTranslate-XT; język jest odczytywany z meta zamówienia zapisywanych przez każdą z wtyczek.
  • Ulepszenie: Pliki .mo dla wszystkich 24 oficjalnych języków UE są teraz dołączane do ZIP-a wtyczki jako fallback. Użytkownicy na stronach, dla których translate.wordpress.org nie opublikował jeszcze paczki językowej, otrzymują przetłumaczone stringi z dołączonych plików .mo zamiast angielskiego fallbacku.
  • Ulepszenie: Tłumaczenia czeskie (cs_CZ), chorwackie (hr), niderlandzkie belgijskie (nl_BE), niderlandzkie (nl_NL) i rumuńskie (ro_RO) zsynchronizowane z GlotPressem (translate.wordpress.org); stringi zatwierdzone przez GlotPressowych tłumaczy są teraz autorytatywne.

1.0.14

  • Funkcja: Nowy filtr buddypilot_withdrawal_has_consent umożliwia wtyczkom zewnętrznym integrację własnego checkboxa zgody z Artykułu 16(m). Zwrócenie true z filtra powoduje zapisanie zgody dla wszystkich produktów cyfrowych w zamówieniu; wtyczka obsługuje zapis wewnętrzny. Nie jest wymagana znajomość wewnętrznych kluczy meta.
  • Ulepszenie: Gdy własny checkbox wtyczki jest ustawiony na „Ukryty” w ustawieniach, nowy filtr nadal odpala się. Zgoda zewnętrzna może być zatem rejestrowana nawet gdy wbudowany checkbox jest wyłączony.

1.0.13

  • Funkcja: Operatorzy mogą teraz zamknąć oświadczenie jako „Odrzuć wszystkie pozycje” lub „Częściowe rozstrzygnięcie” bezpośrednio ze strony szczegółów oświadczenia. Wcześniej z tego ekranu dostępna była tylko pełna akceptacja.
  • Funkcja: Tryb częściowego rozstrzygnięcia umożliwia podjęcie decyzji o akceptacji/odrzuceniu per pozycja z obowiązkowym powodem odrzucenia dla każdej odrzuconej pozycji, dzięki czemu klient otrzymuje szczegółowy wynik zamiast jednej zbiorczej decyzji.
  • Funkcja: Emaile dotyczące odmowy i częściowego rozstrzygnięcia zawierają teraz link do platformy ODR UE (Online Dispute Resolution) (ec.europa.eu/consumers/odr), wymagany dla powiadomień o sporach transgranicznych zgodnie z artykułem 11a.
  • Funkcja: Formularz odstąpienia po stronie klienta wyświetla teraz oznaczenia rozstrzygnięcia per pozycja dla w pełni rozstrzygniętych oświadczeń: zaakceptowane pozycje wyświetlają oznaczenie potwierdzenia, odrzucone pozycje wyświetlają powód odrzucenia i link do platformy ODR. Wcześniej formularz wyświetlał ogólny komunikat „zamówienie nie kwalifikuje się”.
  • Ulepszenie: Ponowne otwarcie oświadczenia resetuje teraz typ rozstrzygnięcia i notatkę operatora do wartości null, dzięki czemu operator zaczyna od czystej karty przy korygowaniu błędnej decyzji.
  • Bezpieczeństwo: Pola migawki finansowej w rekordzie oświadczenia (suma pozycji, suma częściowa, podatek) są niezmienne; nie można ich nadpisać przez manipulację POST podczas kroku rozstrzygnięcia.
  • Bezpieczeństwo: Typ rozstrzygnięcia jest walidowany względem ścisłej białej listy po stronie serwera (accepted / rejected / partial); dowolne wartości są odrzucane przed dotarciem do bazy danych.
  • Bezpieczeństwo: Już zamknięte oświadczenia odrzucają nieaktualne próby rozstrzygnięcia z wyraźnym błędem, zapobiegając przypadkowemu nadpisaniu w równoległych sesjach operatora.

1.0.12

  • Poprawka: Pole wyboru zgody zgodnie z artykułem 16(m) nie było wyświetlane przy realizacji zamówienia w sklepach używających WooCommerce 8.6 lub nowszego z klasyczną realizacją zamówienia opartą na shortcodzie (np. motyw Blocksy). Wtyczka wykrywa teraz poprawnie, czy używana jest realizacja zamówienia blokowego, przed przekierowaniem zbierania zgody przez API Additional Checkout Fields.
  • Ulepszenie: Sesja odstąpienia gościa jest teraz ograniczona czasowo do 15 minut po kliknięciu magic-linku, co zmniejsza okno, w którym współdzielona lub nieaktywna sesja przeglądarki mogłaby zostać nadużyta.
  • Ulepszenie: Punkt końcowy realizacji magic-linku stosuje teraz ograniczenie szybkości per zamówienie na IP, spójnie z punktem końcowym weryfikacji email.
  • Ulepszenie: Szczegóły oświadczenia i przełącznik statusu w panelu administracyjnym weryfikują teraz, czy bieżący użytkownik ma dostęp do powiązanego zamówienia, zapewniając prawidłową kontrolę dostępu w konfiguracjach wielu sprzedawców.
  • Ulepszenie: Tekst etykiety zgody dostosowany przez operatora jest oczyszczany podczas zapisywania, dzięki czemu przechowywana wartość opcji jest zawsze czystym HTML.
  • Ulepszenie: Wtyczka nie zbiera już ani nie przechowuje ciągu user-agent przeglądarki przy oświadczeniach o odstąpieniu. Pole nie miało aktywnego zastosowania, a jego usunięcie zmniejsza ślad danych osobowych. W istniejących instalacjach kolumna zostanie automatycznie usunięta przy pierwszym załadowaniu po aktualizacji (bez utraty danych; prawny rekord oświadczenia jest zachowany w całości).

1.0.11

  • Poprawka: Rejestracja klas email wtyczki jest teraz izolowana per klasa. Błąd konstruktora w jednej klasie nie propaguje się już do wysyłki emaili WooCommerce i nie blokuje już wszystkich transakcyjnych emaili WooCommerce (nowe zamówienie, przetwarzanie klienta itp.).

1.0.10

  • Poprawka: Próba masowej zmiany zamówień w statusie odstąpienia na Zakończone lub W realizacji wyzwala teraz powiadomienie administratora informujące operatora ile zamówień zostało pominiętych, ponieważ zmiana statusu nie jest dla nich dozwolona, i że te zamówienia muszą być obsługiwane indywidualnie.

1.0.9

  • Funkcja: Formularz weryfikacji gościa akceptuje teraz niestandardowe numery zamówień z wtyczek do przenumerowywania innych firm (np. WebToffee Advanced Order Numbers, Custom Order Numbers for WooCommerce autorstwa Tyche Softwares). Goście mogą wpisać sformatowany numer widoczny w emailu potwierdzającym zamiast wewnętrznego numerycznego ID zamówienia.
  • Funkcja: Pole numeru zamówienia w formularzu weryfikacji gościa nie wymusza już klawiatury tylko numerycznej na urządzeniach mobilnych, co pozwala gościom wpisywać numery zamówień z prefiksem, takie jak ORD-2024-1042.
  • Bezpieczeństwo: Długość danych wejściowych w formularzu weryfikacji gościa jest teraz ograniczana przed rozwiązaniem zamówienia, zapobiegając temu, aby spreparowane żądania wywoływały pełne skanowanie tabel bazy danych w sklepach z zainstalowanymi wtyczkami do niestandardowych numerów zamówień.

1.0.8

  • Funkcja: Strona informacji o odstąpieniu jest teraz tworzona jako natywne bloki WordPress, co pozwala operatorowi swobodnie edytować treść prawną bezpośrednio w edytorze bloków.
  • Funkcja: Nowy shortcode [buddypilot_withdrawal_info_block] renderuje sekcje dynamiczne (dane kontaktowe sprzedawcy, adres do zwrotów, przycisk CTA) niezależnie, dzięki czemu zawsze odzwierciedlają bieżące ustawienia, nawet po ręcznych edycjach otaczającego tekstu.
  • Funkcja: nowy przycisk „Nadpisz treść strony informacyjnej o odstąpieniu” w WooCommerce > Ustawienia > Odstąpienie > Klient odświeża stronę do najnowszej wersji wzorcowego pouczenia w dowolnym momencie.
  • Poprawka: Zamówienia importowane przez WooCommerce REST API (np. BaseLinker) były reimportowane w pętli, ponieważ wtyczka zapisywała niepotrzebne metadane zgody do każdego nowego zamówienia. Wtyczka nie zapisuje już żadnych metadanych do zamówień tworzonych przez API, które nie zawierają pozycji cyfrowych.

1.0.7

  • Ulepszenie: Śledzenie dostaw używa teraz dedykowanej tabeli bazy danych zamiast metadanych zamówienia, zapobiegając temu, aby integracje synchronizacji zamówień innych firm (np. BaseLinker) reimportowały zamówienia przy każdej aktualizacji statusu dostawy.
  • Ulepszenie: Ekran potwierdzenia odczytuje teraz skonfigurowany okres odstąpienia dynamicznie zamiast używać zakodowanej na stałe wartości.
  • Ulepszenie: Ograniczanie szybkości jest teraz obsługiwane za pomocą jednej atomowej operacji bazy danych.
  • Ulepszenie: Zmniejszona liczba zapytań do bazy danych na stronie listy odstąpień.
  • Poprawka: Kilka problemów ze standardami kodowania i drobne wzmocnienia bezpieczeństwa.

1.0.6

  • Funkcja: Klienci bez konta (niezalogowani) mogą teraz złożyć oświadczenie o odstąpieniu bezpośrednio z dedykowanej strony formularza. Po wpisaniu numeru zamówienia i emaila rozliczeniowego bezpieczny jednorazowy magic-link jest wysyłany na adres rozliczeniowy; kliknięcie go otwiera pełny interaktywny formularz odstąpienia bez konieczności posiadania konta.
  • Funkcja: nowy shortcode [buddypilot_withdrawal_guest_form] dla strony formularza odstąpienia dla gości. Stronę i shortcode można utworzyć jednym kliknięciem w WooCommerce > Ustawienia > Odstąpienie > Klient.
  • Funkcja: shortcode [buddypilot_withdrawal_information] wyświetla teraz opcjonalny przycisk „Złóż formularz odstąpienia online” prowadzący do strony formularza dla gości, gdy strona formularza jest skonfigurowana. Istniejące strony informacyjne nie są modyfikowane.
  • Funkcja: nowy transakcyjny email „Link dostępu do formularza odstąpienia (gość)” zawierający jednorazowy link; konfigurowalny w WooCommerce > Ustawienia > Emaile.

1.0.5

  • Wtyczka zmieniła nazwę na BuddyPilot Odstąpienie (Szybkie Zwroty) dla lepszej wykrywalności.
  • Dodano pełne tłumaczenia dla wszystkich 24 oficjalnych języków UE: bg, cs, da, de (de_DE, de_AT, de_CH), el, es, et, fi, fr (fr_FR, fr_BE, fr_CH), ga, hr, hu, it, lt, lv, mt, nl (nl_NL, nl_BE), pl, pt, ro, sk, sl, sv.
  • Jakość tłumaczeń: wszystkie 24 pliki językowe UE zostały poddane audytowi w trzech rundach; terminologia prawna zweryfikowana względem oficjalnych dzienników urzędowych (Dyrektywa UE 2011/83/EU Załącznik I), przywrócono znaki diakrytyczne, zastosowano spójny rejestr, poprawiono formy liczby mnogiej i poprawiono wewnętrzną spójność.

1.0.4

  • Funkcja: Ułamkowe ilości produktów są teraz wykrywane i raportowane w oświadczeniu o odstąpieniu. Pełna obsługa ułamkowych ilości (prawidłowe proporcjonalne rozliczenie, obliczanie zwrotu) jest dostępna w BuddyPilot Odstąpienie Pro.
  • Funkcja: Dodano link do akcji „Przejdź na Pro” na liście wtyczek, wyświetlany tylko gdy wersja Pro nie jest aktywna.

1.0.3

  • Przetestowano i potwierdzono kompatybilność z WordPress 7.0.
  • Bezpieczeństwo: Nonce jest teraz weryfikowany przed zajęciem slotu ograniczania szybkości, zapobiegając temu, aby sondy CSRF wyczerpywały godzinny budżet 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_map i 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 z item_id=0, ujemnymi ilościami lub wartościami innymi niż tablica są usuwane.
  • Bezpieczeństwo: PermissionChecker teraz jawnie blokuje user_id=0 niezależnie od customer_id zamówienia.
  • Bezpieczeństwo: OperatorRegistration sprawdza EXCLUDED_STATUSES przy wejściu do handlera i czyści cache uprawnień po zapisie zamówienia.
  • Bezpieczeństwo: DeclarationRepository waliduje format filing_date i odrzuca ciągi z zerową datą.
  • Bezpieczeństwo: RateLimit::tally() zwraca PHP_INT_MAX, gdy tabela rate-limit nie istnieje, zapobiegając cichemu wyłączeniu limitera.
  • Poprawka: round(qty, 10) w get_declared_quantities() zapobiega akumulacji błędu epsilon IEEE-754 przy ułamkowych ilościach produktów.
  • Poprawka: usunięto błędny hook user_register z Privacy Managera; używany jest tylko woocommerce_created_customer.

1.0.2

  • Kod: przemianowano wszystkie krótkie identyfikatory bpw_ / bpw- na pełny prefiks buddypilot_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ń administracyjnych 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() zamiast check_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: Wartości symbolu waluty i separatora z zlokalizowanych danych formatu ceny 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 przez wp_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 zgodnie z artykułem 11a: dwuetapowy formularz, weryfikacja gościa, ręczna rejestracja przez operatora, lista administracyjna oświadczeń, konfigurowalny okres i statusy dostarczone, przechwytywanie zgody zgodnie z artykułem 16(m), generator stron Załącznika I(A)/(B), emaile do klienta i administratora, historia odstąpień w sekcji Moje konto, obsługa HPOS, hooki RODO, zgodność z WCAG 2.2 AA, tłumaczenia polskie i angielskie.