Přeskočit na obsah

Časté dotazy

Co tento modul řeší?

Implementuje povinné tlačítko „Odstoupit od smlouvy” vyžadované směrnicí EU 2023/2673 (účinnost od 19. června 2026) pro všechny e-shopy obchodující se spotřebiteli v EU.

Modul poskytuje:

  • Compliant tlačítko + dvoukrokový formulář
  • Potvrzovací e-mail na trvalém nosiči (dle směrnice)
  • Integraci do Můj účet, transakčních e-mailů a adminu
  • Volitelný formulář pro reklamaci sdílející stejné UI
Potřebuju obě poloviny (odstoupení + reklamaci)?

Ne. Každá polovina je nezávislá — přiřaď stránku pro aktivaci, ponech prázdné pro vypnutí.

Pokud potřebuješ jen tlačítko pro odstoupení (zákonné minimum), přiřaď jen Stránku pro odstoupení.

Stačí to pro EU 2023/2673 compliance?

Plugin pokrývá technickou stránku (tlačítko, formulář, dvoukrokový proces, e-mail na trvalém nosiči, sledování lhůty).

Stále se musíš postarat o:

  • Obchodní podmínky zmiňující umístění tlačítka a způsob jeho použití
  • Informační povinnost o právu odstoupit (per § 1820 OZ)
  • Zpracování refundace — skutečně vrátit peníze zákazníkovi po obdržení žádosti
  • Zpracování reklamace — vyřízení záručních nároků do 30 dní
Co WooCommerce Subscriptions?

Subscriptions vytvářejí běžné WC objednávky, takže modul pro ně funguje by-default. Nicméně „odstoupení od subscription” má jiný právní význam než od běžné objednávky — před spoléháním na standardní withdrawal flow pro subscriptions se poraď s právníkem.

Jak vytvořím stránku Vrácení zboží?
  1. WordPress → Stránky → Přidat novou
  2. Title: „Vrácení zboží” (nebo dle preference)
  3. Vlož shortcode [wpify_woo_withdrawal_form] do obsahu (nebo Gutenberg blok Formulář pro odstoupení)
  4. Publikuj
  5. Přejdi do WPify → WPify Woo → Odstoupení a reklamace
  6. Vyber novou stránku v Stránka pro odstoupení
  7. Ulož

Pro reklamační formulář opakuj s [wpify_woo_claim_form] a přiřaď do Stránka pro reklamaci.

Můžu použít jednu stránku pro oba formuláře?

Ano. Vlož oba shortcody (nebo oba bloky) na stejnou stránku a přiřaď ji do Stránka pro odstoupení i Stránka pro reklamaci v nastavení.

Plugin používá URL parametr ?form=withdrawal nebo ?form=claim aby věděl, který formulář předvyplnit na sdílené stránce.

Jak vyloučím produkty z odstoupení?

Pro produkty, od kterých zákazníci nemohou odstoupit (vyrobeno na míru, hygienické důvody, perishables…):

  1. Přejdi do editoru produktu
  2. Otevři záložku Odstoupení a reklamace
  3. Zatrhni Vyloučeno z odstoupení
  4. Ulož

Stejný postup pro vyloučení ze záruky přes Vyloučeno ze záruky / reklamace.

Jak nastavím delší záruku pro konkrétní produkt?

V editoru produktu, záložka Odstoupení a reklamace, nastav Záruční doba (měsíce) — override např. na 36 pro 3letou záruku. Prázdné = globální hodnota.

Co vidí přihlášený zákazník?

V Můj účet → Detail objednávky vidí:

  • Tlačítko Odstoupit od smlouvy (pokud eligible)
  • Tlačítko Reklamovat (pokud reklamace aktivní a eligible)
  • Sekci Podané žádosti s předchozími žádostmi (vždy zobrazeno, i po refunded objednávce)
Co guest zákazníci?

Dvě cesty:

  1. Přímý odkaz z e-mailu — plugin-generované e-maily obsahují link s ?order_key=. Zákazník klikne, formulář se otevře se vším pre-fillnutým. Jen potvrdí.

  2. Přímá návštěva stránky (footer link, OP…) — formulář začne prázdný. Zákazník vyplní číslo objednávky + billing e-mail + jméno. Po kliknutí submit server validuje shodu e-mailu a inline odhalí seznam položek (bez reloadu). Zákazník vybere položky a potvrdí.

Co když zákazník napíše špatně číslo objednávky?

Dostane inline chybovou zprávu („Objednávka nenalezena” nebo „E-mail neodpovídá objednávce”), formulář zůstane na místě s jeho hodnotami a může opravit a znovu submitnout.

Musí být zákazník přihlášený?

Ne. Guest checkouty plně fungují — order_key v transakčních e-mailech (důvěryhodný token) nebo číslo objednávky + email match (ruční zadání).

Může zákazník přidat fotky k reklamaci?

Ne ve formuláři (Phase 1). Default e-mail šablona instruuje zákazníka, aby odpověděl na e-mail s přílohami — ty jdou přímo na admin notifikaci.

Tuto instrukci si můžeš upravit v WooCommerce → Nastavení → E-maily → Reklamace — notifikace administrátorovi → Doplňující obsah.

Kdy začíná 14-denní lhůta na odstoupení?

Začíná, když objednávka poprvé přejde do některého ze stavů konfigurovaných v Stavy objednávky, od kterých běží lhůta (default: Dokončeno).

