Com a função wp_create_user() você cria um usuário no WordPress de maneira simplificada. Ela possui três parâmetros:
- $username: nome do usuário, utilizado na hora de fazer o login – obrigatório;
- $password: senha – obrigatório;
- $email: e-mail do usuário – opcional.
Veja abaixo dois exemplos de como utilizá-la:
<?php
// Criando usuário SEM especificar um e-mail
$usuario = "Daniel Kossmann";
$senha = "s3nH4-[mu1T0~sEgUr4)";
wp_create_user( $usuario, $senha );
// Criando usuário
$usuario = "Daniel Kossmann";
$senha = "s3nH4-[mu1T0~sEgUr4)";
$email = "nome@dominio.com.br"
wp_create_user( $usuario, $senha, $email );
Code language: PHP (php)
Como criar um usuário no WordPress, verificando se o nome de usuário (username) ou e-mail já existe no WordPress
Um possível uso da função PHP wp_create_user() é criar um usuário depois de verificar se já não existem o usuário ou e-mail fornecidos, assim como se não ocorreu nenhum outro erro. Veja abaixo como ficou o código:
<?php
// Trata os dados recebidos de um formulário
$usuario = sanitize_user( $usuario_recebido_de_formulario );
$email = sanitize_email( $email_recebido_de_formulario );
// Gera uma senha aleatória
$senha = wp_generate_password();
// Verifica se o e-mail já foi registrado
if ( ! email_exists( $email ) ) {
// Verifica se o usuário já foi registrado
if ( ! username_exists( $usuario ) ) {
// Cria uma nova conta
$nova_conta = wp_create_user( $usuario, $senha, $email );
// Verifica se houve algum erro na criação da conta
if ( ! is_wp_error( $nova_conta ) ) {
// Pega as informações do usuário criado a partir do seu ID
$usuario_criado = get_user_by( 'id', $nova_conta );
// Exibe as informações de forma que o conteúdo seja traduzível
printf(
__( 'Usuário criado com o ID=%d criado em %s.', 'danielkossmann' ),
$usuario_criado->ID,
$usuario_criado->user_registered
);
} else {
$erro = $nova_conta->get_error_message();
// Exibe as informações de forma que o conteúdo seja traduzível
printf(
__( 'Ocorreu o seguinte erro ao tentar criar o usuário: %s', 'danielkossmann' ),
$erro
);
}
} else {
// Exibe as informações de forma que o conteúdo seja traduzível
printf(
__( 'O usuário "%s" já foi registrado.', 'danielkossmann' ),
$usuario
);
}
} else {
// Exibe as informações de forma que o conteúdo seja traduzível
printf(
__( 'O e-mail "%s" já foi registrado.', 'danielkossmann' ),
$email
);
}
Code language: PHP (php)
O código acima também utiliza as seguintes funções:
- sanitize_user(): trata um nome de usuário antes de utilizá-lo;
- sanitize_email(): trata um endereço de e-mail antes de utilizá-lo;
- wp_generate_password(): gera uma senha aleatória e segura;
- email_exists(): verifica se uma conta já foi registrada com o e-mail fornecido;
- username_exists(): verifica se uma conta já foi registrada com o usuário fornecido;
- get_user_by(): obtém os dados de um usuário através de um identificador como o ID;
- is_wp_error(): verifica se houve algum erro no retorno de uma função do WordPress.
No código de exemplo criado, a função is_wp_error() também identifica se a conta não foi criada porque já existia um e-mail ou usuário com o mesmo nome cadastrado, mas decidi fazer uma verificação separada com email_exists() e username_exists() como um exemplo de como poderia ser feita esta validação.
Deixe um comentário