O WordPress gera alguns cookies de sessão que, embora não armazenem dados pessoais ou sensíveis, permanecem no navegador do usuário que esteve logado ao website por qualquer razão. À luz do novo regulamento do RGPD, tal permanência de cookies é indesejável, além de tecnicamente desnecessária.
Contudo, como livrar-se desses cookies de forma automatizada? A seguir explicamos como utilizar uma solução em código simples para tal.
A solução passa por duas etapas:
- Primeiro, utiliza-se a “hook”
wp-logout
para acionar a função sempre que o usuário efetuar a saída do sistema. A função usasetcookie
para deletar todos os cookies gerados a partir do domínio do website. - No segundo passo, o redirecionamento é feito para a página inicial do website e não mais para o login do WordPress, que seria o redirecionamento padrão. Isto porque a página de login geraria um novo cookie.
add_action('wp_logout', function () {
array_map(function ($k) {
setcookie($k, FALSE, time()-YEAR_IN_SECONDS, '', COOKIE_DOMAIN);
}, array_keys($_COOKIE));
// Redireciona para o 'siteurl' ao invés do ecrã de login
// o URL de login geraria um novo cookie
header('Location: '.get_option('siteurl'));
exit();
}, 99999);
O código pode ser utilizado em qualquer tema ou plugin para gerar o efeito. De forma mais recomendável, deve-se utilizar o código no ficheiro functions.php
de um tema filho ou em um plugin customizado, para evitar que seja apagado em atualizações.