Ottenere l'email dell'utente corrente come valore stringa di ritorno

22 mag 2015, 23:22:57
Visualizzazioni: 30.2K
Voti: 3
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);
    }
1
Commenti

Cos'è $query? Qual è il contesto? Non sono sicuro di cosa tu stia facendo.

s_ha_dum s_ha_dum
23 mag 2015 00:52:52
Tutte le risposte alla domanda 4
2

Affronterò la situazione in questo modo:

global $current_user;
get_currentuserinfo();

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

Hai semplicemente ottenuto l'email dall'array current_user e l'hai convertita in stringa :) tutto qui

23 mag 2015 12:01:15
Commenti

Dovresti usare wp_get_current_user invece della variabile globale $current_user.

amiad amiad
14 nov 2021 12:47:50

Se l'utente è nel processo di modifica del proprio indirizzo email ma il nuovo indirizzo non è stato ancora verificato, questa funzione restituisce il vecchio o il nuovo indirizzo email?

Flimm Flimm
21 nov 2022 10:54:35
3

Scarica/Installa il Plugin WordPress PHPCode Snippets, Poi crea semplicemente uno shortcode con questo contenuto (esattamente come segue);

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

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.

Rup Rup
23 lug 2021 15:33:26

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

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

Non dovresti mai usare echo o print in uno shortcode. Verrà stampato immediatamente, non dove viene utilizzato lo shortcode.

fuxia fuxia
31 lug 2021 13:08:01
0

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.

23 mag 2015 09:27:55
1

La risposta di Mile va bene ma non c'è bisogno di chiamare una funzione extra. Puoi semplicemente usare così:

global $current_user;

$email = $current_user->user_email;
12 ott 2021 08:18:08
Commenti

molto è cambiato dal 2015 :) LoL

` // Ottieni le informazioni dell'utente corrente $current_user = wp_get_current_user();

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

`

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