Ottenere l'email dell'utente corrente come valore stringa di ritorno
if(strpos($query, '%get_email%') !== false){
$query = str_replace('%get_email%', get_the_author_meta( 'user_email' ), $query);
}
Ok, sto cercando di creare una query MySQL e nel plugin sto cercando di aggiungere uno shortcode %get_email%
ma in ogni caso non restituisce alcuna email nella query effettiva.
Ad esempio:
select * from tablename where email='%get_email%';
Qualche idea su come fare?
Ecco cosa sta funzionando per l'ID -
if(strpos($query, '%CURRENT_USER_ID%') !== false){
$query = str_replace('%CURRENT_USER_ID%', get_current_user_id(), $query);
}
Dovresti usare wp_get_current_user
invece della variabile globale $current_user
.

Tuttavia, questo non controllerà dove il codice viene eseguito nella pagina, vero? Probabilmente vorresti fare qualcosa di meglio di echo, ad esempio definire uno shortcode come fanno alcune delle altre risposte.

Non capisco perché stai cercando di introdurre complicazioni in una situazione piuttosto semplice.

Se hai bisogno semplicemente di "Ottenere l'email dell'utente corrente come valore stringa restituito", puoi farlo facilmente utilizzando la seguente funzione
// Aggiungi questa funzione nel tuo file functions.php o nel tuo 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');
Poi puoi ottenere l'email dell'utente corrente come stringa dove vuoi semplicemente usando [get_email]
o <?php echo do_shortcode( '[get_email]' ); ?>
Per maggiori informazioni su get_currentuserinfo() visita il WordPress Codex.
