Como utilizar wp_insert_user() no WordPress (PHP)4 min leitura

Explicação de como utilizar a função wp_insert_user() do WordPress, com exemplos práticos de códigos em PHP. Veja também qual é a sua diferença em relação à função wp_create_user().

Com a função wp_insert_user() você adiciona um usuário no WordPress. Ela possui apenas um parâmetro ($userdata) que pode ser: um array, um objeto ou objeto WP_User com os dados do usuário. Veja abaixo um modelo desta estrutura de dados com detalhes de cada uma das suas chaves:

<?php $dados_usuario = [ 'user_pass' => '', // (string) Senha do usuário no formato texto (será criptografada depois). 'user_login' => '', // (string) O nome de usuário. 'user_nicename' => '', // (string) O nome de usuário amigável para URLs. Veja sanitize_user(). 'user_url' => '', // (string) O endereço do site (URL) do usuário, com até 100 caracteres. 'user_email' => '', // (string) O e-mail do usuário. 'display_name' => '', // (string) O nome do usuário a ser exibido. Padrão é: user_login. 'nickname' => '', // (string) Apelido do usuário. Padrão é: user_login. 'first_name' => '', // (string) Primeiro nome do usuário. 'last_name' => '', // (string) Sobrenome do usuário. 'description' => '', // (string) Biografia do usuário. 'rich_editing' => 'true', // (string) Habilita editor rico para o usuário. Padrão é: 'true'. 'syntax_highlighting' => 'true', // (string) Habilita editor rico de código para o usuário. Padrão é: 'true'. 'comment_shortcuts' => 'false', // (string) Habilita atalhos de teclado para moderação de comentários. Padrão é: 'false'. 'admin_color' => 'fresh', // (string) Paleta de cores da área administrativa. Padrão é: 'fresh'. 'use_ssl' => false, // (bool) Usuário deve sempre acessar a área administrativa com HTTPS. Padrão é: false. 'user_registered' => '', // (string) Data de registro do usuário no formato: 'Y-m-d H:i:s'. 'user_activation_key' => '', // (string) Chave para resetar a senha. Padrão é: vazio. 'spam' => '', // (bool) Diferente de vazio somente para multisite, diz se o usuário foi marcado como spam. Padrão é: false. 'show_admin_bar_front' => 'true', // (string) Exibe a barra administrativa fixa no topo do site. Padrão é: 'true'. 'role' => '', // (string) Função do usuário. 'locale' => '', // (string) Locale do usuário. 'meta_input' => [], // (array) [ 'chave' => 'valor' ] ];
Code language: PHP (php)

Algumas informações importantes:

  1. Várias opções possuem valores booleanos entre aspas, como 'true' ou 'false', por serem strings. As duas únicas opções que recebem valores booleanos puros são use_ssl e spam;
  2. Apesar de ser possível atualizar as informações de um usuário se você especificar um ID, alguns efeitos colaterais podem acontecer se os parâmetros corretos não forem informados, por isso é mais recomendado utilizar a função wp_update_user() para a atualização de dados. Por este motivo não adicionei este parâmetro no modelo acima;
  3. O valor de user_url não pode exceder 100 caracteres, caso contrário o usuário não será criado e será retornado 0. Isto acontece pois na tabela wp_users a coluna user_url é do tipo varchar(100);
  4. Um usuário pode ser criado sem endereço de e-mail;
  5. A documentação de Roles and Capabilities explica mais sobre os diferentes valores para 'role'.

Exemplos de como utilizar a função wp_insert_user()

Veja abaixo cinco exemplos de uso, com comentários sobre cada um:

<?php // Para criar um usuário, o único campo obrigatório da função é o nome de usuário $dados_usuario = [ 'user_login' => 'Daniel Kossmann', ]; $adicao_usuario = wp_insert_user( $dados_usuario ); // Criando um usuário com login e e-mail. A senha será gerada automaticamente. $dados_usuario = [ 'user_login' => 'Daniel Kossmann', 'user_email' => '[email protected]', ]; $adicao_usuario = wp_insert_user( $dados_usuario ); // Criando um usuário com senha, login e e-mail. $dados_usuario = [ 'user_pass' => 's3nH4-[mu1T0~sEgUr4)', 'user_login' => 'Daniel Kossmann', 'user_email' => '[email protected]', ]; $adicao_usuario = wp_insert_user( $dados_usuario ); // Criando um novo usuário administrador. $dados_usuario = [ 'user_pass' => 's3nH4-[mu1T0~sEgUr4)', 'user_login' => 'Daniel Kossmann', 'user_email' => '[email protected]', 'role' => 'administrator', ]; $adicao_usuario = wp_insert_user( $dados_usuario ); // Criando um novo usuário como editor, informando mais dados $dados_usuario = [ 'user_pass' => 's3nH4-[mu1T0~sEgUr4)', 'user_login' => 'Daniel Kossmann5', 'user_nicename' => 'daniel-kossmann5', 'user_url' => 'https://www.danielkossmann.com', 'user_email' => '[email protected]', 'display_name' => 'Daniel Kossmann', 'nickname' => 'Kossmann', 'first_name' => 'Daniel', 'last_name' => 'Kossmann', 'description' => 'Apaixonado por WordPress e criador da newsletter PainelWP.', 'show_admin_bar_front' => 'false', // Desabilita barra de admin fixa 'role' => 'editor', 'locale' => 'pt_BR', ]; $adicao_usuario = wp_insert_user( $dados_usuario );
Code language: PHP (php)

Aviso importante: Estes códigos foram criados apenas para fins didáticos, por isso nem sempre possuem todas as melhores práticas de segurança e otimizações necessárias. Portando, não me responsabilizo pelo seu uso em qualquer tipo de ambiente ou dou qualquer tipo de garantia para eles. Se você desejar utilizá-los será por sua própria conta e risco.

Qual a diferença entre wp_insert_user() e wp_create_user()?

A principal diferença entre wp_insert_user() e wp_create_user() é a possibilidade de especificar mais informações sobre o usuário na primeira, enquanto na segunda só é permitido especificar três informações: nome de usuário, senha e e-mail.

Como a função wp_create_user() utiliza internamente a função wp_insert_user() para a criação do usuário, posso dizer que a wp_create_user() é uma abstração simplificada da função wp_insert_user().

Similar Posts

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