BuddyPilot Odstąpienie (Szybkie Zwroty)

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

  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 e-maili 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 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żowani

Wtyczka „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_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ń 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() 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: 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 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 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.