Widerrufsbutton für WooCommerce

Beschreibung

Der Widerrufsbutton stellt einen strukturierten, zweistufigen elektronischen Widerrufsprozess für WooCommerce-Shops bereit – konform mit § 356a BGB und der EU-Richtlinie 2023/2673 (2011/83/EU). Alle Vorgänge werden im WordPress-Backend vollständig protokolliert.

Funktionen der kostenlosen Version:

  • Widerrufsbutton per Shortcode
  • Widerrufsformular per Shortcode (beliebig platzierbar)
  • Optionaler Modal-Modus oder eigene Formularseite
  • Zweistufiger Prozess: Einreichung und Bestätigung
  • WooCommerce-Bestellprüfung (Bestell-ID + E-Mail + Widerrufsfrist)
  • E-Mail-Bestätigung für Kunden und Händler
  • Eigene Datenbanktabelle zur Protokollierung
  • Admin-Übersicht und Detailansicht aller Widerrufe
  • Vollständig konfigurierbare Texte, Labels, Fehlermeldungen und E-Mail-Inhalte
  • Theme-neutrales Basis-Styling

Erweiterungen in der Pro-Version:

  • Teilwiderruf (einzelne Artikel und Mengen auswählbar)
  • Elementor- & Gutenberg-Block-Widgets
  • PDF-Nachweis mit Integritäts-Hash
  • CSV-Export (Gesamt- und Einzel-Download)
  • HTML-E-Mail-Vorlagen
  • Shortcode für WooCommerce-E-Mail-Templates (Bestellbestätigung etc.)
  • Erweiterte Backend-Funktionen

Sicherheit & Missbrauchsschutz:

  • Honeypot-Feld (Bots laufen ins Leere)
  • Rate-Limiting pro IP (Transients, IP nur als Hash gespeichert)
  • IP-Adressen werden nicht im Klartext gespeichert
  • Zweistufige Bestätigung mit zeitlich begrenztem kryptografischem Token

Datenschutz:

Das Plugin speichert ausschließlich die für die Bearbeitung und Dokumentation eines Widerrufs notwendigen Daten: Name, E-Mail-Adresse, Bestell- oder Vertragsreferenz, optional Widerrufsgrund und Bemerkungstext sowie Zeitstempel. Es werden keine Daten an externe Server übertragen. E-Mails werden über das WordPress/WooCommerce-Mailsystem versendet.

Datenhaltung & Deinstallation:

Widerrufsdaten bleiben im Backend gespeichert, bis sie vom Shopbetreiber gelöscht werden. Standardmäßig werden Plugin-Daten bei einer Deinstallation nicht entfernt. Optional kann in den Einstellungen aktiviert werden, dass alle Plugin-Optionen und die Widerruf-Tabelle beim Deinstallieren gelöscht werden.

Rechtlicher Hinweis:

Dieses Plugin stellt eine technische Lösung zur Verfügung und ersetzt keine individuelle Rechtsberatung.

Shortcodes

Widerrufsbutton:
[widerrufsbutton url=“/widerruf“]

Optional als Modal:
[widerrufsbutton target=“modal“ layout=“multi“]

Widerrufsformular:
[widerrufsformular]

Layout-Option (mehrstufig):
[widerrufsformular layout=“multi“]

Einstellungen

Im Backend unter: Widerrufsbutton Einstellungen

Tab „Formular“:

  • Widerrufsfrist in Tagen
  • Händler E-Mail (optional)
  • Ziel-URL für den Widerrufsbutton (mit Seiten-Suche)
  • Daten bei Deinstallation löschen (opt-in)

Tab „Texte“:

  • Überschriften und Hilfetexte
  • Formular-Labels
  • Buttontexte
  • Validierungs- und Fehlermeldungen
  • E-Mail-Betreff und -Inhalte (inkl. Platzhalter)

E-Mail-Platzhalter

  • {customer_name}
  • {customer_email}
  • {contract_ref}
  • {remark_line}
  • {confirmed_at}
  • {withdrawal_id}
  • {admin_link}
  • {statement}

Screenshots

  • Elektronischer Widerruf-Button im Frontend
  • Widerrufsformular – Schritt 1: Dateneingabe
  • Widerrufsformular – Schritt 2: Datenprüfung und Bestätigung
  • Erfolgsbestätigung nach dem Absenden
  • Backend-Übersicht aller Widerrufe
  • Backend-Detailansicht eines Widerrufs mit vollständiger Dokumentation
  • Einstellungen – Tab Formular: Frist, Ziel-URL, Händler-E-Mail
  • Einstellungen – Tab Texte: Formular, Prozessschritte und E-Mails
  • Einstellungen – Tab Design: Farbe, Rahmen, Radius
  • Plugin-Übersichtsseite: Status und Kurzanleitung
  • E-Mail-Bestätigung für Endkunde und Shopbetreiber

