email

Come recuperare utenti WordPress e dati dal database senza plugin

Ti trovi in:
  1. blog Come recuperare utenti WordPress e dati dal database senza plugin

Pubblicato il , aggiornato il 3 Novembre 2021

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
code

Come recuperare utenti WordPress: altri esempi di filtro

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();
code

Come recuperare i dati degli utenti WordPress

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.

Contattaci!

Preventivo sempre gratuito

Fabio Fresia, fondatore e titolare di Eureka Web di Asti

perm_device_information366 - 400 9542       emailinfo@agenziawebeureka.it

perm_identity
alternate_email
phonelink_ring
message