Sabato
19
Marzo 2022
Come recuperare gli utenti di WordPress e i loro dati dal database senza utilizzare un plugin? Sei nel posto giusto, in questa guida vedremo come utilizzare la funzione get_users() del core di WordPress per ottenere una lista di utenti anche in base al ruolo.
Prima di iniziare analizziamo la funzione:
get_users( $args = array() );
Questa funzione recupera tutti gli utenti dal database in base al contenuto del suo unico parametro obbligatorio che deve essere un array.
Con questo parametro puoi filtrare i risultati in base a molti valori, come ad esempio:
get_users( array( 'role' => ‘Administrator’) );
//stampa un array contenente tutti gli utenti amministratori
Vediamo tutti i filtri possibili per recuperare gli utenti di WordPress dal database.
Recuperare più ruoli utenti
$users = get_users(array('role__in' => array('Administrator', 'author')));
Cercare più utenti
$users = get_users(array('search' => '*gmail.com'));
con questo parametro puoi cercare qualsiasi in qualsiasi campo del database degli utenti, nell’esempio otteniamo tutti gli utenti con mail che finisce con ‘gmail.com’.
Puoi anche inserire un numero intero per recuperare gli ID degli utenti. Ti sconsiglio questa opzione perché potrebbe recuperare anche altri dati non desiderati.
L’asterisco viene utilizzato per indicare qualsiasi altro carattere prima di quello indicato in seguito.
Recuperare l’utente corrente che visualizza la pagina
Per recuperare l’utente corrente puoi utilizzare la funzione di WP wp_get_current_user(). Questa funzione restituisce un array con tutte le informazioni dell’utente corrente che potrai recuperare usando le query della funzione get_users(), come spiegato di seguito.
$user = wp_get_current_user();
Ora che hai recuperato gli utenti registrati al tuo sito in base ai filtri che desideri dovrai recuperare le informazioni di ogni singolo utente.
Se hai recuperato più utenti dovrai impostare un ciclo foreach in questo modo:
$users = get_users(array('role' => 'Administrator'));
foreach ($users as $user) {
echo var_dup($user);
}
Recuperare tutti i dati degli utenti registrati
$users = get_users(array('role' => 'Administrator'));
foreach ($users as $user) {
echo $user->ID."<br>"; //ID utente
echo $user->user_login."<br>"; //Nome utente
echo $user->user_pass."<br>"; //password (criptata)
echo $user->user_nicename."<br>"; //utilizzato negli url
echo $user->user_email."<br>"; //email di registrazione
echo $user->user_url."<br>"; //url sito web
echo $user->user_registered."<br>"; //data di registrazione
echo $user->user_activation_key."<br>"; //chiave generata da WP alla richiesta di cambio password
echo $user->user_status."<br>"; //campo per verificare se l'utente è spam (oggi inutilizzato)
echo $user->display_name."<br>"; //nome visualizzato, diverso dal nome utente per il login
echo $user->roles[0]."<br>"; //ruolo dell'utente
}
Recuperare dati di Woocommerce
$users = get_users(array('role' => 'Administrator'));
foreach ($users as $user) {
/* Dati di Woocommerce */
echo $user->billing_company."<br>";
echo $user->billing_address_1."<br>";
echo $user->billing_address_2."<br>";
echo $user->billing_city."<br>";
echo $user->billing_postcode."<br>";
echo $user->billing_country."<br>";
echo $user->billing_state."<br>";
echo $user->billing_phone."<br>";
echo $user->billing_email."<br>";
/* Dati di spedizione Woocommerce */
echo $user->shipping_first_name."<br>";
echo $user->shipping_last_name."<br>";
echo $user->shipping_company."<br>";
echo $user->shipping_address_1."<br>";
echo $user->shipping_address_2."<br>";
echo $user->shipping_city."<br>";
echo $user->shipping_postcode."<br>";
echo $user->shipping_country."<br>";
echo $user->shipping_state."<br>";
}
Vediamo ora altri esempi:
Verificare se un utente esiste
foreach ($users as $user) {
echo $user->exists(); //return boolean true or false
}
Verificare le capacità di un utente
Per questo si utilizza la funzione has_cap() che ritorna un valore booleano true o false in base alle caratteristiche dell’utente, in questo modo:
$user->has_cap( 'edit_posts' );
Ti lascio ora il link alla documentazione ufficiale di WordPress per completezza.
Scrivi un commento