Przejdź do głównej zawartości

Zarządzanie zgodami

Moduł zarządzania zgodami dodaje wersjonowanie zgód, audit trail, eksport danych i integrację z RODO. Śledzi historię zgód klientów i reaguje na zmiany treści regulaminów.

Plugin śledzi treść checkboxów. Przy każdym zapisie ustawień porównuje hash (SHA-256) treści. Gdy treść się zmieni - tworzy nową wersję zgody automatycznie.

Każda wersja zgody zawiera:

  • numer wersji (autoinkrementacja)
  • hash treści etykiety
  • pełną treść etykiety
  • datę utworzenia wersji
  • ID użytkownika, który dokonał zmiany

Kliknij Historia wersji przy checkboxie, aby zobaczyć wszystkie wersje z datami i treścią.

Gdy treść zgody się zmieni, plugin może wymagać ponownej zgody. Ustawienia:

UstawienieOpis
Wymagaj ponownej zgodyWłącza monit o ponowne wyrażenie zgody po zmianie treści
Wyświetlaj monitNa stronie kasy / W panelu Moje konto / Oba
Treść komunikatuTekst informujący klienta o zmianie regulaminu

Klient widzi komunikat o zmianie i musi ponownie zaznaczyć checkbox. Wcześniejsza zgoda zostaje w historii.

Plugin zapisuje wszystkie operacje na zgodach:

ZdarzenieDane
Zgoda wyrażonaID użytkownika, ID zgody, wersja, data, IP, user agent
Zgoda wycofanaID użytkownika, ID zgody, data, źródło (klient/admin)
Zmiana treści zgodyID zgody, stara wersja, nowa wersja, data, ID admina
Monit o ponowną zgodęID użytkownika, ID zgody, data
Ponowna zgodaID użytkownika, ID zgody, nowa wersja, data

Przejdź do WooCommerce > Ustawienia > Polski > Moduły PRO > Zgody > Audit trail. Filtruj zdarzenia po:

  • ID użytkownika lub e-mail
  • typ zdarzenia
  • zakres dat
  • konkretna zgoda

Eksportuj audit trail w formacie:

  • CSV - do arkusza kalkulacyjnego
  • JSON - do przetwarzania programowego

Eksportuj pełną historię lub przefiltrowane wyniki z panelu Audit trail.

W Moje konto klient widzi sekcję “Moje zgody”. Może:

  • przeglądać aktualnie wyrażone zgody
  • zobaczyć datę wyrażenia każdej zgody
  • wycofać zgodę przyciskiem “Wycofaj”

Wycofanie jest zapisywane w audit trail. Administrator dostaje powiadomienie e-mail (konfigurowalne).

Gdy treść zgody się zmieni, klient widzi w Moje konto prośbę o zapoznanie się z nową wersją i ponowną zgodę.

Plugin integruje się z eksportem danych WordPress (wp_privacy_personal_data_exporters). Przy eksporcie danych klienta dołącza:

  • listę wyrażonych zgód z datami i wersjami
  • pełną historię zmian zgód (wyrażenia, wycofania, ponowne zgody)
  • adresy IP i daty powiązane z każdą zgodą
/**
* 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;
});

Plugin integruje się z usuwaniem danych WordPress (wp_privacy_personal_data_erasers). Przy usuwaniu danych:

  • dane osobowe w audit trail są anonimizowane (IP, user agent)
  • wpisy zgód są oznaczane jako usunięte
  • sam fakt wyrażenia/wycofania zgody pozostaje (bez danych identyfikujących) dla celów rozliczalności
/**
* 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;
});

Moduł udostępnia endpoint REST API do przeglądania zgód (dostępny dla administratorów):

GET /wp-json/polski-pro/v1/consents?user_id={id}

Zwraca listę zgód użytkownika z aktualnym statusem i wersją.

GET /wp-json/polski-pro/v1/consents/audit?user_id={id}

Parametry query:

ParametrTypOpis
user_idintID użytkownika
consent_idstringID konkretnej zgody
event_typestringTyp zdarzenia (granted, revoked, re_consented)
date_fromstringData od (YYYY-MM-DD)
date_tostringData do (YYYY-MM-DD)
per_pageintLiczba wyników (domyślnie 50)
GET /wp-json/polski-pro/v1/consents/export?format={csv|json}

Zwraca pełny eksport audit trail w wybranym formacie.

Akcja wywoływana po wyrażeniu zgody.

/**
* @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);

Przykład:

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);

Akcja wywoływana po wycofaniu zgody.

/**
* @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);

Przykład:

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);
  1. Sprawdź, czy opcja “Wymagaj ponownej zgody” jest włączona
  2. Zweryfikuj, czy treść zgody faktycznie się zmieniła (sprawdź historię wersji)
  3. Wyczyść cache strony kasy i panelu Moje konto
  1. Upewnij się, że moduł zarządzania zgodami jest aktywny
  2. Sprawdź, czy eksporter polski-pro-consents jest zarejestrowany w Narzędzia > Eksport danych osobowych
  3. Zweryfikuj logi pod kątem błędów PHP

Historia zgód jest w osobnej tabeli. Przy wielu klientach może rosnąć. Rozważ:

  • regularne eksportowanie i archiwizowanie starszych wpisów
  • ustawienie automatycznego czyszczenia wpisów starszych niż określona liczba miesięcy (opcja w ustawieniach)
Ta strona ma wyłącznie charakter informacyjny i nie stanowi porady prawnej. Przed wdrożeniem skonsultuj się z prawnikiem. Polski for WooCommerce jest oprogramowaniem open source (GPLv2) dostarczanym bez gwarancji.