Pravo na odstoupeni od smlouvy
Smernice EU 2023/2673 zavadi nove povinnosti tykajici se prava na odstoupeni od smlouvy (od 19. cervna 2026). Plugin obsluhuje cely proces - formular zakaznika, potvrzeni e-mailem, produktove vylouceni a hooky pro vyvojare.
Pravni pozadavky
Section titled “Pravni pozadavky”Spotrebitel muze odstoupit od smlouvy uzavrene na dalku do 14 dnu bez udani duvodu. Jako prodejce musite:
- Informovat spotrebitele o pravu na odstoupeni pred uzavrenim smlouvy
- Zpristupnit formular odstoupeni
- Potvrdit prijeti prohlaseni o odstoupeni
- Vratit platbu do 14 dnu od prijeti prohlaseni
Smernice 2023/2673 pridava pozadavek na digitalni proces podavani prohlaseni a automaticka potvrzeni.
Proces zakaznika
Section titled “Proces zakaznika”Krok 1 - tlacitko v Muj ucet
Section titled “Krok 1 - tlacitko v Muj ucet”Po aktivaci modulu se v Muj ucet > Objednavky objevi tlacitko “Odstoupit od smlouvy” u objednavek kvalifikujicich se pro vraceni. Tlacitko je viditelne 14 dnu od doruceni.

