Consent management
Das Modul zur Einwilligungsverwaltung ergänzt die Versionierung von Einwilligungen, einen Audit-Trail, den Datenexport und die DSGVO-Integration. Es verfolgt den Verlauf der Kundeneinwilligungen und reagiert auf Änderungen am Inhalt von AGB und Regelwerken.
Versionierung von Einwilligungen
Abschnitt betitelt „Versionierung von Einwilligungen“Automatische Änderungserkennung
Abschnitt betitelt „Automatische Änderungserkennung“Das Plugin überwacht den Inhalt der Labels rechtlicher Checkboxen. Bei jedem Speichern der Einstellungen berechnet es einen Hash (SHA-256) des Label-Inhalts. Wenn sich der Hash geändert hat, erstellt das Plugin automatisch eine neue Version der Einwilligung.
Jede Version einer Einwilligung enthält:
- Versionsnummer (automatisch hochgezählt)
- Hash des Label-Inhalts
- vollständiger Label-Inhalt
- Erstellungsdatum der Version
- ID des Benutzers, der die Änderung vorgenommen hat
Versionsverlauf
Abschnitt betitelt „Versionsverlauf“In den Einstellungen der rechtlichen Checkboxen steht neben jeder Checkbox eine Schaltfläche Versionsverlauf zur Verfügung. Sie zeigt eine Liste aller Versionen mit Datumsangaben und einer Inhaltsvorschau.
Erneute Einwilligung
Abschnitt betitelt „Erneute Einwilligung“Wenn sich der Inhalt einer Einwilligung ändert (neue Version), kann das Plugin von den Kunden verlangen, ihre Einwilligung erneut zu erteilen. Konfiguration:
| Einstellung | Beschreibung |
|---|---|
| Erneute Einwilligung verlangen | Aktiviert eine Aufforderung zur erneuten Einwilligung nach einer Inhaltsänderung |
| Aufforderung anzeigen | Auf der Kassenseite / Im Bereich Mein Konto / Beides |
| Inhalt der Nachricht | Text, der den Kunden über die Änderung des Regelwerks informiert |
Der Kunde sieht eine Nachricht über die Inhaltsänderung und muss die Checkbox erneut anhaken. Die vorherige Einwilligung bleibt mit einer Versionskennzeichnung im Verlauf erhalten.
Audit-Trail
Abschnitt betitelt „Audit-Trail“Erfasste Ereignisse
Abschnitt betitelt „Erfasste Ereignisse“Das Plugin protokolliert alle Vorgänge im Zusammenhang mit Einwilligungen:
| Ereignis | Daten |
|---|---|
| Einwilligung erteilt | Benutzer-ID, Einwilligungs-ID, Version, Datum, IP, User-Agent |
| Einwilligung widerrufen | Benutzer-ID, Einwilligungs-ID, Datum, Quelle (Kunde/Admin) |
| Inhalt der Einwilligung geändert | Einwilligungs-ID, alte Version, neue Version, Datum, Admin-ID |
| Aufforderung zur erneuten Einwilligung | Benutzer-ID, Einwilligungs-ID, Datum |
| Erneute Einwilligung erteilt | Benutzer-ID, Einwilligungs-ID, neue Version, Datum |
Verlauf durchsuchen
Abschnitt betitelt „Verlauf durchsuchen“Gehen Sie zu WooCommerce > Einstellungen > Polski > PRO-Module > Einwilligungen > Audit-Trail. Die Tabelle enthält alle Ereignisse mit Filtern:
- Benutzer-ID oder E-Mail
- Ereignistyp
- Zeitraum
- bestimmte Einwilligung
Datenexport
Abschnitt betitelt „Datenexport“Der Audit-Trail lässt sich in zwei Formaten exportieren:
- CSV - zum Öffnen in einer Tabellenkalkulation
- JSON - zur programmatischen Verarbeitung oder zum Import in ein anderes System
Der Export ist im Bereich Audit-Trail verfügbar. Sie können den vollständigen Verlauf oder gefilterte Ergebnisse exportieren.
Integration mit dem Bereich Mein Konto
Abschnitt betitelt „Integration mit dem Bereich Mein Konto“Widerruf einer Einwilligung
Abschnitt betitelt „Widerruf einer Einwilligung“Im Bereich Mein Konto des Kunden erscheint ein Abschnitt “Meine Einwilligungen” mit einer Liste der erteilten Einwilligungen. Der Kunde kann:
- die aktuell erteilten Einwilligungen durchsehen
- das Datum sehen, an dem jede Einwilligung erteilt wurde
- eine Einwilligung über die Schaltfläche “Widerrufen” widerrufen
Der Widerruf einer Einwilligung wird im Audit-Trail erfasst. Der Administrator erhält eine E-Mail-Benachrichtigung über den Widerruf (konfigurierbar).
Aufforderung zur erneuten Einwilligung
Abschnitt betitelt „Aufforderung zur erneuten Einwilligung“Wenn sich der Inhalt einer Einwilligung geändert hat, sieht der Kunde im Bereich Mein Konto eine Nachricht mit der Bitte, die neue Version zu prüfen und seine Einwilligung erneut zu erteilen.
DSGVO-Integration
Abschnitt betitelt „DSGVO-Integration“Export personenbezogener Daten
Abschnitt betitelt „Export personenbezogener Daten“Das Plugin integriert sich in den Mechanismus zum Export personenbezogener Daten von WordPress (wp_privacy_personal_data_exporters). Wenn ein Export von Kundendaten angefordert wird, schließt das Plugin Folgendes ein:
- Liste der erteilten Einwilligungen mit Datumsangaben und Versionen
- vollständiger Änderungsverlauf der Einwilligungen (Erteilungen, Widerrufe, erneute Einwilligungen)
- IP-Adressen und Datumsangaben, die mit jeder Einwilligung verknüpft sind
/** * Rejestracja eksportera danych osobowych. */add_filter('wp_privacy_personal_data_exporters', function (array $exporters): array { $exporters['polski-pro-consents'] = [ 'exporter_friendly_name' => 'Polski PRO - Zgody', 'callback' => [PolskiPro\Privacy\Exporter::class, 'export'], ]; return $exporters;});Löschung personenbezogener Daten
Abschnitt betitelt „Löschung personenbezogener Daten“Das Plugin integriert sich in den Mechanismus zur Datenlöschung von WordPress (wp_privacy_personal_data_erasers). Wenn eine Datenlöschung angefordert wird:
- werden die personenbezogenen Daten im Audit-Trail anonymisiert (IP, User-Agent)
- werden die Einwilligungseinträge als gelöscht markiert
- bleibt die Tatsache der Erteilung/des Widerrufs einer Einwilligung selbst (ohne identifizierende Daten) zu Zwecken der Rechenschaftspflicht erhalten
/** * Rejestracja erasera danych osobowych. */add_filter('wp_privacy_personal_data_erasers', function (array $erasers): array { $erasers['polski-pro-consents'] = [ 'eraser_friendly_name' => 'Polski PRO - Zgody', 'callback' => [PolskiPro\Privacy\Eraser::class, 'erase'], ]; return $erasers;});REST API
Abschnitt betitelt „REST API“Das Modul stellt einen REST-API-Endpunkt zum Durchsehen der Einwilligungen bereit (für Administratoren verfügbar):
Liste der Benutzereinwilligungen
Abschnitt betitelt „Liste der Benutzereinwilligungen“GET /wp-json/polski-pro/v1/consents?user_id={id}Gibt eine Liste der Benutzereinwilligungen mit aktuellem Status und Version zurück.
Änderungsverlauf
Abschnitt betitelt „Änderungsverlauf“GET /wp-json/polski-pro/v1/consents/audit?user_id={id}Query-Parameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
user_id |
int | Benutzer-ID |
consent_id |
string | ID einer bestimmten Einwilligung |
event_type |
string | Ereignistyp (granted, revoked, re_consented) |
date_from |
string | Datum von (YYYY-MM-DD) |
date_to |
string | Datum bis (YYYY-MM-DD) |
per_page |
int | Anzahl der Ergebnisse (Standard 50) |
GET /wp-json/polski-pro/v1/consents/export?format={csv|json}Gibt einen vollständigen Export des Audit-Trails im gewählten Format zurück.
polski_pro/consent/granted
Abschnitt betitelt „polski_pro/consent/granted“Aktion, die nach der Erteilung einer Einwilligung ausgelöst wird.
/** * @param int $user_id ID użytkownika * @param string $consent_id ID zgody * @param int $version Numer wersji zgody */do_action('polski_pro/consent/granted', int $user_id, string $consent_id, int $version);Beispiel:
add_action('polski_pro/consent/granted', function (int $user_id, string $consent_id, int $version): void { // Synchronizacja z zewnętrznym CRM if ($consent_id === 'marketing') { wp_remote_post('https://crm.example.com/api/consent', [ 'body' => wp_json_encode([ 'email' => get_userdata($user_id)->user_email, 'consent' => 'marketing', 'status' => 'granted', 'version' => $version, ]), 'headers' => ['Content-Type' => 'application/json'], ]); }}, 10, 3);polski_pro/consent/revoked
Abschnitt betitelt „polski_pro/consent/revoked“Aktion, die nach dem Widerruf einer Einwilligung ausgelöst wird.
/** * @param int $user_id ID użytkownika * @param string $consent_id ID zgody * @param string $source Źródło wycofania (customer, admin) */do_action('polski_pro/consent/revoked', int $user_id, string $consent_id, string $source);Beispiel:
add_action('polski_pro/consent/revoked', function (int $user_id, string $consent_id, string $source): void { if ($consent_id === 'newsletter' && $source === 'customer') { // Wypisanie z newslettera do_action('newsletter_unsubscribe', get_userdata($user_id)->user_email); }}, 10, 3);Häufige Probleme
Abschnitt betitelt „Häufige Probleme“Aufforderung zur erneuten Einwilligung wird nicht angezeigt
Abschnitt betitelt „Aufforderung zur erneuten Einwilligung wird nicht angezeigt“- Prüfen Sie, ob die Option “Erneute Einwilligung verlangen” aktiviert ist
- Vergewissern Sie sich, dass sich der Inhalt der Einwilligung tatsächlich geändert hat (prüfen Sie den Versionsverlauf)
- Leeren Sie den Cache der Kassenseite und des Bereichs Mein Konto
DSGVO-Export enthält keine Einwilligungsdaten
Abschnitt betitelt „DSGVO-Export enthält keine Einwilligungsdaten“- Stellen Sie sicher, dass das Modul zur Einwilligungsverwaltung aktiv ist
- Prüfen Sie, ob der Exporter
polski-pro-consentsunter Werkzeuge > Personenbezogene Daten exportieren registriert ist - Überprüfen Sie die Logs auf PHP-Fehler
Audit-Trail wächst zu schnell
Abschnitt betitelt „Audit-Trail wächst zu schnell“Das Plugin speichert den Einwilligungsverlauf in einer separaten Datenbanktabelle. Bei einer großen Anzahl von Kunden kann die Tabelle wachsen. Erwägen Sie:
- das regelmäßige Exportieren und Archivieren älterer Einträge
- das Einrichten einer automatischen Bereinigung von Einträgen, die älter als eine bestimmte Anzahl von Monaten sind (Option in den Einstellungen)