Bloquear registro por domínio de email no WordPress

Aviso importante!

Eu sei que você não quer ver propagandas, porém o conteúdo gratuito só está aqui graças a publicidade. Considere desativar o AdBlock para esse site.

Se você tem um blog com WordPress que permite o registro de usuários, como o RBtech, provavelmente já teve problema com spammers se registrando em seu blog para publicar todo tipo de conteúdo em comentários ou fóruns do bbPress. Em outra dica que eu dei há algum tempo atrás eu mostrei uma forma de bloquear spam dos comentários, e hoje chegou a vez de acabar com os registros de usuários fakes do seu blog.

Durante algum tempo eu observei que os spammers sempre usavam os mesmos domínios para se registrar aqui no site, mudava o nome de usuário mas o domínio era sempre o mesmo. Pois bem, o jeito foi alterar a rotina de cadastro de usuários adicionando uma verificação adicional para saber se o email usado não pertencia a tal domínio.

Com o seguinte código no meu arquivo functions.php, o problema foi resolvido:

//bloqueia registro de spammers
function rb_blockspamregister($errors, $sanitized_user_login, $user_email){
$spammer = FALSE;
if(strpos($user_email, 'sogou.com') !== FALSE) $spammer = TRUE;
if(strpos($user_email, 'yeah.net') !== FALSE) $spammer = TRUE;
if(strpos($user_email, '163.com') !== FALSE) $spammer = TRUE;

if($spammer == TRUE) $errors->add('spammer', '<strong>ERRO FATAL</strong>: Seu email esta proibido neste site por suspeita de spam!');
return $errors;
}
add_filter('registration_errors', 'rb_blockspamregister', 10, 3);

Note que aqui eu estou bloqueando 3 domínios específicos (sogou.com, yeah.net e 163.com), mas você deverá colocar os domínios conforme identificado no seu blog. Você pode ainda criar um array com todos os domínios a serem bloqueados e então fazer a verificação para identificar se o email que está sendo registrado faz parte de alguma restrição.

A flexibilidade dessa função permite que você com um pouco de lógica crie rotinas de validação muito específicas e eficientes conforme sua necessidade, mas isso fica a critério de cada um testar e implementar.

Adicionalmente você pode consultar a documentação oficial desta função diretamente no Codex.

Espero que a dica seja útil!

Sobre o autor

Ricardo Bernardi

Sou técnico em hardware e desenvolvedor web, e sobre estes dois assuntos comecei a compartilhar aulas e artigos, tornando-me blogueiro em 2008. Em 2010 esse hobby virou profissão, e desde então tenho buscado melhorar e profissionalizar cada vez mais os projetos que mantenho na web.

Comentários

Atualmente temos 1 comentário para este post. Participe você também, clique aqui e comente sobre o assunto.

Deixe seu comentário