FAQ

Benötigt das Plugin WooCommerce?

Ja. Die Bestellprüfung in der Free-Version erfolgt über WooCommerce.

Können Kunden den Widerruf ohne Login durchführen?

Ja.

Welche Bestellnummer muss der Kunde eingeben?

In der Free-Version wird die Standard-WooCommerce-Bestell-ID geprüft (numerisch, z. B. 1234).

Welche personenbezogenen Daten werden gespeichert?

Ausschließlich die für den Widerruf notwendigen Daten: Name, E-Mail-Adresse, Bestellreferenz sowie Zeitstempel. IP-Adressen werden nicht im Klartext gespeichert, keine Daten werden an Dritte übertragen.

Werden Daten automatisch gelöscht?

Nein. Die Widerrufe dienen der rechtlichen Dokumentation. Optional können in den Einstellungen alle Daten bei der Deinstallation entfernt werden.

Rezensionen

Für dieses Plugin gibt es keine Rezensionen.

Mitwirkende und Entwickler

„Widerrufsbutton für WooCommerce“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:

Mitwirkende

„Widerrufsbutton für WooCommerce“ wurde in 1 Sprache übersetzt. Danke an die Übersetzer für ihre Mitwirkung.

Übersetze „Widerrufsbutton für WooCommerce“ in deine Sprache.

Interessiert an der Entwicklung?

Durchstöbere den Code, sieh dir das SVN-Repository an oder abonniere das Entwicklungsprotokoll per RSS.

Änderungsprotokoll

1.3.25

  • Fix: Löschung von einem backup file (withdrawal-form.js.bak).
  • Fix: Wizard-Schritt-Markierung (step_texts_touched, step_design_touched) aus dem $_GET[settings-updated]-Check in pre_update_option_-Filter-Hooks verschoben. Die Wizard-Schritte werden jetzt innerhalb des verifizierten Settings-Speichervorgangs als abgeschlossen markiert.

1.3.24

  • Verbesserung: Alle SQL-SELECT-Abfragen in class-wbwiderruf-db.php mit vollständig literalen Spaltennamen umgeschrieben – keine Variableninterpolation mehr in SQL-Templates.

1.3.23

  • Fix: Bestätigungsseite (Erfolgs-Schritt) wird nach dem Absenden des Formulars jetzt korrekt angezeigt. Ursache: Die validate_callback für pending_token hatte ein Längenlimit von 128 Zeichen, das bei realen Tokens (SHA-256-HMAC) regelmäßig überschritten wird. Anfragen wurden stillschweigend abgelehnt.
  • Fix: Datenbank-Migration (v2) konvertiert frisch angelegte Pending-Einträge nicht mehr zu „submitted“. Eine v3-Migration korrigiert betroffene Einträge automatisch.
  • Fix: JavaScript-Funktion confirmStep() verwendet jetzt eine lokal gebundene Fehlervariable statt des außerhalb des Scopes liegenden alert-Bezeichners.
  • Suche in der Admin-Widerrufsliste funktioniert wieder korrekt.
  • Nicht belegte Statusfilter-Tabs (In Prüfung, Fertig, Abgelehnt) aus der Admin-Liste entfernt.
  • Fix: ORDER BY-Spalte wird jetzt korrekt von der List-Table an die Datenbankabfrage weitergegeben.
  • Verbesserung: Alle Datenbankabfragen in class-wbwiderruf-db.php auf explizite $wpdb->prepare()-Aufrufe umgestellt.
  • Verbesserung: Migrations-Abfragen in db-schema.php verwenden $wpdb->prepare() mit %i-Platzhalter für den Tabellennamen.
  • Readme: Short description and main description section rewritten in English per wp.org requirements.

1.3.21

  • Review-Update: Interne Präfixe auf „wbwiderruf“ vereinheitlicht (wp.org-Konformität).
  • Review-Update: Sanitization bei register_setting(), Nonce-Handling und Script-Enqueueing.
  • Review-Update: Kompatibilitäts-Layer für migrierte Options-Schlüssel und Hooks ergänzt.
  • Review Update: „readme short description“ und „description“ auf Englisch verfügbar.

1.3.11

  • Bugfix: Frontend-Formular nutzt wieder die korrekten REST-Routen.

1.3.10

  • Entfernt: manueller load_plugin_textdomain()-Aufruf.

1.3.7

  • REST-Validierung konsolidiert.
  • Bugfix: sichere MySQL-Datetime-Konvertierung nach RFC3339.
  • Admin-Suche verbessert.

1.3.6

  • Verbesserte Fehlermeldungen im Widerrufsformular (Endkunde-seitig).

1.0.0

  • Erstveröffentlichung.