WP Consent API

Опис

WP Consent API – це плагін, який стандартизує комунікацію прийнятих категорій згоди між плагінами. Він потребує плагіна банера файлів cookie та принаймні одного іншого плагіна, який підтримує WP Consent API.

З цим плагіном всі підтримуючі плагіни можуть використовувати одинаковий набір методів для читання та реєстрації поточної категорії згоди, що дозволяє плагінам управління згодою та іншим плагінам співпрацювати, покращуючи відповідність з законами про конфіденційність.

ПОПЕРЕДЖЕННЯ: сам плагін не буде обробляти згоду. Він покаже вам, скільки плагінів у вас без підтримки API згоди та покращить відповідність на вашому сайті, забезпечивши плавний обмін інформацією між плагінами банера файлів cookie та плагінами, які встановлюють файли cookie або відстежують дані користувача.

Яку проблему вирішує цей плагін?

Зараз можливо для плагіна управління згодою заблокувати сторонні сервіси, такі як Facebook, Google Maps, Twitter тощо. Але якщо плагін WordPress розміщує PHP-файл cookie, плагін управління згодою не може запобігти цьому.

По-друге, деякі плагіни інтегрують код відстеження на стороні клієнта в javascript-файли, які, коли вони блокуються, руйнують сайт.

Або, якщо javascript такого плагіна мініфікований, що призводить до того, що URL-адреса стає нерозпізнаваною та не виявляється автоматичним блокувальним сценарієм.

Нарешті, підхід блокування потребує списку всіх видів URL-адрес, які відстежують дані. Загальне API, до якого дотримуються плагіни, може значно
спростити роботу веб-мастера щодо забезпечення відповідності сайту.

Чи запобігає використання цього API відстеженню користувачів сторонніми службами?

Головним чином це API спрямовано на сумісні першопрохідні файли cookie або відстеження від WordPress-плагінів. Якщо такий плагін викликає, наприклад, Facebook,
використання цього API буде допомогою. Якщо користувач вбудовує iframe Facebook, потрібен інструмент блокування, який спочатку вимикає iframe та / або сценарії.

Сценарії сторонніх постачальників повинні бути заблоковані, блокуючи функціональність в плагіні управління згодою. Зробити це в ядрі було б надто втручаючим, і це також не застосовно до всіх користувачів: лише користувачі з відвідувачами з регіонів opt-in, таких як Європейський Союз, потребують такої функції. Така функція також має ризик порушення роботи. Крім того, блокування цих елементів та відображення красивого заповнювача вимагає ще більш складного коду, який на мою думку не повинен бути частиною ядра WordPress, з тих же причин.

Як це працює?

Є два показники, які разом вказують, чи надана згода для певної категорії згоди, наприклад, “маркетинг”:
1) тип згоди, заснований на регіоні, який
може бути opt-in, opt-out або іншими можливими типами згоди;
2) та вибір відвідувача: не встановлено, дозволити або відмовити.

Тип згоди – це функція, яка обгортає фільтр, “wp_get_consent_type”. Якщо немає плагіна управління згодою, щоб встановити його, він поверне false. Це призведе до того, що всі категорії згоди повернуть true, що дозволить розміщувати файли cookie на всіх категоріях.

Якщо опція opt-in встановлена за допомогою цього фільтра, категорія поверне true лише тоді, коли значення вибору відвідувача буде “дозволити”.

Якщо тип згоди, заснований на регіоні, встановлено як відмова, він поверне true, якщо вибір відвідувача не встановлено або встановлено “дозволити”.

Клієнтський бік, плагін управління згодою може динамічно маніпулювати типом згоди та встановлювати кілька категорій файлів cookie.

Плагін може використовувати гак для прослуховування змін або перевірки значення вказаної категорії.

Категорії та більшість інших речей можуть бути розширені за допомогою фільтра.

Існуючі інтеграції

Демо-сайт

