Agregar columna personalizada al panel de administración de Usuarios
Por defecto hay 5 columnas llamadas Nombre de usuario, Nombre, Email, Rol y Entradas en USUARIOS. Ahora quiero agregar una columna más con su número de contacto.
¿Cómo puedo lograr esto?

Ok, aquí está el código para permitir que tus usuarios agreguen números de teléfono. Pega este código completo en el archivo functions.php. Esto agregará un nuevo campo en el perfil de usuario para "Número de Teléfono" y una columna en la tabla de usuarios en el administrador de WordPress para el teléfono.
function new_contact_methods( $contactmethods ) {
$contactmethods['phone'] = 'Número de Teléfono';
return $contactmethods;
}
add_filter( 'user_contactmethods', 'new_contact_methods', 10, 1 );
function new_modify_user_table( $column ) {
$column['phone'] = 'Teléfono';
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 );
EDITAR
Para agregar dos columnas necesitas hacer algunos cambios. Compara ambos códigos para entender.
function new_modify_user_table( $column ) {
$column['phone'] = 'Teléfono';
$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 el código nuevamente. Lo modifiqué para que también puedas ver el campo de teléfono en la lista de usuarios.
Robert hue
¡Genial! Funcionó.. Pero al momento de agregar un usuario, ¿por qué no están pidiendo el número de teléfono?
Rohil_PHPBeginner
¿Puedes explicarme este código? Quiero agregar un campo más pero me está mostrando un error.
Rohil_PHPBeginner
Revisa las ediciones en el código anterior. Puedes agregar tantas columnas como desees.
Robert hue
Sugeriría agregar esto a un plugin específico del sitio ya que no tiene nada que ver con la apariencia del tema.
helgatheviking
gracias Robert.. ¡me ayudaste mucho! ¿Puedes decirme solo una última cosa.. qué son el 10 y el 3 en la última línea del código?
Rohil_PHPBeginner
Esos son la prioridad y los argumentos aceptados. Revisa la documentación sobre add_filter aquí, http://codex.wordpress.org/Function_Reference/add_filter
Robert hue
Si es un tema comercial (gratuito o de pago) entonces no pongas este código en el functions.php del tema. Porque puedes perder estos cambios si el tema se actualiza. Crea un pequeño plugin para esto.
Omar Tariq
Sí, ¿por qué hay un return $return al final, por favor? ¿Podrías explicarlo?
LoicTheAztec
Finalmente $user = get_userdata( $user_id ); y return $return son absolutamente no necesarios. La variable $user no es utilizada por la función y $return no está definido, por lo que no retorna nada.
LoicTheAztec
Hola @Robert, gracias por el código funcional. Tengo una pregunta. No veo esta columna en mi tabla wp_users de la base de datos. ¿Por qué?
Ana DEV
No estoy obteniendo nada de esta función new_modify_user_table_row( $val, $column_name, $user_id ), ¿puedes decirme por qué?
Deepak saini
ah, lo encontré aquí.
JohnnyQ
Realmente quisquilloso pero probablemente no necesitamos el break; ya que estamos haciendo un return en las líneas anteriores. Gracias por publicar de todos modos - realmente ayudó.
Daniel Casserly