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:
- 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ãouse_ssl
espam
; - 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;
- O valor de
user_url
não pode exceder 100 caracteres, caso contrário o usuário não será criado e será retornado0
. Isto acontece pois na tabelawp_users
a colunauser_url
é do tipovarchar(100)
; - Um usuário pode ser criado sem endereço de e-mail;
- 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' => 'nome@dominio.com.br',
];
$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' => 'nome@dominio.com.br',
];
$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' => 'nome@dominio.com.br',
'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' => 'nome@dominio.com.br5',
'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().
Deixe um comentário