obtener usuario actual no funciona

3 jun 2012, 01:40:56
Vistas: 15.8K
Votos: 1

Estaba intentando usar este código para obtener información del usuario actual, pero no muestra nada. Mi versión de WordPress es la 3.3.1

<?php
    wp_get_current_user();
    /**
     * @ejemplo Uso seguro: $current_user = wp_get_current_user();
     * if ( !($current_user instanceof WP_User) )
     *     return;
     */
    echo 'Nombre de usuario: ' . $current_user->user_login . '<br />';
    echo 'Email del usuario: ' . $current_user->user_email . '<br />';
    echo 'Nombre del usuario: ' . $current_user->user_firstname . '<br />';
    echo 'Apellido del usuario: ' . $current_user->user_lastname . '<br />';
    echo 'Nombre para mostrar: ' . $current_user->display_name . '<br />';
    echo 'ID del usuario: ' . $current_user->ID . '<br />';
?>

El resultado es:

Nombre de usuario:

Email del usuario:

Nombre del usuario:

Apellido del usuario:

Nombre para mostrar:

ID del usuario:

0
Todas las respuestas a la pregunta 3
0

¿Has probado utilizar la alternativa de "Uso seguro" que se proporciona en la sección comentada?

Honestamente, no tengo experiencia con wp_get_current_user(), ya que nunca lo he usado, pero de cualquier manera, esto debería funcionar:

global $current_user;

echo 'Nombre de usuario: ' . $current_user->user_login . '<br />';
echo 'Correo electrónico del usuario: ' . $current_user->user_email . '<br />';
echo 'Nombre del usuario: ' . $current_user->user_firstname . '<br />';
echo 'Apellido del usuario: ' . $current_user->user_lastname . '<br />';
echo 'Nombre para mostrar del usuario: ' . $current_user->display_name . '<br />';
echo 'ID del usuario: ' . $current_user->ID;

wp_get_current_user() debería hacer lo mismo, ya que no es más que un envoltorio para las dos primeras líneas anteriores; sin embargo, lo anterior tiene que funcionar.

3 jun 2012 03:41:10
0

Antes de WordPress 4.5, get_currentuserinfo() era una opción aceptable, pero ahora está obsoleta, en favor de wp_get_current_user().

Puedes asignar wp_get_current_user() a una variable para acceder fácilmente a ella en tu función o página:

$current_user = wp_get_current_user();

Ejemplo:

if ( is_user_logged_in() ) {

    $current_user = wp_get_current_user();

    echo 'Nombre de usuario: ' . $current_user->user_login . '<br />';
    echo 'Correo electrónico: ' . $current_user->user_email . '<br />';
    echo 'Nombre: ' . $current_user->user_firstname . '<br />';
    echo 'Apellido: ' . $current_user->user_lastname . '<br />';
    echo 'Nombre para mostrar: ' . $current_user->display_name . '<br />';
    echo 'ID de usuario: '. $current_user->ID . '<br />';
    echo 'Avatar: ' . get_avatar( $current_user->ID, 64 ) . '<br />';

} else {

    echo 'Usuario no conectado.';

}

También es importante asegurarse de que todo esto se ejecute después del hook init para evitar salidas en blanco.

27 ene 2016 09:27:59
2

Así es como puedes obtener el usuario actual:

global $current_user;
$current_user = wp_get_current_user();

Después de eso, puedes usar $current_user->ID donde lo necesites.

Ejemplo:

if ( is_user_logged_in() ) {
    $current_user = wp_get_current_user();
    echo 'Nombre de usuario: ' . $current_user->user_login . '--';
    echo 'Correo electrónico: ' . $current_user->user_email . '--';
    echo 'Nombre: ' . $current_user->user_firstname . '--';
    echo 'Apellido: ' . $current_user->user_lastname . '--';
    echo 'Nombre público: ' . $current_user->display_name . '--';
    echo 'ID de usuario: '. $current_user->ID . '--';
} else {
    echo 'Usuario no conectado.';
}
27 ene 2016 06:18:23
Comentarios

¿Por qué necesitas/usa el global?

Mark Kaplun Mark Kaplun
27 ene 2016 06:32:57

Mark, acabo de actualizar la respuesta, pero para responder tu pregunta, el global es innecesario ya que esa es la razón principal para usar wp_get_current_user() (haz clic en el enlace para ver dónde la función accede al global si tienes curiosidad sobre cómo funciona).

Bryan Willis Bryan Willis
27 ene 2016 07:52:49