WordPress function: _e() __()

settembre
26

WordPress function: _e() __()

Inserito In: Php Scritto da Luca Bottoni

Sviluppando un sito per un’amico mi sono dovuto immergere nelle funzioni di WordPress, avrete sicuramente notato solamente inserendo i file .mo dei linguaggi, in automatico il vostro WordPress diventa per magia di un’altra lingua. Durante il mio lavoro mi sono ritrovato a creare una registrazione utente tutta ad “Hoc” e preso dalla smania di sviluppo mi sono detto, perchè non farlo anche in AJAX!?

Così ho cominciato…posso dire che le API di Wp sono bellissime, peccato che siano quasi unicamente dedicate ai Plug-In e mi ritrovavo quindi nella situazione di dover inserire nella struttura del DB un’utente senza dover lavorare su query SQL (non si mai che un domani la struttura possa cambiare!). Lavorando mi sono imbattuto nella funzione _e() e la funzione __(). Queste due funzioni hanno lo stesso compito, ovvero quello di tradurre il testo che gli passate come parametro, attenti però, non sono un traduttore, queste ricercano i testi nei file .mo, se i testi sono presenti li sostituisce con quelli tradotti, altrimenti restituiscono la stessa frase che gli avete passato. La differenza tra uno e l’altra è che _e è le’quivalente di echo, mentre __() restituisce la traduzione come valore da assegnare a una variabile.

Vediamo un esempio sul loro utilizzo registrando un nuovo utente. Il codice seguente mostra le librerie di cui ci serviremo.

require($_SERVER['DOCUMENT_ROOT']."/wp-blog-header.php");
require($_SERVER['DOCUMENT_ROOT']."/wp-includes/registration.php");

Caricate le librerie eseguiamo i semplici controlli sulla email e user se queste esistono, nel caso fossero già presenti, stamperemo a video le risposte.

require($_SERVER['DOCUMENT_ROOT']."/wp-blog-header.php");
require($_SERVER['DOCUMENT_ROOT']."/wp-includes/registration.php");

$User=username_exists("myusername");
$Email=email_exists("mio@miodominio.com");
//Controlla l'utente se è vuoto
if($User=="")
{_e('<strong>ERROR</strong>: This username is already registered, please choose another one.');exit;}
//controllo la email
if($Email=="")

{_e('<strong>ERROR</strong>: This email is already registered, please choose another one.');exit;}

OK, come possiamo vedere che se i controlli delle funzioni email_exists() e username_exists() non vanno a buon fine, il nostro ciclo verrà interrotto e sarà stampato a video nella nostra lingua WP la frase che abbiammo inserito.

Come ultimo passo per il nostro esempio eseguiamo le vere e proprie azioni, ovvero generazione password , creazione utente e notifica all’utente dei dati.

require($_SERVER['DOCUMENT_ROOT']."/wp-blog-header.php");
require($_SERVER['DOCUMENT_ROOT']."/wp-includes/registration.php");

$User=username_exists("myusername");
$Email=email_exists("mio@miodominio.com");
//Controlla l'utente se è vuoto
if($User=="")
{_e('<strong>ERROR</strong>: This username is already registered, please choose another one.');exit;}
//controllo la email
if($Email=="")
{_e('<strong>ERROR</strong>: This email is already registered, please choose another one.');exit;}
//Generiamo la Password con gli algoritmi di WP
$User_Pass=wp_generate_password();
//Creiamo l'utente nel DB ,la funzione ritorna l'id del nuovo utente
$user_id=wp_create_user($User,$User_Pass,$Email);
if($user_id=="")
{_e('<strong>ERROR</strong>: Couldn&#8217;t register you... please contact the <a href="mailto:%s">webmaster</a> !'), get_option('admin_email'));exit;}
//notifichiamo all'utente la sua password
wp_new_user_notification($user_id,$User_Pass);

echo "Yeahh!!!Guardati nella mail e troverai la tua password ";

Spero che vi sia di aiuto 🙂

Vuoi lasciare un tuo commento?

Attenzione: L'approvazione e l'invio del commento potrebbero avere dei ritardi, quindi, dopo aver premuto il pulante "Invia Commento" attendi.


*