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.

¡Genial! Funcionó.. Pero al momento de agregar un usuario, ¿por qué no están pidiendo el número de teléfono?

¿Puedes explicarme este código? Quiero agregar un campo más pero me está mostrando un error.

Revisa las ediciones en el código anterior. Puedes agregar tantas columnas como desees.

Sugeriría agregar esto a un plugin específico del sitio ya que no tiene nada que ver con la apariencia del tema.

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?

Esos son la prioridad y los argumentos aceptados. Revisa la documentación sobre add_filter aquí, http://codex.wordpress.org/Function_Reference/add_filter

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.

Sí, ¿por qué hay un return $return
al final, por favor? ¿Podrías explicarlo?

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.

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é?

No estoy obteniendo nada de esta función new_modify_user_table_row( $val, $column_name, $user_id ), ¿puedes decirme por qué?

ah, lo encontré aquí.

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ó.
