Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the hustle domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114
Como utilizar get_user_by() no WordPress (PHP) - Daniel Kossmann

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)


Comments

Deixe um comentário

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