Hace unos minutos (antes de escribir este artículo) me pidieron que agregue una columna extra al listado de usuarios del panel de WordPress tusitio.com/wp-admin/users.php asi que les comparto el código que me ayudó lograr la tarea. Cabe resaltar que anteriormente había agregado columnas personalizadas a mi lista de post, jamas a la lista de usuario. Pero al fin y al cabo, WordPress usa la misma lógica en ambos casos: Agregar la cabecera de la columna y luego el valor de los rows.
Primero, como expliqué anteriormente, debemos agregar la cabecera de la columna. Por ejemplo: Teléfono, DNI, Eventos, etc.
<?php function new_modify_user_table( $column ) { $column['productos'] = 'Productos'; return $column; } add_filter( 'manage_users_columns', 'new_modify_user_table' ); ?>
En esta ocasión me pidieron que muestre una columna con el número de productos que publicó el autor. El sitio era un e-commerce que, por supuesto, estaba hecho con WooCommerce.
Dejemos a Woo por el momento y continuemos. Ahora solo debemos agregar lo que queremos que muestre nuestra nueva columna. Aqui viene lo bueno, ya que puedes hacer diferentes consultas, conbinar funciones y traer los datos que desees. Yo usé la función count_user_posts() la cual es la primera vez que uso y se ve genial, solo debes ingresar el id del usuario y el post_type que deseas contar.
El código para agregar las filas es el siguiente:
<?php function new_modify_user_table_row( $val, $column_name, $user_id ) { $user = get_userdata( $user_id ); switch ($column_name) { case 'productos' : return count_user_posts( $user_id , 'product');; break; default: } return $return; } add_filter( 'manage_users_custom_column', 'new_modify_user_table_row', 10, 3 ); ?>
Como pueden ver, la función me trae el id del usuario que es lo único que necesitas para hacer las consultas que gustes.
Bueno, eso es todo. Recuerda que si tienes una consulta la puedes hacer en los comentarios o en mi twitter.