Управління згодами
Модуль управління згодами додає версіонування згод, аудиторський слід, експорт даних та інтеграцію з GDPR. Відстежує історію згод клієнтів та реагує на зміни змісту регламентів.
Версіонування згод
Section titled “Версіонування згод”Автоматичне виявлення змін
Section titled “Автоматичне виявлення змін”Плагін моніторить зміст етикеток правових чекбоксів. При кожному збереженні налаштувань обчислює хеш (SHA-256) змісту етикетки. Якщо хеш змінився - плагін автоматично створює нову версію згоди.
Кожна версія згоди містить:
- номер версії (автоінкремент)
- хеш змісту етикетки
- повний зміст етикетки
- дату створення версії
- ID користувача, який вніс зміну
Історія версій
Section titled “Історія версій”У налаштуваннях правових чекбоксів доступна кнопка Історія версій біля кожного чекбокса. Відображає список усіх версій із датами та переглядом змісту.
Повторне надання згоди
Section titled “Повторне надання згоди”Коли зміст згоди змінюється (нова версія), плагін може вимагати повторного надання згоди клієнтами. Налаштування:
| Параметр | Опис |
|---|---|
| Вимагати повторної згоди | Вмикає запит на повторне надання згоди після зміни змісту |
| Відображати запит | На сторінці каси / У панелі Мій обліковий запис / Обидва |
| Зміст повідомлення | Текст, що інформує клієнта про зміну регламенту |
Клієнт бачить повідомлення з інформацією про зміну змісту та повинен повторно відмітити чекбокс. Попередня згода залишається в історії з позначкою версії.
Аудиторський слід
Section titled “Аудиторський слід”Зареєстровані події
Section titled “Зареєстровані події”Плагін реєструє всі операції, пов’язані зі згодами:
| Подія | Дані |
|---|---|
| Згода надана | ID користувача, ID згоди, версія, дата, IP, user agent |
| Згода відкликана | ID користувача, ID згоди, дата, джерело (клієнт/адміністратор) |
| Зміна змісту згоди | ID згоди, стара версія, нова версія, дата, ID адміністратора |
| Запит на повторну згоду | ID користувача, ID згоди, дата |
| Повторна згода | ID користувача, ID згоди, нова версія, дата |
Перегляд історії
Section titled “Перегляд історії”Перейдіть до WooCommerce > Налаштування > Polski > Модулі PRO > Згоди > Аудиторський слід. Таблиця містить усі події з фільтрами:
- ID користувача або електронна пошта
- тип події
- діапазон дат
- конкретна згода
Експорт даних
Section titled “Експорт даних”Аудиторський слід можна експортувати у двох форматах:
- CSV - для відкриття в електронній таблиці
- JSON - для програмної обробки або імпорту в іншу систему
Експорт доступний із панелі аудиторського сліду. Можна експортувати повну історію або відфільтровані результати.
Інтеграція з панеллю Мій обліковий запис
Section titled “Інтеграція з панеллю Мій обліковий запис”Відкликання згоди
Section titled “Відкликання згоди”У панелі Мій обліковий запис клієнта з’являється розділ “Мої згоди” з переліком наданих згод. Клієнт може:
- переглядати поточні надані згоди
- бачити дату надання кожної згоди
- відкликати згоду кнопкою “Відкликати”
Відкликання згоди реєструється в аудиторському сліді. Адміністратор отримує сповіщення електронною поштою про відкликання згоди (налаштовується).
Запит на повторну згоду
Section titled “Запит на повторну згоду”Якщо зміст згоди змінився, клієнт бачить у панелі Мій обліковий запис повідомлення з проханням ознайомитися з новою версією та повторно надати згоду.
Інтеграція з GDPR
Section titled “Інтеграція з GDPR”Експорт персональних даних
Section titled “Експорт персональних даних”Плагін інтегрується з механізмом експорту персональних даних WordPress (wp_privacy_personal_data_exporters). При запиті на експорт даних клієнта плагін додає:
- перелік наданих згод із датами та версіями
- повну історію змін згод (надання, відкликання, повторні згоди)
- IP-адреси та дати, пов’язані з кожною згодою
/** * 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;});Видалення персональних даних
Section titled “Видалення персональних даних”Плагін інтегрується з механізмом видалення даних WordPress (wp_privacy_personal_data_erasers). При запиті на видалення даних:
- персональні дані в аудиторському сліді анонімізуються (IP, user agent)
- записи згод позначаються як видалені
- сам факт надання/відкликання згоди залишається (без ідентифікуючих даних) для цілей звітності
/** * 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
Section titled “REST API”Модуль надає ендпоінт REST API для перегляду згод (доступний для адміністраторів):
Список згод користувача
Section titled “Список згод користувача”GET /wp-json/polski-pro/v1/consents?user_id={id}Повертає перелік згод користувача з поточним статусом та версією.
Історія змін
Section titled “Історія змін”GET /wp-json/polski-pro/v1/consents/audit?user_id={id}Параметри запиту:
| Параметр | Тип | Опис |
|---|---|---|
user_id | int | ID користувача |
consent_id | string | ID конкретної згоди |
event_type | string | Тип події (granted, revoked, re_consented) |
date_from | string | Дата від (YYYY-MM-DD) |
date_to | string | Дата до (YYYY-MM-DD) |
per_page | int | Кількість результатів (за замовчуванням 50) |
Експорт
Section titled “Експорт”GET /wp-json/polski-pro/v1/consents/export?format={csv|json}Повертає повний експорт аудиторського сліду у вибраному форматі.
polski_pro/consent/granted
Section titled “polski_pro/consent/granted”Дія, що викликається після надання згоди.
/** * @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);Приклад:
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
Section titled “polski_pro/consent/revoked”Дія, що викликається після відкликання згоди.
/** * @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);Приклад:
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);Найпоширеніші проблеми
Section titled “Найпоширеніші проблеми”Запит на повторну згоду не відображається
Section titled “Запит на повторну згоду не відображається”- Перевірте, чи увімкнена опція “Вимагати повторної згоди”
- Перевірте, чи зміст згоди дійсно змінився (перевірте історію версій)
- Очистіть кеш сторінки каси та панелі Мій обліковий запис
Експорт GDPR не містить даних згод
Section titled “Експорт GDPR не містить даних згод”- Переконайтеся, що модуль управління згодами активний
- Перевірте, чи експортер
polski-pro-consentsзареєстрований у Інструменти > Експорт персональних даних - Перевірте логи на наявність помилок PHP
Аудиторський слід зростає надто швидко
Section titled “Аудиторський слід зростає надто швидко”Плагін зберігає історію згод в окремій таблиці бази даних. При великій кількості клієнтів таблиця може зростати. Рекомендується:
- регулярне експортування та архівування старших записів
- налаштування автоматичного очищення записів, старших за визначену кількість місяців (опція в налаштуваннях)