# Como corrigir o erro de conformidade GDPR no WPForms

O WPForms GDPR checkbox não aparece quando a opção GDPR Enhancements esta desativada nas configurações do plugin: sem ela, o campo GDPR Agreement fica oculto no construtor e o consentimento não e coletado nem registrado na entrada.

## O que é erro de conformidade GDPR no WPForms?

O WPForms GDPR checkbox e o campo GDPR Agreement, uma caixa de consentimento obrigatoria que o visitante precisa marcar antes de enviar o formulário para autorizar o tratamento dos seus dados. Ele so fica disponível no construtor depois que você ativa o recurso GDPR Enhancements nas configurações globais do WPForms. Esse recurso também desliga o armazenamento de informações pessoais que o plugin coleta por padrão, como endereco de IP e dados do navegador (user agent), e impede a gravacao do cookie de rastreamento usado por addons como Form Abandonment e Geolocation.

O erro de conformidade aparece de duas formas tipicas: o campo GDPR Agreement não surge na lista de campos do construtor, porque o GDPR Enhancements continua desmarcado; ou o formulário salva IP, navegador e cookies do visitante mesmo você achando que já esta em conformidade, porque o recurso foi ativado apenas no formulário novo e não reaplicado nos antigos. Em ambos os casos o consentimento exigido pela legislacao de proteção de dados não e coletado nem comprovado na entrada.

## Como identificar

- O campo 'GDPR Agreement' não aparece na aba 'Campos Padrão' ('Standard Fields') do construtor de formulários, mesmo procurando pelo nome.
- As entradas salvas continuam exibindo o endereco de IP e o navegador (User Agent) do visitante na tela de detalhes da entrada.
- O formulário envia normalmente, mas não ha nenhum registro de consentimento marcado na entrada, deixando a coleta de dados sem comprovacao.
- Ao tentar adicionar o consentimento, so existe um campo Checkboxes genérico, sem a opção específica de GDPR Agreement.
- Uma auditoria de cookies acusa o cookie de rastreamento do WPForms ('wpforms_started_*') sendo gravado antes de qualquer consentimento.

**Antes de começar:** Antes de marcar 'Disable storing entry information', lembre-se de que essa opção apaga o registro das entradas no banco: faca um backup e exporte as entradas existentes que precisar guardar, ou teste primeiro em um ambiente de staging para não perder dados de consentimento já coletados.

## Como prevenir

- Ative o GDPR Enhancements logo na configuração inicial do WPForms, antes de criar os formulários, para que todo formulário novo já nasca com o campo de consentimento disponível.
- Padronize um modelo de formulário com o campo GDPR Agreement, IP e cookies desativados e use-o como base para não esquecer o consentimento em formulários futuros.
- Revise os formulários antigos depois de ligar o GDPR Enhancements, adicionando manualmente o campo de consentimento que eles ainda não possuem.
- Inclua o WPForms na rotina de revisao de cookies e privacidade do site, conferindo periodicamente se nenhum cookie ou dado pessoal e gravado antes do consentimento.

Erros relacionados

