In questo tutorial ti mostrerò esempi di codice su come trovare l’ID utente corrente, come ottenere l’ID per nome utente, cognome, login, e-mail etc.
Tutti gli esempi funzionano anche per WooCommerce.
1. Trova l’ID utente nell’area di amministrazione di WordPress
Questo è un metodo molto semplice, ma presenta anche alcuni svantaggi. Primo: dovresti aver effettuato l’accesso, secondo: non puoi ottenere l’ID del tuo utente.
Così:
- Accedi al tuo amministratore di WordPress
- Vai su Utenti> Tutti gli utenti
- Scegli l’utente e vai al suo profilo
- Guarda l’URL della pagina:
2. Ottieni l’ID utente corrente (e nome utente, e-mail ecc.)
Il modo migliore per ottenere un ID utente attualmente connesso è utilizzare la get_current_user_id()
funzione.
$ current_user_id = get_current_user_id ( ) ;
Assolutamente lo stesso è con wp_get_current_user()
:
$ current_user = wp_get_current_user ( ) ; $ current_user_id = $ current_user -> ID ;
L’uso di get_current_user_id()
mi sembra più semplice, ma puoi usarlo come vuoi, perché nel codice sono gli stessi. Ma wp_get_current_user()
ti consente allo stesso tempo di ricevere l’e-mail dell’utente attuale $current_user->user_email
, nome $current_user->first_name
, cognome $current_user->last_name
, nome utente $current_user->user_login
e nome visualizzato $current_user->display_name
.
Ma ne hai sentito parlare get_currentuserinfo()
? Dovresti usarlo? La risposta è: no, questa funzione è obsoleta. Usa wp_get_current_user()
invece.
3. Come ottenere l’ID utente via e-mail?
Abbastanza semplice. Basta usare la get_user_by()
funzione.
$ the_user = get_user_by ( 'email' , 'misha@rudrastyh.com' ) ; $ the_user_id = $ the_user -> ID ;
Bonus: ricevi email utente per ID
Prima di tutto puoi ottenere la posta elettronica dell’utente con la stessa get_user_by()
funzione.
$ the_user = get_user_by ( 'id' , 54 ) ; // 54 è un ID utente echo $ the_user -> user_email ;
Il metodo successivo è solo la get_userdata()
funzione, che è uguale aget_user_by( 'id', ... )
$ the_user = get_userdata ( 54 ) ; echo $ the_user -> user_email ;
4. Ottieni l’ID utente per nome utente (nome di accesso)
Nel seguente esempio il secondo parametro “rudrastyh” è il nome utente.
$ the_user = get_user_by ( 'login' , 'rudrastyh' ) ; $ the_user_id = $ the_user -> ID ;
C’è un modo per ottenere il nome utente dall’ID utente? Sì, basta usare get_userdata()
o get_user_by( 'id', ... )
. Proprio come nell’esempio con le e-mail.
5. Ottieni l’ID utente per nome o per cognome
Stampa gli ID di tutti gli utenti con il nome è “Misha”:
$ wpdb globale ; $ users = $ wpdb -> get_results ( "SELEZIONA user_id FROM $ wpdb-> usermeta DOVE meta_key = 'first_name' AND meta_value = 'Misha'" ) ; if ( $ users ) { foreach ( $ users as $ user ) { echo '<p>' . $ user -> user_id . '</p>' ; } } else { echo 'Non ci sono utenti con il nome specificato.' ; }
Stampa gli ID di tutti gli utenti con il cognome è “Rudrastyh”:
$ wpdb globale ; $ users = $ wpdb -> get_results ( "SELEZIONA user_id FROM $ wpdb-> usermeta DOVE meta_key = 'first_name' AND meta_value = 'Rudrastyh'" ) ; if ( $ users ) { foreach ( $ users as $ user ) { echo '<p>' . $ user -> user_id . '</p>' ; } } else { echo 'Non ci sono utenti con il cognome specificato.' ; }
Il codice sopra funzionerà se desideri trovare l’ID utente per qualsiasi meta valore dell’utente. Basta sostituire meta_key
e meta_value
con quelli di cui hai bisogno.
E ovviamente puoi ottenere il nome e il cognome dell’utente e qualsiasi meta con l’aiuto della get_user_meta( $id, $meta_key, true)
funzione.
6. Come ottenere l’ID autore per ID postale?
In questo caso è possibile ottenere l’ID utente dall’oggetto WP_Post. È semplice.
$ my_post = get_post ( $ id ) ; // $ id - Eco ID post $ my_post -> post_author ; // stampa l'ID dell'autore del post
7. Come ottenere un ID cliente da un ordine in WooCommerce?
Esistono due modi diversi per farlo, il primo è solo per ottenere l’ID cliente dal meta ordine in questo modo:
$ customer_id = get_post_meta ( 541 , '_customer_user' , true ) ; // 541 è il tuo ID ordine
Il secondo è con l’aiuto WC_Order
dell’oggetto. A proposito, questo metodo funzionerà solo per WC 3.0+.
$ order = wc_get_order ( 541 ) ; // 541 è il tuo ID ordine $ customer_id = $ order -> get_customer_id ( ) ; // o $ order-> get_user_id () - lo stesso
8. Aggiungi la colonna ID utente alla tabella utenti di WordPress
Modo molto utile per ottenere gli ID utente tramite l’amministratore di WordPress. Ecco il risultato:
Come creare la stessa colonna sul tuo sito Web WordPress? Tutto quello che devi fare è copiare il seguente codice nel tuo functions.php
file di temi corrente :
/* * Aggiunta della colonna * / function rd_user_id_column ( $ colonne ) { $ colonne [ 'user_id' ] = 'ID' ; restituisce $ colonne ; } add_filter ( 'manage_users_columns' , 'rd_user_id_column' ) ; /* * Contenuto della colonna * / function rd_user_id_column_content ( $ value , $ column_name , $ user_id ) { if ( 'user_id' == $ column_name ) restituisce $ user_id ; restituisce $ valore ; } add_action ( 'manage_users_custom_column' , 'rd_user_id_column_content' , 10 , 3 ) ; /* * Stile colonna (puoi saltarlo se vuoi) * / function rd_user_id_column_style ( ) { echo '<style> .column-user_id {larghezza: 5%} </style>' ; } add_action ( 'admin_head-users.php' , 'rd_user_id_column_style' ) ;