Obtener el email del usuario actual como valor de retorno string

22 may 2015, 23:22:57
Vistas: 30.2K
Votos: 3
if(strpos($query, '%get_email%') !== false){
        $query = str_replace('%get_email%',  get_the_author_meta( 'user_email' ), $query);
    }

Estoy tratando de hacer una consulta MySQL y en el plugin estoy intentando agregar un shortcode %get_email% pero no está retornando ningún email en la consulta actual.

Por ejemplo: select * from tablename where email='%get_email%';

¿Alguna idea de cómo hacerlo?

Esto es lo que está funcionando para el id -

    if(strpos($query, '%CURRENT_USER_ID%') !== false){
        $query = str_replace('%CURRENT_USER_ID%', get_current_user_id(), $query);
    }
1
Comentarios

¿Qué es $query? ¿Cuál es el contexto? No estoy seguro de lo que estás haciendo.

s_ha_dum s_ha_dum
23 may 2015 00:52:52
Todas las respuestas a la pregunta 4
2

Lo haré de esta manera:

global $current_user;
get_currentuserinfo();

$email = (string) $current_user->user_email;
var_dump($email);

Acabas de obtener el email del array current_user y lo convertiste a string :) eso es todo

23 may 2015 12:01:15
Comentarios

Deberías usar wp_get_current_user en lugar del global $current_user.

amiad amiad
14 nov 2021 12:47:50

Si el usuario está en proceso de cambiar su dirección de correo electrónico pero su nueva dirección aún no ha sido verificada, ¿esto devuelve la dirección antigua o la nueva?

Flimm Flimm
21 nov 2022 10:54:35
3

Descarga/Instala el plugin de WordPress PHPCode Snippets, Luego simplemente crea un shortcode con este contenido (exactamente como sigue):

<?php
$current_user = wp_get_current_user();
echo $current_user->user_email;
23 jul 2021 13:22:18
Comentarios

Sin embargo, eso no controlará dónde se ejecuta el código en la página, ¿verdad? Probablemente quieras hacer algo mejor que echo, como definir un shortcode como hacen algunas de las otras respuestas.

Rup Rup
23 jul 2021 15:33:26

No entiendo por qué intentas introducir complicaciones en una situación bastante simple.

Yusuf Odukoya Yusuf Odukoya
23 jul 2021 22:03:51

Nunca deberías usar echo o print en un shortcode. Se imprimirán inmediatamente, no donde se use el shortcode.

fuxia fuxia
31 jul 2021 13:08:01
0

Si solo necesitas "Obtener el correo electrónico del usuario actual como un valor de cadena de retorno", entonces puedes hacerlo simplemente usando la siguiente función:

// Agrega esta función en tu archivo functions.php o en tu plugin
function mm_get_current_user_email(){
    global $current_user;
    get_currentuserinfo();

    $email = $current_user->user_email; 

    return $email;  
} 
add_shortcode( 'get_email', 'mm_get_current_user_email');

Luego puedes obtener el correo electrónico del usuario actual como cadena donde quieras simplemente usando [get_email] o <?php echo do_shortcode( '[get_email]' ); ?>

Para más información sobre get_currentuserinfo() visita el Codex de WordPress.

23 may 2015 09:27:55
1

La respuesta de Mile está bien, pero no es necesario llamar a una función adicional. Puedes simplemente usar así:

global $current_user;

$email = $current_user->user_email;
12 oct 2021 08:18:08
Comentarios

mucho ha cambiado desde 2015 :) LoL

` // Obtener la información del usuario actual $current_user = wp_get_current_user();

if ( !($current_user instanceof WP_User) ) 
    return;

`

Mile Milosheski Mile Milosheski
15 nov 2021 13:18:58