Criando usuários do WordPress programaticamente
Este post é a segunda parte de uma série em que estou trabalhando que fala sobre WordPress Metadata Association, e a primeira parte disso envolve trabalhar no processo de criação programática de usuários do WordPress (mas já se passaram cinco anos!).
Já falei sobre fazer isso antes, mas as coisas mudam com o tempo à medida que ganhamos mais experiência, certo? E ao trabalhar com uma série como essa, acho que ajuda ter um conjunto de requisitos que podemos seguir, no mínimo, para simular como seria ter isso acontecendo em um projeto real.
Então, neste post em particular, vamos dar uma olhada no seguinte:
- Receber informações do usuário em um formato de dados específico,
- Identificar quais informações são necessárias para criar um usuário,
- Criando o usuário,
- Garantir que nosso código esteja de acordo com os padrões de codificação e a legibilidade.
Parece muito, embora eu não tenha a intenção de fazer um post longo. Dito isto, se isso é algo que você está procurando aprender a pensar ou como resolver, então aqui vamos nós.
Criando usuários do WordPress
Assuma que alguém – talvez um cliente ou talvez apenas você mesmo – como informação que será usada para criar um usuário. Ele precisa de pelo menos as seguintes informações:
- um nome de usuário,
- uma senha,
- um endereço de e-mail.
Quando se trata de criar um nome de usuário, costumo preferir usar o endereço de e-mail como nome de usuário também, porque é algo que garante ser exclusivo para quase todos que usam a conta.
Então, para este tutorial, é exatamente isso que vou usar. No que diz respeito à senha, falarei brevemente sobre a geração de senha.
Finalmente, você pode assumir que os dados que você tem vêm de qualquer forma: talvez em JSON, talvez em um CSV, talvez em um XML. Seja qual for o caso, cabe a você analisar essas informações em PHP para que você possa trabalhar facilmente com as informações.
Para manter as coisas simples para este post, vou assumir que temos um único registro e vamos ter as informações disponíveis em uma matriz. Isso não significa que ele começa em um array, mas significa que eventualmente o colocamos em um array.
1 Informações do usuário
Suponha que temos uma pessoa chamada "Meghan" que vamos adicionar ao sistema. Temos um endereço de e-mail e é isso.
Um exemplo de persona (renderização de artista, é claro 🙂
Mas está tudo bem. É o esqueleto do que precisamos. Então vamos pegar essas informações :
<?php
$user_info = array(
'email' => 'meghan@emaildomain.com',
'first_name' => 'Meghan',
'last_name' => 'McFarlin',
);
E transformá-lo em algo que possamos usar para criar uma conta.
2 Criando a conta
A primeira coisa que precisamos fazer é garantir que ainda não exista um usuário para este endereço de e-mail. Se isso acontecer, então simplesmente retornaremos. Você pode querer exibir uma mensagem de configurações ou algum outro tipo de informação para que o usuário final saiba que você não está criando esta conta porque ela já existe.
Mas isso está além do escopo deste post.
Em vez disso, vamos retornar :
<?php
// Read the email address - if it's - invalid or the user exists, then return.
$email = $user_info['email'];
if (! filter_var( $email, FILTER_VALIDATE_EMAIL) || username_exists( $email)) {
return;
}
Então, novamente, vamos supor que o usuário não existe. Se ela não fizer isso – o que não deveria (caso contrário, não há razão para este post 😏) – então vamos criar uma conta para ela.
Para fazer isso, precisamos de seu endereço de e-mail e uma senha. Felizmente, gerar uma senha é simples:
<?php
$password = wp_generate_password( 16, false );
Então agora podemos pegar o endereço de e-mail e a senha e criar a conta de usuário.
<?php
// Grab the email and create a password.
$email = $user_info['email'];
$password = wp_generate_password( 12, false );
// Create the user and set her role.
$user_id = wp_create_user( $email, $password, $email );
// Set the user's role (and remove the previous role).
$user = new WP_User( $user_id );
$user->set_role( 'author' );
Observe que no código acima também estamos definindo a função. A maneira de fazer isso é primeiro pegar uma instância de WP_User e, em seguida, com nosso $user_id, definir a função.
Estou optando por usar author, mas há um conjunto de outros que você pode escolher (ou usar o que estiver em sua estrutura de dados).
3 Não há mais do que isso?
E com isso, seu usuário deve ser criado. Parte disso depende muito do gancho que você usou, de como implementou isso em seu processo e da maneira como está permitindo que um administrador crie contas.
Este é um tópico mais avançado que eventualmente gostaria de abordar em um post futuro. Para manter esta série o mais direta e enxuta possível, estou tentando manter o foco nas etapas principais necessárias.
Todo o resto pode ser implementado ou vestido de acordo com o que for necessário de acordo com os requisitos do projeto.
Isso é apenas criar uma conta
No entanto, este é apenas o processamento de criar usuários do WordPress programaticamente. Na verdade, isso é apenas criar um usuário.
Para criar vários usuários, suponha que você tenha vários arrays com informações pelas quais você pode iterar e, em seguida, criar os usuários. A implementação é a mesma, embora varie de cada conta.
Com isso dito, amanhã eu vou falar sobre a criação de conteúdo de postagem de forma programática. E depois disso, falaremos sobre como relacionar um determinado usuário ao conteúdo da postagem e o que podemos fazer com isso (e também por que isso importaria).
Postagens da série
- Associação de metadados do WordPress: como fazer
- Criando usuários do WordPress programaticamente
- Tipos de postagem do WordPress: uma abstração para entidades
- Associação de Metadados do WordPress: Entidades Relacionadas
