Como utilizar get_user_by() no WordPress (PHP)2 min leitura

Explicação de como utilizar a função PHP get_user_by() do WordPress e um exemplo prático de código para obter o ID de um usuário através do seu e-mail (ou vice-versa).

Com a função PHP get_user_by() você obtém as informações de um usuário do WordPress a partir de algum dos seus dados. Ela possui dois parâmetros:

  1. $field: nome do campo utilizado para obter os dados do usuário – obrigatório. Opções de nomes: id, slug, email ou login;
  2. $value: valor para ser buscado em $field – obrigatório;

Seguem abaixo alguns exemplos de uso:

<?php
// Pelo e-mail
$usuario = get_user_by( 'email', 'usuario@danielkossmann.com' );

// Pelo id (ou ID)
$usuario = get_user_by( 'id', 1 );

// Pelo nome de usuário (user_login)
$usuario = get_user_by( 'login', 'Daniel Kossmann' );

// Pelo user_nicename (versão "slug" do nome de usuário)
$usuario = get_user_by( 'slug', 'daniel-kossmann' );Code language: PHP (php)

Veja abaixo um exemplo de resultado do valor retornado pela função:

WP_User Object(
    [data] => stdClass Object(
        [ID] => 4
        [user_login] => Daniel Kossmann
        [user_pass] => $P$BZRUfiVxJYFZKpmukkHTL8Jz/xR9ff1
        [user_nicename] => daniel-kossmann
        [user_email] => usuario@danielkossmann.com
        [user_url] => 
        [user_registered] => 2022-01-04 23:16:12
        [user_activation_key] => 1641338172:$P$BcqY.LJ3.G6H6hS5X0Q5BRzrlU5JL/1
        [user_status] => 0
        [display_name] => Daniel Kossmann
    )  

    [ID] => 4
    [caps] => Array(
        [subscriber] => 1
    )

    [cap_key] => wp_capabilities
    [roles] => Array(
        [0] => subscriber
    )

    [allcaps] => Array(
        [read] => 1
        [level_0] => 1
        [subscriber] => 1
    )

    [filter] => 
    [site_id:WP_User:private] => 1
)Code language: PHP (php)

Obtendo o ID de um usuário através do seu e-mail (ou viceversa) no WordPress

Um possível uso da função PHP get_user_by() é para obter o ID de um usuário a partir do seu e-mail. Veja abaixo como ficou o código:

<?php
$usuario_email = 'usuario@danielkossmann.com';

$usuario = get_user_by( 'email', $usuario_email );

// Verifica se foi enconrado um usuário
if ( !empty( $usuario ) ) {

	// Exibe as informações de forma que o conteúdo seja traduzível
	printf(
		__( 'O usuário com e-mail %s possui o ID=%d e foi registrado em %s.', 'danielkossmann' ),
		$usuario_email,
		$usuario->ID,
		$usuario->user_registered
	);
	// Exemplo de resultado: O usuário com e-mail usuario@danielkossmann.com possui o ID=4 e foi registrado em 2022-01-04 23:16:12.

} else {
	_e( 'Não foi encontrado nenhum usuário com este e-mail.', 'danielkossmann' );
}Code language: PHP (php)

Também é possível fazer o processo inverso, obtendo o e-mail através do ID do usuário:

<?php
$usuario_id = 4;

$usuario = get_user_by( 'id', $usuario_id );

// Verifica se foi enconrado um usuário
if ( !empty( $usuario ) ) {

	// Exibe as informações de forma que o conteúdo seja traduzível
	printf(
		__( 'O usuário com ID=%d possui o e-mail %s e foi registrado em %s.', 'danielkossmann' ),
		$usuario_id,
		$usuario->user_email,
		$usuario->user_registered
	);
	// Exemplo de resultado: O usuário com ID=4 possui o e-mail usuario@danielkossmann.com e foi registrado em 2022-01-04 23:16:12.

} else {
	_e( 'Não foi encontrado nenhum usuário com este e-mail.', 'danielkossmann' );
}Code language: PHP (php)

Posts Similares

Deixe um comentário

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