(https://wpconsentapi.org/)
Нижче наведено плагіни, використані для налаштування демо-сайту:

  • Complianz
  • Прикладний плагін https://github.com/rlankhorst/consent-api-example-plugin

javascript, плагін управління згодою

//dynamically set consent type
window.wp_consent_type = 'optin';

//dispatch event when consent type is defined
let event = new CustomEvent('wp_consent_type_defined');
document.dispatchEvent( event );

//consent management plugin sets cookie when consent category value changes
wp_set_consent('marketing', 'allow');

javascript, плагін відстеження

//listen to consent change event
document.addEventListener("wp_listen_for_consent_change", function (e) {
  var changedConsentCategory = e.detail;
  for (var key in changedConsentCategory) {
    if (changedConsentCategory.hasOwnProperty(key)) {
      if (key === 'marketing' && changedConsentCategory[key] === 'allow') {
        console.log("just given consent, track user")
      }
    }
  }
});

//basic implementation of consent check:
if (wp_has_consent('marketing')){
  activateMarketing();
  console.log("set marketing stuff now!");
} else {
  console.log("No marketing stuff please!");
}

PHP

//declare complianz with consent level API
$plugin = plugin_basename( __FILE__ );
add_filter( "wp_consent_api_registered_{$plugin}", '__return_true' );

/**
* Example how a plugin can register cookies with the consent API
 * These cookies can then be shown on the front-end, to the user, with wp_get_cookie_info()
 */

function my_wordpress_register_cookies(){
    if ( function_exists( 'wp_add_cookie_info' ) ) {
        wp_add_cookie_info( 'AMP_token', 'AMP', 'marketing', __( 'Session' ), __( 'Store a unique User ID.' ) );
    }
}
add_action('plugins_loaded', 'my_wordpress_register_cookies');


if (wp_has_consent('marketing')){
//do marketing stuff
}

Якісь пропозиції щодо коду? Ми також на GitHub!

Встановлення

Щоб встановити цей плагін:

Завантажте плагін
Завантажте плагін до каталогу wp-content/plugins,
Перейдіть до розділу “Плагіни” у своєму адміністраторі WordPress, потім клацніть активувати.

Часті питання

Чи цей плагін блокує сторонні служби від розміщення файлів cookie?

Ні, цей плагін надає фреймворк, за допомогою якого плагіни можуть дізнатися, чи дозволено їм розміщувати файли cookie або відстежувати дані користувача.
Плагін потребує як плагіна управління згодою для управління згодою, так і плагіна, який слідує рівню згоди, як можна прочитати з цього API.

Як мені почати інтегрувати мій плагін?

Для кожної дії, яка розміщує файли cookie або відстежує дані користувача, вам слід розглянути, який тип відстеження відбувається. Існують 5 категорій згоди:
функціональна, статистика-анонімна, статистика, вподобання, маркетинг. Ці категорії пояснюються нижче. Ваш код повинен перевіряти, чи надано згоду на відповідну категорію. Якщо жодний плагін не активний,
апі для згоди завжди повертатиме згоду (true).
Будь ласка, перегляньте прикладний плагін та вищевказані приклади коду.

Яка різниця між категоріями згоди?

Статистика:
Файли cookie або будь-яка інша форма локального сховища, які використовуються виключно для статистичних цілей (аналітичні файли cookie).

Статистика-анонімна:
Файли cookie або будь-яка інша форма локального сховища, які використовуються виключно для анонімних статистичних цілей (анонімні аналітичні файли cookie), розміщені на домені власника та не дозволяють ідентифікувати конкретних осіб.

Маркетинг:
Файли cookie або будь-яка інша форма локального сховища, необхідні для створення профілів користувачів для відправлення реклами або відстеження користувача на веб-сайті або через веб-сайти для подібних маркетингових цілей.

Функціональність:
Файл cookie або будь-яка інша форма локального сховища використовується виключно для проведення передачі комунікації через електронну мережу зв’язку;

АБО

Технічне сховище або доступ строго необхідні для законної мети забезпечення використання конкретної послуги, яку ви виразно запросили абонент або користувач. Якщо файли cookie вимкнено, не буде доступна запитана функціональність. Це робить їх обов’язковими функціональними файлами cookie.

Вподобання:
Файли cookie або будь-яка інша форма локального сховища, яку не можна розглядати як статистику, статистику-анонімну, маркетинг або функціональну, і де технічне сховище або доступ необхідні для законної мети зберігання вподобань.

Відгуки

Для цього плагіна немає відгуків.

Учасники та розробники

“WP Consent API” — проект з відкритим вихідним кодом. В розвиток плагіну внесли свій вклад наступні учасники:

Учасники

“WP Consent API” було перекладено на 10 локалізацій. Дякуємо перекладачам за їх роботу.

Перекладіть “WP Consent API” на вашу мову.

Цікавитесь розробкою?

Перегляньте код, перегляньте сховище SVN або підпишіться на журнал розробки за допомогою RSS.

Журнал змін

1.0.7

  • протестовано до

1.0.6

  • протестовано до

1.0.5

  • протестовано до

1.0.4

  • Вдосконалення: спрацьовувати лише при події зміни, якщо фактична зміна була виявлена на згоді.

1.0.3

  • Виправлення: функція wp_has_consent містить умову, яка завжди повертає true для перевірок згоди на стороні сервера.

1.0.2

  • Виправлено документацію змінної $collected_personal_data, оскільки $is_personal_data був застарілим (props @jazzsequence, https://github.com/rlankhorst/wp-consent-level-api/issues/54)
  • Виправлено докблок, щоб він відображав фактичне значення, що повертається (props @jazzsequence, https://github.com/rlankhorst/wp-consent-level-api/issues/52)
  • Зміни стилів для статусу сайту
  • Зміни у структурі коду
  • Видалено властивість is_personal_data, оскільки вона неявно міститься у властивості personaldata
  • Зроблено фільтр для префіксу файлу cookie props @jazzsequence

1.0.1

  • Додано Cookiebot як існуючу інтеграцію
  • Деякі невеликі вдосконалення для відповідності стилям кодування WordPress

1.0.0

  • змінено consent_api_setcookie на consent_api_set_cookie для сталості найменування з методом getcookie
  • доданий префікс у методи встановлення та отримання javascript, щоб бути сумісним з файлами cookie PHP, props @phpgeek
  • видалено дубльовану категорію статистики, props @phpgeek