Search Our Site

Accedendo al database di wordpress, per recuperare alcuni dati utenti occorre mettere in relazione le tabelle:
wp_users e wp_usermeta usando il campo ID di wp_users collegato al campo user_id di wp_usermeta

Dal momento che le righe di wp_usermeta contengono per ciascun utente tante righe quante sono le sue opzioni per prenderne solo alcune di queste informazioni e rendere una riga per utente, vado a collegare la tabella wp_usermeta filtrando successivamente sul campo meta_key il dato che voglio recuperare

Nell'esempio che segue recupero alcuni dati utente, e i valori ("meta_value") dei seguenti meta_key "billing_email", "billing_phone", "wp_capabilities"

Il risultato è un elenco di utenti, numeri telefonici, email e opzioni dell'utente dove all'interno trovo la stringa di riferimento al ruolo:



SELECT
wp_users.user_login,
wp_users.user_nicename,
wp_users.user_email,
wp_users.user_url,
wp_users.ID,
wp_users.display_name,
wp_users.user_status,
wp_usermeta.meta_key,
wp_usermeta.meta_value,
wp_usermeta1.meta_key,
wp_usermeta1.meta_value,
wp_usermeta2.meta_key,
wp_usermeta2.meta_value
FROM
wp_users
LEFT JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id
LEFT JOIN wp_usermeta AS wp_usermeta1 ON wp_users.ID = wp_usermeta1.user_id
LEFT JOIN wp_usermeta AS wp_usermeta2 ON wp_users.ID = wp_usermeta2.user_id
WHERE
wp_usermeta.meta_key = 'billing_email' AND
wp_usermeta1.meta_key = 'wp_capabilities' AND
wp_usermeta2.meta_key = 'billing_phone'


(testato con wordpress 4.9.5 e woocommerce 3.3.5 installato nel cms)