Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the hustle domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114
Como utilizar wp_create_user() no WordPress (PHP) - Daniel Kossmann

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.



Comments

Deixe um comentário

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