Right of withdrawal from the contract
Die EU-Richtlinie 2023/2673 führt neue Pflichten im Zusammenhang mit dem Widerrufsrecht ein (ab dem 19. Juni 2026). Das Plugin wickelt den gesamten Prozess ab - Kundenformular, E-Mail-Bestätigungen, Produktausschlüsse und Entwickler-Hooks.
Rechtliche Anforderungen
Section titled “Rechtliche Anforderungen”Ein Verbraucher kann innerhalb von 14 Tagen ohne Angabe von Gründen von einem Fernabsatzvertrag zurücktreten. Als Verkäufer müssen Sie:
- Den Verbraucher vor Vertragsschluss über das Widerrufsrecht informieren
- Ein Widerrufsformular bereitstellen
- Den Eingang der Widerrufserklärung bestätigen
- Die Zahlung innerhalb von 14 Tagen nach Erhalt der Erklärung erstatten
Die Richtlinie 2023/2673 fügt die Anforderung eines digitalen Verfahrens zur Abgabe von Erklärungen und automatischer Bestätigungen hinzu.
Kundenprozess
Section titled “Kundenprozess”Schritt 1 - Schaltfläche in Mein Konto
Section titled “Schritt 1 - Schaltfläche in Mein Konto”Nach Aktivierung des Moduls erscheint unter Mein Konto > Bestellungen neben rückgabeberechtigten Bestellungen eine Schaltfläche “Vom Vertrag zurücktreten”. Die Schaltfläche ist 14 Tage ab Lieferung sichtbar.

Schritt 2 - Widerrufsformular
Section titled “Schritt 2 - Widerrufsformular”Nach dem Klick auf die Schaltfläche sieht der Kunde ein Formular mit folgenden Feldern:
- Bestellnummer (automatisch ausgefüllt)
- Bestelldatum
- Liste der Produkte aus der Bestellung (mit der Möglichkeit auszuwählen, von welchen zurückgetreten werden soll)
- Widerrufsgrund (optional)
- Kontaktdaten des Kunden
- Bankkontonummer für die Erstattung
Schritt 3 - E-Mail-Bestätigung
Section titled “Schritt 3 - E-Mail-Bestätigung”Nach dem Absenden des Formulars führt das System automatisch Folgendes aus:
- Sendet dem Kunden eine E-Mail zur Bestätigung des Eingangs der Widerrufserklärung
- Sendet dem Shop-Administrator eine Benachrichtigung über die neue Einreichung
- Ändert den Status der Einreichung auf “Ausstehend”
Bearbeiten Sie anschließend die Einreichung im WooCommerce-Bereich und markieren Sie sie als abgeschlossen.
Produktausschlüsse
Section titled “Produktausschlüsse”Einige Produkte unterliegen nicht dem Widerrufsrecht. Markieren Sie diese als ausgeschlossen im Tab Polski - Widerruf im Produkteditor.
Typische Ausschlüsse gemäß Artikel 38 des Verbraucherrechtegesetzes:
- Nach Kundenwunsch angefertigte oder personalisierte Produkte
- Schnell verderbliche Produkte
- Aus Hygienegründen versiegelte Produkte (nach dem Öffnen)
- Audio-/Videoaufnahmen in versiegelter Verpackung (nach dem Öffnen)
- Online gelieferte digitale Inhalte (nach Beginn der Leistung)
- Presse (Zeitungen, Zeitschriften, Magazine)
Bei ausgeschlossenen Produkten erscheint die Schaltfläche “Vom Vertrag zurücktreten” im Kundenbereich nicht.
Shortcode
Section titled “Shortcode”Verwenden Sie den Shortcode [polski_withdrawal_form], um das Widerrufsformular an beliebiger Stelle auf der Website anzuzeigen.
Grundlegende Verwendung
Section titled “Grundlegende Verwendung”[polski_withdrawal_form]Zeigt das Formular für den eingeloggten Kunden an. Der Kunde muss eine Bestellung aus der Liste auswählen.
Mit einer bestimmten Bestellung
Section titled “Mit einer bestimmten Bestellung”[polski_withdrawal_form order_id="789"]Zeigt das mit den Daten der angegebenen Bestell-ID ausgefüllte Formular an. Das Plugin prüft, ob der eingeloggte Benutzer der Eigentümer der Bestellung ist.
Beispiel für die Einbettung auf einer Seite
Section titled “Beispiel für die Einbettung auf einer Seite”Erstellen Sie eine spezielle Seite “Formular für den Vertragswiderruf” und platzieren Sie den Shortcode:
[polski_withdrawal_form]Verweisen Sie in den Einstellungen (WooCommerce > Einstellungen > Polski > Widerruf) auf diese Seite als Standard-Formularseite.
polski/withdrawal/requested
Section titled “polski/withdrawal/requested”Wird ausgelöst, wenn ein Kunde das Widerrufsformular absendet.
/** * @param int $withdrawal_id Withdrawal submission ID. * @param int $order_id WooCommerce order ID. * @param array $form_data Form data. */add_action('polski/withdrawal/requested', function (int $withdrawal_id, int $order_id, array $form_data): void { // Example: send notification to external CRM system $crm_api = new MyCrmApi(); $crm_api->notify_withdrawal($order_id, $form_data['reason']);}, 10, 3);polski/withdrawal/confirmed
Section titled “polski/withdrawal/confirmed”Wird ausgelöst, wenn der Administrator den Eingang der Einreichung bestätigt.
/** * @param int $withdrawal_id Withdrawal submission ID. * @param int $order_id WooCommerce order ID. */add_action('polski/withdrawal/confirmed', function (int $withdrawal_id, int $order_id): void { // Example: change order status $order = wc_get_order($order_id); if ($order) { $order->update_status('withdrawal-confirmed', 'Withdrawal confirmed.'); }}, 10, 2);polski/withdrawal/completed
Section titled “polski/withdrawal/completed”Wird ausgelöst, wenn der gesamte Widerrufsprozess abgeschlossen ist (Erstattung durchgeführt).
/** * @param int $withdrawal_id Withdrawal submission ID. * @param int $order_id WooCommerce order ID. * @param float $refund_amount Refund amount. */add_action('polski/withdrawal/completed', function (int $withdrawal_id, int $order_id, float $refund_amount): void { // Example: register refund in accounting system do_action('my_accounting/register_refund', $order_id, $refund_amount);}, 10, 3);polski/withdrawal/eligible
Section titled “polski/withdrawal/eligible”Filter, mit dem Sie programmatisch festlegen können, ob eine Bestellung für den Widerruf infrage kommt.
/** * @param bool $is_eligible Whether the order qualifies for withdrawal. * @param WC_Order $order WooCommerce order object. * @return bool */add_filter('polski/withdrawal/eligible', function (bool $is_eligible, WC_Order $order): bool { // Example: exclude orders from the "services" category 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”Filter, mit dem Sie die Widerrufsfrist ändern können (standardmäßig 14 Tage).
/** * @param int $days Number of days for withdrawal. * @param WC_Order $order WooCommerce order object. * @return int */add_filter('polski/withdrawal/period_days', function (int $days, WC_Order $order): int { // Example: extend period to 30 days during the holiday season $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”Filter, mit dem Sie die Felder des Widerrufsformulars ändern können.
/** * @param array $fields Array of form fields. * @return array */add_filter('polski/withdrawal/form_fields', function (array $fields): array { // Example: add a preferred refund method field $fields['refund_method'] = [ 'type' => 'select', 'label' => 'Preferred refund method', 'required' => true, 'options' => [ 'bank_transfer' => 'Bank transfer', 'original' => 'Same payment method', ], ]; return $fields;}, 10, 1);Verwaltung der Einreichungen
Section titled “Verwaltung der Einreichungen”Sie finden die Einreichungen unter WooCommerce > Widerrufe. Jede Einreichung enthält:
- Bestellnummer und Link zur Bestellung
- Datum der Formulareinreichung
- Status (ausstehend, bestätigt, abgeschlossen, abgelehnt)
- Kundendaten
- Liste der vom Widerruf betroffenen Produkte
- Grund (falls angegeben)
Sie können den Status ändern, eine Notiz hinzufügen oder die Erstattung direkt aus dem Bereich heraus bearbeiten.
KI-Klassifizierung des Grundes (optional)
Section titled “KI-Klassifizierung des Grundes (optional)”Wenn Sie WooCommerce > Einstellungen > Polski > KI-Funktionen aktivieren, kann das Plugin einen konfigurierten WordPress-AI-Client-Anbieter bitten, jeden Freitext-Grund in eine feste Kategorie einzuordnen (defekt, falscher Artikel, Meinung geändert und so weiter). Diese Funktion ist standardmäßig deaktiviert, und das Plugin führt den Netzwerkaufruf niemals selbst aus.
Aus Transparenzgründen (KI-Verordnung Art. 50) wird die Kategorie in der Liste mit einer ausdrücklichen Kennzeichnung “automatisch durch KI klassifiziert” angezeigt, damit ein Bearbeiter eine von der KI zugewiesene Kategorie niemals mit einer menschlichen Entscheidung verwechselt.
Fehlerbehebung
Section titled “Fehlerbehebung”Die Schaltfläche “Vom Vertrag zurücktreten” wird nicht angezeigt Prüfen Sie, dass: (1) das Modul aktiviert ist, (2) die Bestellung den Status “Abgeschlossen” hat, (3) die Widerrufsfrist nicht abgelaufen ist, (4) kein Produkt in der Bestellung ausgeschlossen ist.
Der Kunde erhält keine Bestätigungs-E-Mail Prüfen Sie die WooCommerce-E-Mail-Konfiguration unter WooCommerce > Einstellungen > E-Mails und stellen Sie sicher, dass die Vorlage “Widerrufsbestätigung” aktiviert ist.
Nächste Schritte
Section titled “Nächste Schritte”- Probleme melden: GitHub Issues
- Diskussionen und Fragen: GitHub Discussions