Krok 2 - formular odstoupeni
Section titled “Krok 2 - formular odstoupeni”Po kliknuti zakaznik vidi formular s poli:
- Cislo objednavky (vyplneno automaticky)
- Datum objednavky
- Seznam produktu z objednavky (s moznosti vyberu, od kterych odstupuje)
- Duvod odstoupeni (volitelny)
- Kontaktni udaje zakaznika
- Cislo bankovniho uctu pro vraceni
Krok 3 - e-mailove potvrzeni
Section titled “Krok 3 - e-mailove potvrzeni”Po odeslani formulare system automaticky:
- Odesle zakaznikovi e-mail s potvrzenim prijeti prohlaseni
- Odesle administratorovi obchodu oznameni o novem hlaseni
- Zmeni stav hlaseni na “Cekajici”
Nasledne zpracujte hlaseni v panelu WooCommerce a oznacte jako ukoncene.
Produktove vylouceni
Section titled “Produktove vylouceni”Nektere produkty nepodlehaji pravu na odstoupeni. Oznacte je jako vyloucene v zalozce Polski - Odstoupeni v editaci produktu.
Typicke vylouceni podle cl. 38 zakona o pravech spotrebitele:
- Produkty vyrobene na zakazku nebo personalizovane
- Produkty podlehajici rychle zkaze
- Zapecetene produkty z hygienickych duvodu (po otevreni)
- Zvukove/obrazove zaznamy v zapecetenem obalu (po otevreni)
- Digitalni obsah dodany online (po zahajeni poskytovaání)
- Tisk (deniky, periodika, casopisy)
U vylouceneho produktu se tlacitko “Odstoupit od smlouvy” nezobrazuje v panelu zakaznika.
Shortcode
Section titled “Shortcode”Pouzijte shortcode [polski_withdrawal_form] pro zobrazeni formulare odstoupeni na libovolnem miste webu.
Zakladni pouziti
Section titled “Zakladni pouziti”[polski_withdrawal_form]Zobrazi formular pro prihlaseneho zakaznika. Zakaznik musi vybrat objednavku ze seznamu.
S urcenim objednavky
Section titled “S urcenim objednavky”[polski_withdrawal_form order_id="789"]Zobrazi formular predvyplneny udaji objednavky se zadanym ID. Plugin overi, ze prihlaseny uzivatel je vlastnikem objednavky.
Priklad vlozeni na stranku
Section titled “Priklad vlozeni na stranku”Vytvorte stranku “Formular odstoupeni od smlouvy” a pridejte shortcode:
[polski_withdrawal_form]V nastaveni (WooCommerce > Nastaveni > Polski > Odstoupeni) ukazte tuto stranku jako vychozi stranku formulare.
polski/withdrawal/requested
Section titled “polski/withdrawal/requested”Vyvolan, kdyz zakaznik odesle formular odstoupeni.
/** * @param int $withdrawal_id ID zgłoszenia odstąpienia. * @param int $order_id ID zamówienia WooCommerce. * @param array $form_data Dane z formularza. */add_action('polski/withdrawal/requested', function (int $withdrawal_id, int $order_id, array $form_data): void { // Priklad: odeslat oznameni do externiho CRM systemu $crm_api = new MyCrmApi(); $crm_api->notify_withdrawal($order_id, $form_data['reason']);}, 10, 3);polski/withdrawal/confirmed
Section titled “polski/withdrawal/confirmed”Vyvolan, kdyz administrator potvrdí prijeti hlaseni.
/** * @param int $withdrawal_id ID zgłoszenia odstąpienia. * @param int $order_id ID zamówienia WooCommerce. */add_action('polski/withdrawal/confirmed', function (int $withdrawal_id, int $order_id): void { // Priklad: zmenit stav objednavky $order = wc_get_order($order_id); if ($order) { $order->update_status('withdrawal-confirmed', 'Odstąpienie potwierdzone.'); }}, 10, 2);polski/withdrawal/completed
Section titled “polski/withdrawal/completed”Vyvolan, kdyz cely proces odstoupeni je dokoncen (vraceni zpracovano).
/** * @param int $withdrawal_id ID zgłoszenia odstąpienia. * @param int $order_id ID zamówienia WooCommerce. * @param float $refund_amount Kwota zwrotu. */add_action('polski/withdrawal/completed', function (int $withdrawal_id, int $order_id, float $refund_amount): void { // Priklad: zaregistrovat vraceni v ucetnim systemu do_action('my_accounting/register_refund', $order_id, $refund_amount);}, 10, 3);polski/withdrawal/eligible
Section titled “polski/withdrawal/eligible”Filtr umoznujici programove urcit, zda se objednavka kvalifikuje pro odstoupeni.
/** * @param bool $is_eligible Czy zamówienie kwalifikuje się do odstąpienia. * @param WC_Order $order Obiekt zamówienia WooCommerce. * @return bool */add_filter('polski/withdrawal/eligible', function (bool $is_eligible, WC_Order $order): bool { // Priklad: vyloucit objednavky z kategorie "sluzby" foreach ($order->get_items() as $item) { $product = $item->get_product(); if ($product && has_term('uslugi', 'product_cat', $product->get_id())) { return false; } } return $is_eligible;}, 10, 2);polski/withdrawal/period_days
Section titled “polski/withdrawal/period_days”Filtr umoznujici zmenit obdobi pro odstoupeni (vychozi 14 dnu).
/** * @param int $days Liczba dni na odstąpienie. * @param WC_Order $order Obiekt zamówienia WooCommerce. * @return int */add_filter('polski/withdrawal/period_days', function (int $days, WC_Order $order): int { // Priklad: prodlouzit obdobi na 30 dnu o Vanocich $order_date = $order->get_date_created(); if ($order_date) { $month = (int) $order_date->format('m'); if ($month === 12) { return 30; } } return $days;}, 10, 2);polski/withdrawal/form_fields
Section titled “polski/withdrawal/form_fields”Filtr umoznujici upravit pole formulare odstoupeni.
/** * @param array $fields Tablica pól formularza. * @return array */add_filter('polski/withdrawal/form_fields', function (array $fields): array { // Priklad: pridat pole na preferovany zpusob vraceni $fields['refund_method'] = [ 'type' => 'select', 'label' => 'Preferowany sposób zwrotu', 'required' => true, 'options' => [ 'bank_transfer' => 'Przelew bankowy', 'original' => 'Tym samym sposobem płatności', ], ]; return $fields;}, 10, 1);Administrativa hlaseni
Section titled “Administrativa hlaseni”Hlaseni najdete v WooCommerce > Odstoupeni. Kazde hlaseni obsahuje:
- Cislo objednavky a odkaz na objednavku
- Datum odeslani formulare
- Stav (cekajici, potvrzene, dokoncene, zamitnute)
- Udaje zakaznika
- Seznam produktu zahrnutych v odstoupeni
- Duvod (pokud byl udan)
Muzete zmenit stav hlaseni, pridat poznamku nebo zpracovat vraceni primo z panelu.
Reseni problemu
Section titled “Reseni problemu”Tlacitko “Odstoupit od smlouvy” se nezobrazuje Zkontrolujte, zda: (1) modul je aktivovan, (2) objednavka je ve stavu “Vyrizena”, (3) neuplynulo obdobi pro odstoupeni, (4) zadny produkt v objednavce neni vyloucen.
Zakaznik nedostava potvrzujici e-mail Zkontrolujte konfiguraci e-mailu WooCommerce v WooCommerce > Nastaveni > E-maily a ujistete se, ze sablona “Potvrzeni odstoupeni” je aktivovana.
Dalsi kroky
Section titled “Dalsi kroky”- Hlaseni problemu: GitHub Issues
- Diskuse a otazky: GitHub Discussions