- [Como corrigir entradas que não salvam no banco de dados no WPForms](https://full.services/wp-fixer/corrigir-entries-nao-salvam-wpforms/)
- [Como corrigir o spam no WPForms mesmo com reCAPTCHA ativo](https://full.services/wp-fixer/corrigir-spam-wpforms/)
- [Como corrigir o erro de redirecionamento após envio no WPForms](https://full.services/wp-fixer/corrigir-redirecionamento-wpforms/)

## Causa

- A opção 'GDPR Enhancements' em WPForms -> Configurações -> Geral esta desmarcada; enquanto ela permanece desativada, o WPForms não exibe o campo GDPR Agreement na lista de campos do construtor.
- O recurso GDPR Enhancements foi ligado depois que os formulários já existiam, entao os formulários antigos continuam sem o campo de consentimento e ainda gravam IP, navegador e cookie do visitante.
- A opção por formulário 'Disable storing entry information' (em Configurações -> Geral do próprio formulário) esta marcada, fazendo o formulário não salvar a entrada e, com ela, o registro do consentimento dado.
- As opções de privacidade 'Disable User Cookies' e 'Disable User Details' (IP e User Agent) não foram marcadas no formulário, entao ele continua coletando dados pessoais mesmo com o campo de consentimento presente.
- Um cache de página (WP Rocket ou similar) serviu a versão antiga do formulário, ainda sem o campo GDPR Agreement, depois que ele foi adicionado no construtor.

## Como resolver

1. Ative o GDPR Enhancements nas configurações globais: Esse e o passo que libera o campo de consentimento. Enquanto o GDPR Enhancements estiver desmarcado, o campo GDPR Agreement não aparece em nenhum formulário. Ativar essa opção também passa a impedir, por padrão, o armazenamento de IP, navegador e cookie de rastreamento.

```
Painel WP -> WPForms -> Configurações -> aba Geral
Marque a opção 'GDPR Enhancements' e clique em Salvar configurações
```

2. Adicione o campo GDPR Agreement ao formulário: Com o GDPR Enhancements ativo, abra o formulário no construtor e arraste o campo GDPR Agreement, que agora aparece entre os campos padrão, para o final do formulário, logo antes do botão de envio. O texto desse campo deve explicar o consentimento que o visitante esta dando.

```
Painel WP -> WPForms -> Todos os formulários -> abra o formulário (Editar)
No painel de campos, arraste 'GDPR Agreement' para perto do botão Enviar
Edite o texto do campo para descrever o consentimento e clique em Salvar
```

3. Desligue o armazenamento de IP, navegador e cookies do formulário: Dentro do construtor do formulário, abra Configurações -> Geral e ative as opções de privacidade para o WPForms parar de coletar e salvar dados pessoais que você não precisa guardar. Isso reduz o volume de dados sensiveis armazenados na entrada.

```
No construtor: Configurações -> Geral
Marque 'Disable storing user details (IP address and user agent)'
Marque 'Disable user cookies' e clique em Salvar
```

4. Decida se vai desativar o armazenamento da entrada: A opção 'Disable storing entry information' faz o WPForms não salvar nenhuma entrada no banco. Se você so quer receber os dados por e-mail, ative; se precisa comprovar o consentimento, deixe desativada para que o registro do campo GDPR Agreement marcado fique salvo na entrada.

```
No construtor: Configurações -> Geral
Avalie a opção 'Disable storing entry information' conforme sua necessidade
Para comprovar consentimento, mantenha-a desmarcada e clique em Salvar
```

5. Limpe o cache e teste o envio: Se o campo de consentimento ainda não aparecer na página pública, o problema costuma ser cache servindo a versão antiga do formulário. Limpe o cache do site e o do navegador, recarregue a página e faca um envio de teste para confirmar que o consentimento e exigido e registrado.

```
Limpe o cache do plugin de cache (ex.: WP Rocket -> Limpar cache)
Recarregue a página do formulário com o cache do navegador limpo
Faca um envio de teste e confira o consentimento registrado na entrada
```


## Código

```php
<?php
/**
 * Remove o IP e o User Agent das entradas do WPForms antes de salvar,
 * reforcando a privacidade mesmo em formularios sem GDPR Enhancements por formulario.
 * Cole no functions.php do tema filho ou num plugin de snippets.
 */
add_filter( 'wpforms_process_filter', 'full_wpforms_anonimiza_entrada', 10, 3 );
function full_wpforms_anonimiza_entrada( $fields, $entry, $form_data ) {
    // Zera os dados pessoais que o WPForms coleta por padrao.
    $_SERVER['REMOTE_ADDR']     = '';
    $_SERVER['HTTP_USER_AGENT'] = '';
    return $fields;
}
```

## Perguntas frequentes

### Por que o campo GDPR Agreement não aparece no construtor do WPForms

Porque a opção GDPR Enhancements esta desativada. Va em WPForms -> Configurações -> Geral, marque GDPR Enhancements e salve. So depois disso o campo GDPR Agreement passa a aparecer na lista de campos do construtor de formulários.

### O que o GDPR Enhancements faz além de liberar o campo de consentimento

Além de habilitar o campo GDPR Agreement, ele passa a impedir, por padrão, o armazenamento do endereco de IP e do navegador do visitante e a gravacao do cookie de rastreamento usado por addons como Form Abandonment e Geolocation, reduzindo a coleta de dados pessoais.

### Posso deixar a caixa de consentimento já marcada para o visitante

Não e recomendado. O consentimento valido sob a GDPR precisa ser uma acao ativa do visitante, entao o campo GDPR Agreement funciona como uma caixa obrigatoria que ele mesmo precisa marcar para conseguir enviar o formulário.

### Como faco o WPForms parar de salvar o IP e o navegador nas entradas

No construtor do formulário, abra Configurações -> Geral e marque as opções para desativar o armazenamento dos detalhes do usuário (IP e user agent) e dos cookies. Assim o formulário para de gravar esses dados pessoais nas entradas.

### Ativar o GDPR Enhancements aplica a conformidade nos formulários antigos

Não automaticamente. Ligar o recurso libera os ajustes, mas os formulários criados antes continuam sem o campo de consentimento. Você precisa abrir cada formulário antigo e adicionar o campo GDPR Agreement manualmente.

### Devo ativar a opção de desativar o armazenamento das entradas

Depende. Se você so usa as notificações por e-mail, pode ativar para não guardar dados no banco. Mas se precisa comprovar que o visitante consentiu, mantenha o armazenamento de entradas ligado para preservar o registro do campo GDPR Agreement marcado.

### O campo de consentimento aparece no editor mas não na página pública

Quase sempre e cache servindo a versão antiga do formulário. Limpe o cache do plugin de cache e do navegador, recarregue a página e teste de novo. Se persistir, confirme que você salvou o formulário depois de adicionar o campo.

**Fonte:** [WPForms Documentation — How to Create GDPR Compliant Forms](https://wpforms.com/docs/how-to-create-gdpr-compliant-forms/)
