Descrição
WP Consent API é um plugin que padroniza a comunicação entre plugins acerca de informações de categorias de consentimento aceitas. Ele requer um plugin de aviso de cookies e, pelo menos, um outro plugin que seja compatível com a WP Consent API.
Com este plugin, todos os plugins compatíveis podem usar o mesmo conjunto de métodos para ler e registrar a categoria de consentimento atual, permitindo que plugins de gestão de consentimento e outros plugins trabalhem juntos, melhorando a conformidade com as leis de privacidade.
ATENÇÃO: este plugin em si não gere o consentimento do usuário. Ele irá mostrar quantos plugins sem suporte à API de consentimento você tem e irá aprimorar a conformidade em seu site, ao garantir uma comunicação adequada entre plugins de aviso de cookies e plugins que definem cookies ou rastreiam dados do usuário.
Que problema este plugin resolve?
No momento, é possível que um plugin de gerenciamento de consentimento bloqueie serviços de terceiros como Facebook, Google Maps, Twitter etc. No entanto, se um plugin do WordPress instalar um cookie PHP, um plugin de gerenciamento de consentimento não poderá impedir isso.
Em segundo lugar, alguns plugins integram o código de rastreamento no lado do cliente em arquivos javascript que, quando bloqueados, quebram o site.
Ou se o javascript de tal plugin estiver minimizado, fazendo com que o URL fique irreconhecível e não seja detectado por um script de bloqueio automático.
Por fim, a abordagem de bloqueio requer uma lista de todos os tipos de URLs que coletam dados. Uma API genérica a qual os plugins possam consultar pode facilitar muito
o trabalho de um webmaster em ter um site em conformidade.
O uso desta API impede que serviços de terceiros rastreiem dados do usuário?
Em primeiro lugar, esta API é voltada para cookies primários ou rastreamento por plugins do WordPress. Se tal plugin acionar, por exemplo, o Facebook,
o uso desta API será útil. Se um usuário incorporar um iframe do Facebook, uma ferramenta de bloqueio é necessária para desabilitar inicialmente o iframe e/ou scripts.
Scripts de terceiros precisam ser bloqueados por um plugin de gestão de consentimento que desative suas funcionalidades. Fazer isso no núcleo do WordPress seria muito intrusivo e também não é aplicável a todos os usuários: apenas visitantes de regiões regulamentadas, como a União Europeia e o Brasil, precisam desse recurso. Tal bloqueio também tem o risco de bagunçar coisas. Ademais, bloqueá-los e mostrar um belo conteúdo de marcação requer um código ainda mais sofisticado, e tudo isso, na minha opinião, não deveria fazer parte do núcleo do WordPress, pelas mesmas razões.
Como isso funciona?
Existem dois indicadores que juntos dizem se o consentimento é dado para uma categoria de consentimento específica, por exemplo, “marketing”:
1) o consent_type baseado na região, que
pode ser opt-in, opt-out ou outros possíveis consent_types;
2) e a escolha do visitante: não definir, permitir ou negar.
O consent_type é uma função que encapsula um filtro, “wp_get_consent_type”. Se não houver um plugin de gestão de consentimento para defini-lo, ele retornará falso. Isso fará com que todas as categorias de consentimento retornem verdadeiro, permitindo que cookies sejam definidos em todas as categorias.
Se o “opt-in” for definido usando este filtro, uma categoria só retornará verdadeiro se o valor da escolha do visitante for “permitir”.
Se o consent_type baseado em região for “opt-out”, irá retornar verdadeiro se a escolha do visitante não estiver definida ou for “permitir”.
No lado do cliente, um plugin de gestão de consentimento pode manipular dinamicamente o tipo de consentimento e definir diversas categorias de cookies.
Um plugin pode usar um gancho para monitorar alterações ou verificar o valor de uma determinada categoria.
Categorias e muitas outras coisas podem ser estendidas com um filtro.
Integrações existentes
Categorizado e classificado alfabeticamente
Plugin de exemplo
- Exemplo de plugin. O plugin consiste basicamente em um
shortcode
, com uma DIV que mostra uma mensagem de rastreamento ou não rastreamento. Nenhum rastreamento real é feito 🙂
Provedores de gerenciamento de consentimento
- Beautiful Cookie Consent Banner.
- Complianz GDPR/CCPA.
- Consent Studio.
- Conzent.
- Cookiebot.
- CookieHub.
- CookieYes – Cookie Banner for Cookie Consent.
- GDPR Cookie Compliance.
- GDPR Cookie Consent Plugin – CCPA Ready.
- Pressidium Cookie Consent.
Plugins de requisição de consentimento
- AddToAny.
- AFL UTM Tracker Plugin.
- Burst Statistics.
- Google Site Kit.
- Pixel Manager for WooCommerce.
- Woo.
- WP Statistics.
Site de demonstração
wpconsentapi.org
Seguem os plugins usados para montar o site de demonstração:
- Complianz
- Plugin de exemplo
javascript, plugin de gestão de consentimento
//set consent type
window.wp_consent_type = 'optin'
//dispatch event when consent type is defined. This is useful if the region is detected server side, so the consent type is defined later during the pageload
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, plugin de rastreamento
//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 compliance 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
}
Alguma sugestão de código? Estamos no GitHub também!
Instalação
Para instalar o plugin:
Baixe o plugin
Envie o plugin para a pasta wp-content/plugins,
Vá em “Plugins” no seu painel administrativo do WordPress, então clique em Ativar.
Perguntas frequentes
-
Não, este plugin fornece uma estrutura por meio da qual os plugins podem saber se têm permissão para instalar cookies ou rastrear dados do usuário.
O plugin requer tanto um plugin de gestão de consentimento para gerir o consentimento do usuário, quanto um plugin que monitore o nível de consentimento conforme os padrões da API. -
O que devo fazer para integrar meu plugin?
-
Para cada ação que instala cookies ou rastreia dados do usuário, você deve considerar que tipo de rastreamento ocorre. Existem 5 categorias de consentimento:
funcional, estatísticas-anônimas, estatísticas, preferências, marketing. Elas são explicadas abaixo. Seu código deve verificar se o consentimento foi dado para a categoria em questão. Se nenhum plugin de aviso de cookies estiver ativo,
a Consent API sempre irá retornar com consentimento do usuário (verdadeiro).
Por favor, confira o plugin de exemplo e os exemplos de código acima. -
Qual é a diferença entre as categorias de consentimento?
-
Estatísticas:
Cookies ou qualquer outra forma de armazenamento local que sejam usados exclusivamente para fins estatísticos (Cookies de Análise).Estatísticas-anônimas:
Cookies ou qualquer outra forma de armazenamento local que são usados exclusivamente para fins estatísticos anônimos (Cookies de Análise Anônima), que são colocados em um domínio primário e que não permitem a identificação de indivíduos em particular.Marketing:
Cookies ou qualquer outra forma de armazenamento local necessária para criar perfis de usuário para enviar publicidade ou rastrear o usuário em um site ou em sites para fins semelhantes de marketing.Funcional:
O cookie ou qualquer outra forma de armazenamento local é usada com o único propósito de realizar a transmissão de uma comunicação por uma rede de comunicações eletrônicas;OU
O acesso ou armazenamento técnico é estritamente necessário para o propósito legítimo de ativar o uso de um serviço específico explicitamente solicitado pelo assinante ou usuário. Se os cookies forem desabilitados, a funcionalidade solicitada não estará disponível. Isso os torna cookies funcionais essenciais.
Preferências:
Cookies ou qualquer outra forma de armazenamento local que não possa ser vista como estatística, estatística-anônima, marketing ou funcional, e onde o armazenamento técnico ou acesso seja necessário para o propósito legítimo de armazenar preferências do usuário.
Avaliações
Colaboradores e desenvolvedores
“WP Consent API” é um programa de código aberto. As seguintes pessoas contribuíram para este plugin.
ColaboradoresWP Consent API” foi traduzido para 18 localidades. Agradecemos aos tradutores por suas contribuições.
Traduzir o “WP Consent API” para seu idioma.
Interessado no desenvolvimento?
Navegue pelo código, consulte o repositório SVN ou assine o registro de desenvolvimento por RSS.
Registro de alterações
1.0.8
- “Testado até” atualizado
- Deixa de carregar traduções e plugin_data para evitar avisos de carregamento de traduções pelo WordPress 6.7, agradecimentos a @mujuonly
- Removida a função obsoleta wp_has_cookie_info, agradecimentos a @szepeviktor
1.0.7
- Testado até
1.0.7
- Testado até
1.0.6
- Testado até
1.0.5
- testado até
1.0.4
- Melhoria: disparar em evento de alteração somente se uma alteração real for detectada no consentimento.
1.0.3
- Correção: a função wp_has_consent continha uma condição que fazia com que ela sempre retornasse verdadeiro nas verificações de consentimento “optin” do lado do servidor.
1.0.2
- Corrige a documentação $collected_personal_data, pois $is_personal_data está obsoleta (agradecimentos a @jazzsequence, https://github.com/rlankhorst/wp-consent-level-api/issues/54)
- Corrige o docblock para que ele reflita o valor real retornado (agradecimentos a @jazzsequence, https://github.com/rlankhorst/wp-consent-level-api/issues/52)
- Mudanças de estilo no Diagnóstico do site
- Alterações na estrutura do código
- Removida a propriedade is_personal_data, pois ela está implicitamente contida na propriedade personaldata
- Permite que se criem filtros para prefixos de cookies, agradecimentos a @jazzsequence
1.0.1
- Cookiebot adicionado como integração existente
- Algumas pequenas melhorias para estar de acordo com os estilos de programação do WordPress
1.0.0
- alterado
consent_api_setcookie para consent_api_set_cookie
para manter a consistência de nomenclatura com o métodogetcookie
- adicionado prefixos nos métodos SET e GET do Javascript, para ser compatível com cookies PHP, agradecimentos a @phpgeek
- removida a categoria de estatísticas em duplicata, agradecimentos a @phpgeek