
Uma coisa que não compreendo é o facto de o WordPress ainda não incluir, por defeito, um formulário de contacto simples mas completo.
Como faço regularmente trabalho de otimização do WordPress, tanto aqui como em sites de terceiros, substituo frequentemente plugins desnecessariamente inchados com opções, blocos e decorações que nunca são utilizados ou não são necessários com código para aliviar a carga.
Este formulário de contacto é uma solução completa e personalizável para WordPress, concebida para ser segura, fácil de utilizar e respeitar a privacidade do utilizador. Além disso, pode adicionar ou remover opções conforme desejar. Este é o formulário que utilizo aqui.
Estas são as suas principais funções e caraterísticas e as instruções para as adicionar a qualquer página ou publicação do seu blogue com um shortcode.
Estrutura e opções
1. campos de formulário
- Nome: Campo obrigatório para o utilizador introduzir o seu nome.
- Endereço de correio eletrónico: Campo obrigatório para o utilizador introduzir o seu endereço de correio eletrónico.
- Mensagem: Campo obrigatório para o utilizador escrever a sua mensagem. Deve ter pelo menos 15 caracteres.
- Captcha de adição: Um captcha simples que pede ao utilizador para resolver uma soma de dois números aleatórios entre 1 e 9.
- Aceitação da política de privacidade: Caixa de verificação obrigatória para aceitar a política de privacidade antes de submeter o formulário.
Validações e segurança
- Validação dos campos obrigatórios: Todos os campos são obrigatórios. Se algum estiver em falta, é apresentada uma mensagem de erro.
- Validação de hiperligações: Não são permitidas hiperligações (URLs) nos campos de nome ou mensagem.
- Captcha de adição: impede o spam automatizado, exigindo que o utilizador resolva uma operação matemática simples.
- Google reCAPTCHA (opcional): se as chaves do Google reCAPTCHA estiverem configuradas, é adicionado um segundo nível de segurança para evitar bots. Se as chaves reCAPTCHA não forem adicionadas ao código, o código não será adicionado ao formulário.
- Validação de palavras proibidas: Opcionalmente, podem ser bloqueadas palavras específicas na mensagem, por exemplo: ananás, pizza, bitcoin (separadas por vírgula e sem espaços).
- Segurança Nonce: Protege contra ataques CSRF (Cross-Site Request Forgery).
3. Privacidade
- Sem armazenamento de dados: Não são armazenados quaisquer dados do utilizador (nem e-mails, nem IPs, nem URLs de referência, nada). Esta abordagem está em conformidade com os regulamentos de privacidade, como o RGPD, uma vez que não são recolhidas ou armazenadas informações pessoais.
- Política de privacidade: Inclui uma ligação para a política de privacidade que o utilizador deve ler e aceitar antes de submeter o formulário.
4. Mensagens de feedback
- Mensagens de erro: Apresentadas num bloco na parte superior do formulário se existirem erros na validação.
- Mensagem de sucesso: Após submeter o formulário com sucesso, é apresentada uma mensagem de sucesso a verde, com um tamanho de 14px e a negrito:"Obrigado! A sua mensagem foi enviada". Pode alterar este texto e a sua formatação no código. Os restantes estilos, como o fundo amarelo, o contorno e a sombra da caixa que contém o formulário que pode ver aqui, bem como outros elementos externos, não estão incluídos no código, uma vez que são adicionados com um contentor GenerateBlocks.
5. Personalização
- Texto do Captcha: Personalizável (predefinição: "Are you human? Solve this sum:").
- Palavras proibidas: Pode ser adicionada uma lista de palavras proibidas separada por vírgulas.
- Google reCAPTCHA: Opcional, apenas adicionado se configurar e adicionar o sítio e as chaves secretas do seu captcha ao código.
6. Desempenho
O código verifica se o shortcode está presente e, se o shortcode não estiver presente, não apresenta nada, pelo que só é executado na página ou publicação onde o shortcode foi adicionado.
O desempenho onde é apresentado é ótimo.

Instruções de instalação e configuração
1. copiar e adicionar o código
- Abra o ficheiro functions.php do seu tema do WordPress (ou crie um plug-in personalizado se preferir não modificar o tema ou utilizar o Code Snippets).
- Copie e cole o código completo do formulário no seu ficheiro functions.php.
2. Configurar o Google reCAPTCHA (opcional)
- Aceder ao Google reCAPTCHA.
- Selecione reCAPTCHA v2 e selecione a caixa de verificação "I'm not a robot" (Não sou um robô).
- Registe o seu sítio Web e obtenha as chaves
:Polylang placeholder do not modify
- No código do formulário, substitua
'YOUR_SITE_KEY'e'YOUR_SECRET_KEY'pelas chaves que obteve.
3. Definir palavras proibidas (Opcional)
1 - No código do formulário, encontre a linha:
$palabras_prohibidas = ' ';2 - Adicione as palavras que pretende bloquear, separadas por vírgulas. Por exemplo:
$palabras_prohibidas = 'caca,culo,pedo,pis';Se não quiser bloquear nenhuma palavra, deixe a variável vazia.
4. Personalizar o texto do captcha da soma (Opcional)
No código do formulário, procure esta linha:
<label for="captcha">¿Eres humano? Resuelve esta suma: <strong><?php echo $num1; ?> + <?php echo $num2; ?> = </strong></label>Altera o texto "Are you human? Resolve esta soma:" com o texto que queres mostrar.
5. Adicione o URL da sua política de privacidade
Nesta linha, substitua o url de exemplo pelo URL da política de privacidade do seu sítio:
$politica_privacidad_url = 'https://tuweb.com/declaracion-de-privacidad/';6. Código curto
Adicione o shortcode à página ou ao post onde pretende que o formulário seja apresentado.
[formulario_contacto]Por fim, basta testá-lo para verificar se os e-mails são enviados e chegam e observar a sua utilização para evitar que os implacáveis spammers se esgueirem, complicando o captcha matemático e/ou activando ambos os captchas ao mesmo tempo. O código pode sempre ser melhorado e pode ser depurado e optimizado. Pode também traduzi-lo se precisar de o utilizar noutra língua.
Se eu fizer alterações ou melhorias no código em função do resultado, acrescentarei as notas aqui.
Pode encontrar o código completo na página 2






