Obtener el email del usuario actual como valor de retorno string
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);
}
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.

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

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.
