Agregar columna personalizada al panel de administración de Usuarios

6 sept 2014, 14:00:48
Vistas: 81.6K
Votos: 42

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?

Aquí donde se muestra el cuadro negro

5
Comentarios

¿Tienes configurado un número de teléfono? Me refiero a si tus usuarios pueden añadir números de teléfono en su perfil.

Robert hue Robert hue
6 sept 2014 14:08:03

no... solo quiero saber cómo añadirlo... no es fijo que sea solo número de contacto... también puede ser simplemente una columna en blanco

Rohil_PHPBeginner Rohil_PHPBeginner
6 sept 2014 14:09:36

Si tu sitio tiene muchas columnas personalizadas, podría interesarte un plugin llamado Admin Columns.

somebodysomewhere somebodysomewhere
1 jun 2016 22:13:48

puedes ver este blog con una explicación detallada http://tekina.info/add-extra-column-user-listing-page-wordpress-admin-panel/

Aniket Singh Aniket Singh
12 sept 2017 20:20:38

Para los que no son programadores, existe un plugin llamado Advanced Custom Fields. (Google también lleva a esta página. Los principiantes podrían no conocer todos los plugins de WordPress)

koppor koppor
12 jul 2020 16:37:28
Todas las respuestas a la pregunta 1
17
67

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 );
6 sept 2014 14:10:28
Comentarios

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 Robert hue
6 sept 2014 14:20:52

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

Rohil_PHPBeginner Rohil_PHPBeginner
6 sept 2014 14:23:28

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

Rohil_PHPBeginner Rohil_PHPBeginner
6 sept 2014 14:42:11

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

Robert hue Robert hue
6 sept 2014 15:04:19

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

helgatheviking helgatheviking
6 sept 2014 19:57:06

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 Rohil_PHPBeginner
6 sept 2014 21:34:31

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 Robert hue
6 sept 2014 21:38:31

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 Omar Tariq
28 abr 2015 00:33:53

¿qué es el $return?

Mateusz Bartkowski Mateusz Bartkowski
4 feb 2016 14:25:26

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

LoicTheAztec LoicTheAztec
30 mar 2016 09:09:28

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 LoicTheAztec
30 mar 2016 13:03:33

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 Ana DEV
3 may 2016 12:35:01

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

Deepak saini Deepak saini
27 may 2016 15:37:28

@Roberthue ¿hay alguna forma de reordenar la columna?

JohnnyQ JohnnyQ
8 jun 2016 15:04:30

ah, lo encontré aquí.

JohnnyQ JohnnyQ
8 jun 2016 15:14:23

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 Daniel Casserly
11 oct 2017 18:19:07

¿No sería mejor, pienso yo, poner este código en un plugin o en /wp-admin en lugar de una carpeta específica del tema? Si se deja en una carpeta específica del tema como functions.php, muy probablemente se sobrescribiría cuando el tema se actualice.

Travis Patron Travis Patron
11 feb 2021 00:54:46
Mostrar los 12 comentarios restantes