Como utilizar wp_create_user() no WordPress (PHP)3 min leitura

Explicação de como utilizar a função wp_create_user() do WordPress e um exemplo prático de código PHP para criar um usuário no WordPress, verificando se o nome de usuário (username) ou e-mail já existe.

Com a função wp_create_user() você cria um usuário no WordPress de maneira simplificada. Ela possui três parâmetros:

  1. $username: nome do usuário, utilizado na hora de fazer o login – obrigatório;
  2. $password: senha – obrigatório;
  3. $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:

  1. sanitize_user(): trata um nome de usuário antes de utilizá-lo;
  2. sanitize_email(): trata um endereço de e-mail antes de utilizá-lo;
  3. wp_generate_password(): gera uma senha aleatória e segura;
  4. email_exists(): verifica se uma conta já foi registrada com o e-mail fornecido;
  5. username_exists(): verifica se uma conta já foi registrada com o usuário fornecido;
  6. get_user_by(): obtém os dados de um usuário através de um identificador como o ID;
  7. 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.

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *