Aggiungi una colonna personalizzata al pannello di amministrazione Utenti
Ci sono 5 colonne predefinite chiamate Nome utente, Nome, Email, Ruolo e Articoli in UTENTI. Ora voglio aggiungere un'altra colonna con il suo numero di contatto.
Come posso realizzarlo??

Ecco il codice per permettere agli utenti di aggiungere numeri di telefono. Incolla questo codice completo nel file functions.php. Questo aggiungerà un nuovo campo "Numero di telefono" nel profilo utente e una colonna nella tabella degli utenti nell'area di amministrazione di WordPress per il telefono.
function new_contact_methods( $contactmethods ) {
$contactmethods['phone'] = 'Numero di telefono';
return $contactmethods;
}
add_filter( 'user_contactmethods', 'new_contact_methods', 10, 1 );
function new_modify_user_table( $column ) {
$column['phone'] = 'Telefono';
return $column;
}
add_filter( 'manage_users_columns', 'new_modify_user_table' );
function new_modify_user_table_row( $val, $column_name, $user_id ) {
switch ($column_name) {
case 'phone' :
return get_the_author_meta( 'phone', $user_id );
default:
}
return $val;
}
add_filter( 'manage_users_custom_column', 'new_modify_user_table_row', 10, 3 );
MODIFICA
Per aggiungere due colonne è necessario apportare alcune modifiche. Confronta entrambi i codici per comprendere le differenze.
function new_modify_user_table( $column ) {
$column['phone'] = 'Telefono';
$column['xyz'] = 'XYZ';
return $column;
}
add_filter( 'manage_users_columns', 'new_modify_user_table' );
function new_modify_user_table_row( $val, $column_name, $user_id ) {
switch ($column_name) {
case 'phone' :
return get_the_author_meta( 'phone', $user_id );
case 'xyz' :
return '';
default:
}
return $val;
}
add_filter( 'manage_users_custom_column', 'new_modify_user_table_row', 10, 3 );
Usa di nuovo il codice. L'ho modificato così puoi vedere anche il campo telefono nella lista degli utenti.
Robert hue
Ottimo! Funziona.. Ma al momento dell'aggiunta di un utente perché non chiedono il Numero di Telefono?
Rohil_PHPBeginner
Puoi spiegarmi questo codice? Voglio aggiungere un altro campo ma mi mostra un errore.
Rohil_PHPBeginner
Controlla le modifiche nel codice sopra. Puoi aggiungere tutte le colonne che vuoi.
Robert hue
Suggerirei di aggiungerlo a un plugin specifico per il sito poiché non ha nulla a che fare con l'aspetto del tema.
helgatheviking
grazie Robert.. mi hai aiutato moltissimo!! puoi solo dirmi un'ultima cosa.. cosa sono 10 & 3 nell'ultima riga del codice..
Rohil_PHPBeginner
Questo è la priorità e gli argomenti accettati. Controlla la documentazione su add_filter qui, http://codex.wordpress.org/Function_Reference/add_filter
Robert hue
Se si tratta di un tema commerciale (gratuito o a pagamento) allora per favore non inserire questo codice nel functions.php del tema. Perché potresti perdere queste modifiche se il tema viene aggiornato. Crea un piccolo plugin per questo.
Omar Tariq
Sì, perché c'è un return $return alla fine, per favore? Potresti spiegarlo?
LoicTheAztec
Infine $user = get_userdata( $user_id ); e return $return sono assolutamente non necessari. La variabile $user non viene utilizzata dalla funzione e $return non è definita quindi non restituisce nulla.
LoicTheAztec
hey @Robert hue grazie per il codice funzionante. Ho una domanda. Non vedo questa colonna nella mia tabella wp_users del DB. Perché?
Ana DEV
Non ottengo nulla da questa funzione new_modify_user_table_row( $val, $column_name, $user_id ), potresti dirmi perché?
Deepak saini
ah trovato qui.
JohnnyQ
Davvero pignolo ma probabilmente non abbiamo bisogno del break; visto che stiamo facendo un return nelle righe sopra. Grazie comunque per aver postato - è stato davvero utile.
Daniel Casserly
Non sarebbe meglio, credo, mettere questo codice in un plugin o in /wp-admin piuttosto che in una cartella specifica del tema? Se lasciato in una cartella specifica del tema come functions.php, verrebbe molto probabilmente sovrascritto quando il tema viene aggiornato.
Travis Patron