get_user_meta() non include l'email dell'utente?
Mi chiedo semplicemente perché <?php var_dump(get_user_meta(4)); ?>
non contiene l'indirizzo email dell'utente. Invece devo usare
get_userdata(4)->user_email;
per ottenere l'email dell'utente.
Perché è così o mi sono perso qualcosa? get_user_meta()
sembra fornire tutti gli altri aspetti e informazioni di un utente, tuttavia non l'indirizzo email.
Matt

Volevo solo farti sapere che hai a disposizione get_user_meta
e get_userdata
. L'indirizzo email può essere ottenuto utilizzando la funzione get_userdata
.
Per l'utente corrente puoi applicare questo codice:
<?php
$user_id = get_current_user_id();
$user_info = get_userdata($user_id);
$mailadresje = $user_info->user_email;
echo $mailadresje;
?>
Nota che questo è applicabile all'utente corrente. Se hai bisogno di ottenere l'user_id
di, ad esempio, un ordine, ti servirà il seguente codice (che ho usato per visualizzare l'email dell'utente sulla fattura in WooCommerce):
<?php
$user_id = $wpo_wcpdf->export->order->user_id;
$user_info = get_userdata($user_id);
$mailadresje = $user_info->user_email;
echo $mailadresje;
?>
Buona programmazione!

get_user_meta
recupera un singolo campo meta o tutti i campi dei dati user_meta
per l'utente specificato.
Ciò significa che tutti i valori memorizzati nella tabella user_meta
possono essere ottenuti utilizzando get_user_meta
. L'email non è memorizzata come meta dato, quindi non puoi ottenere l'email usando get_user_meta
.
L'email è memorizzata insieme a username e password nella tabella user
come dato utente.

Um, quindi come possiamo ottenere l'email dell'utente per memorizzarla come variabile?

@Osu vedi http://codex.wordpress.org/Function_Reference/get_currentuserinfo ,http://codex.wordpress.org/Function_Reference/get_userdata

Se desideri ottenere solo l'email dell'utente da un ID utente senza caricare l'intero oggetto utente, ecco una funzione rapida che utilizza la variabile globale $wpdb:
function get_user_email($user_id){
global $wpdb;
return $wpdb->get_var($wpdb->prepare("SELECT user_email FROM wp_users WHERE id=%d", $user_id));
}

È davvero più efficiente? Immagino che l'altro modo comporti comunque una sola lettura dal database e potrebbe essere anche nella cache in memoria della richiesta.

Sì, è più efficiente. get_userdata() attiverà update_meta_cache() che interroga i meta dati dell'utente nella tabella wp_usermeta.
