Obține emailul utilizatorului curent ca valoare string de retur

22 mai 2015, 23:22:57
Vizualizări: 30.2K
Voturi: 3
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);
    }
1
Comentarii

Ce este $query? Care este contextul? Nu sunt sigur ce încerci să faci.

s_ha_dum s_ha_dum
23 mai 2015 00:52:52
Toate răspunsurile la întrebare 4
2

Voi aborda în felul următor:

global $current_user;
get_currentuserinfo();

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

Tocmai ai obținut email-ul din array-ul current_user și l-ai convertit în string :) asta e tot

23 mai 2015 12:01:15
Comentarii

Ar trebui să folosești wp_get_current_user nu variabila globală $current_user.

amiad amiad
14 nov. 2021 12:47:50

Dacă utilizatorul este în procesul de schimbare a adresei de email, dar noua adresă nu a fost încă verificată, această funcție returnează vechea sau noua adresă de email?

Flimm Flimm
21 nov. 2022 10:54:35
3

Descarcă/Instalează pluginul WordPress PHPCode Snippets, Apoi creează un shortcode cu acest conținut (exact după cum urmează):

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

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.

Rup Rup
23 iul. 2021 15:33:26

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

Yusuf Odukoya Yusuf Odukoya
23 iul. 2021 22:03:51

Nu ar trebui să folosești niciodată echo sau print într-un shortcode. Va fi afișat imediat, nu acolo unde este folosit shortcode-ul.

fuxia fuxia
31 iul. 2021 13:08:01
0

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.

23 mai 2015 09:27:55
1

Răspunsul lui Mile este ok, dar nu este nevoie să apelezi o funcție suplimentară. Poți folosi direct așa:

global $current_user;

$email = $current_user->user_email;
12 oct. 2021 08:18:08
Comentarii

multe s-au schimbat din 2015 :) LoL

` // Obține informațiile utilizatorului curent $current_user = wp_get_current_user();

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

`

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