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.

Similar Posts

Você tem algo construtivo sobre este texto para dizer? Então comente abaixo