Pokud máš custom stav „Doručeno”, vyber ho pro odpočet od reálného doručení.

Co s objednávkami, které existovaly před aktivací modulu?

Pro legacy objednávky plugin použije fallback (v pořadí):

  1. date_completed
  2. date_paid
  3. date_created

Konfigurované period-start stavy se vynucují plně jen pro objednávky, které modul sleduje od aktivace. Legacy objednávky používají rozumnou aproximaci přes nativní WooCommerce timestampy.

Mixed eligibility — některé položky po lhůtě, jiné ne?

Formulář ukáže celý seznam s disabled řádky (s reason tagem typu „Lhůta vypršela”) pro neeligible položky. Zákazník může submitnout jen pro eligible položky.

Pokud zákazník zvolí scope Celá objednávka, server zpracuje jen eligible položky (s warningem, že některé nebudou zahrnuté).

Co částečné vrácení multi-quantity položek?

Pro položky objednané s množstvím > 1 formulář ukáže number input (0 až objednané množství), takže zákazník může vrátit např. 1 ze 3 objednaných. Pro položky s množstvím = 1 se používá checkbox.

Proč jsou tlačítka skrytá u refunded/cancelled objednávek?

Objednávky ve stavech refunded, cancelled, failed nebo draft jsou „mrtvé smlouvy” — není co odstupovat ani reklamovat. Tlačítka jsou skrytá a podání formuláře jsou odmítnutá.

Předchozí podané žádosti zůstávají viditelné v Můj účet, takže zákazník vidí „Žádost o odstoupení podána dne X — objednávka teď refunded, žádost vyřízena.”

Kolik e-mailů plugin posílá per submission?

2 e-maily per submission:

  1. Customer notifikace (vždy na billing email) — potvrzuje přijetí, obsahuje detaily žádosti a přesné datum/čas podání (vyžadováno směrnicí)
  2. Admin notifikace — odešle na konfigurovaného admin příjemce s odkazem na detail žádosti v admin přehledu
Kde upravím obsah e-mailů?

WooCommerce → Nastavení → E-maily vypisuje 4 e-maily:

  • Odstoupení — potvrzení zákazníkovi
  • Odstoupení — notifikace administrátorovi
  • Reklamace — potvrzení zákazníkovi
  • Reklamace — notifikace administrátorovi

U každého můžeš upravit Předmět, Nadpis a Doplňující obsah (extra text nad detaily žádosti).

Můžu zahrnout odkaz na odstoupení do běžného e-mailu o objednávce?

Ano. V nastavení modulu (záložka Odstoupení) zaškrtni WC e-maily, do kterých se má vložit odkaz na odstoupení — např. „Dokončená objednávka”.

Odkaz se vloží jen pokud lhůta ještě běží a objednávka je v eligible stavu.

Musí zákazník použít stejný e-mail jako v objednávce?

Ano — e-mail zadaný ve formuláři musí matchovat billing_email objednávky. Tohle je druhý faktor guest autentifikace.

Pro uživatele otevírající formulář přes ?order_key= v transakčním e-mailu stačí samotný order_key (zákazník už ho dostal v inboxu).

Kde vidím všechny podané žádosti?

WooCommerce → Odstoupení a reklamace — list table s filtry dle typu a stavu lhůty (in / expired při podání).

Vidím žádosti přímo z detailu objednávky?

Ano. Stránka editace objednávky má sidebar metabox Žádosti o odstoupení a reklamaci s výpisem všech žádostí pro tu objednávku (datum, typ, počet položek, odkaz na detail).

Přehled objednávek má také sloupec Odstoupení a reklamace s inline výpisem žádostí (#42 Odstoupení · 27.4.2026).

Můžu žádost smazat?

UI mazání není defaultně dostupné — žádosti jsou audit záznamy. Pokud potřebuješ mazat (např. GDPR right to erasure), udělej to přes WP-CLI nebo custom DB query proti tabulce wpify_woo_requests.

Co s polem status žádosti?

DB má sloupec status (default submitted), ale plugin ho nikdy nemění. Je to extension point — nainstaluj nebo napiš workflow rozšíření, které se hookne do wpify_woo_withdrawal_claims_status_changed pro správu stavů jako processing, approved, refunded, atd.

Jak je řešena anti-bot ochrana?

Dvě vrstvy:

  • Honeypot pole (jméno wpify_woo_url, skryté přes CSS, aria-hidden) — boti vyplní, lidé ne
  • Time-trap — server-rendered HMAC-signed timestamp; podání pod 1 sekundu po načtení stránky se odmítají

Plus per-IP rate limit (Vrstva B v nastavení).

Co když moje CDN strippuje IP?

Plugin používá REMOTE_ADDR. Pokud jsi za proxy/CDN, které maskují IP, nakonfiguruj hosting tak, aby REMOTE_ADDR bralo z důvěryhodného forwarded hlavičky. Tohle je hosting-level fix, ne pluginový.

Jak je řešeno GDPR?

DB ukládá customer_ip, customer_user_agent, customer_email, customer_name a podané položky. Doporučená retence: 4 roky (promlčecí lhůta + buffer). Manuální cleanup je odpovědností obchodníka — žádné automatické mazání.

Jak upravím texty tlačítek?

V nastavení:

  • Odstoupení → Text tlačítka / Text potvrzovacího tlačítka
  • Reklamace → Text tlačítka / Text potvrzovacího tlačítka

Tato pole přepisují default texty.