Obține emailul utilizatorului curent ca valoare string de retur
if(strpos($query, '%get_email%') !== false){
$query = str_replace('%get_email%', get_the_author_meta( 'user_email' ), $query);
}
Bun, încerc să fac o interogare MySQL și în plugin încerc să adaug un shortcode %get_email%
dar nu returnează niciun email în interogarea propriu-zisă.
Cum ar fi
select* from tablename where email='%get_email%';
Aveți vreo idee cum să fac asta?
Iată ce funcționează pentru id -
if(strpos($query, '%CURRENT_USER_ID%') !== false){
$query = str_replace('%CURRENT_USER_ID%', get_current_user_id(), $query);
}
Ar trebui să folosești wp_get_current_user
nu variabila globală $current_user
.

Totuși, asta nu va controla unde se execută codul pe pagină, nu-i așa? Probabil că ai nevoie de ceva mai bun decât echo, de exemplu să definești un shortcode așa cum fac unele dintre celelalte răspunsuri.

Nu înțeleg de ce încerci să introduci complicații într-o situație destul de simplă.

Dacă ai nevoie doar să "Obții adresa de email a utilizatorului curent ca valoare string returnată", atunci poți face acest lucru simplu folosind următoarea funcție:
// Adaugă această funcție în fișierul functions.php sau în plugin-ul tău
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');
Apoi poți obține adresa de email a utilizatorului curent ca string oriunde dorești, pur și simplu folosind [get_email]
sau <?php echo do_shortcode( '[get_email]' ); ?>
Pentru mai multe detalii despre get_currentuserinfo() vizitează WordPress Codex.
