Veja como permitir apenas o cadastro de membros que possuem um domínio no endereço de e-mail. Esse recurso é extremamente útil para criar uma área de membros com acesso restrito a usuários de uma determinada empresa ou instituição.
O WordPress é extremamente versátil e ninguém tem dúvidas disso. Além de ser possível criar sites, lojas virtuais e fóruns, o WP também pode ser usado para criar sites com acesso limitado para funcionários de uma empresa ou estudantes de uma determinada instituição de ensino.
Uma das formas de limitar o acesso é impedir quem não possui um endereço de e-mail da organização de realizar o cadastro no WordPress. Desta forma, apenas os usuários que possuem um e-mail do tipo “joão@minhaempresa.com.br” poderá realizar o cadastro e acessar a área de membros privada.
Ao unir esse recurso com a publicação de posts privados (acessíveis somente por usuários logados) é possível criar um site com área exclusiva para membros da organização usando apenas os recursos nativos do WordPress e o código abaixo.
Como permitir apenas cadastros de um domínio de e-mail
O jeito mais fácil de realizar a validação do endereço de e-mail é inserir no arquivo functions.php do seu tema o código:
function allow_domains_in_registration($errors, $sanitized_user_login, $user_email){
$allowed = false;
$allowed_domains = [
'minhaempresa.com', //Domínio liberado 1
'minhaempresa.com.br', //Domínio liberado 2
];
$user_domain = substr($user_email, strpos($user_email, '@') + 1);
foreach ( $allowed_domains as $domain_allowed ) {
if ( $user_domain == $domain_allowed ) {
$allowed = true;
}
}
if ( !$allowed ) {
$errors->add('not_allowed', '<strong>ERRO FATAL</strong>: Serviço de e-mail informado não é permitido para cadastro!');
}
return $errors;
}
add_filter('registration_errors', 'allow_domains_in_registration', 10, 3);
É preciso alterar a lista de domínios permitidos no cadastro de membros do WordPress. Você deve informar os domínios de e-mail que podem ser usados no cadastro do WP.
Este tipo de validação é importante para manter a segurança e evitar que pessoas não autorizadas tenham acesso a áreas protegidas do site.
Com a validação de e-mails personalizados é possível criar um ambiente com informações protegidas de olhares de curiosos. O procedimento de validar e-mail para liberar o cadastro também pode ser utilizado como parte de uma política de segurança muito eficaz.
Como permitir apenas cadastros de um domínio de e-mail usando plugin
Para quem busca uma solução que não envolve a digitação de código poderá recorrer ao plugin Restrict New Users by Domain. Eu testei no WordPress 5.5.1 e ele se mostrou bastante simples e eficiente tanto para bloqueio de um determinado domínio quanto para permitir apenas o cadastro usando um domínio de e-mail.
Para realizar bloqueio ou liberação de endereço de e-mail siga os passos abaixo:
- Instale o plugin Restrict New Users by Domain
- Vá em “Configurações” > “Restrict New Users by Domain”
- Para liberar apenas cadastros de determinados domínios preencha o campo “Whitelist Domains” com os nomes de domínios desejados.
- Para bloquear um domínio o informe no campo “Blacklist Domains”
- No campo “Custom Error Message” digite a mensagem de erro que será exibida na página de cadastro de usuários.
- Clique em “Save changes” para gravar as alterações
Pronto! O plugin acima faz o mesmo que o código informado anteriormente e ainda tem a opção de criar uma blacklist de domínios que podem ser usados no cadastro de membros do WordPress.