Aunque WordPress lógicamente guarda en la base de datos la fecha y hora exactas en que un usuario se registra, este dato no es mostrado por defecto en ninguna parte. Y, en determinados casos, puede resultarnos un dato muy útil.
Vamos a ver cómo podemos no sólo ver la fecha en que se registró un usuario, sino que además podremos ordenar el listado de usuario por momento de registro, de más antiguo a más nuevo o viceversa. Y, por supuesto, quien dice usuario en WordPress dice cliente en WooCommerce, ya que un cliente no es más que un usuario de WordPress con un rol específico.
Tabla de contenidos
La fecha de registro de usuario en WordPress
Como decía, WordPress por supuesto guarda el dato del momento del registro (incluyendo la hora, minuto y segundo) en la base de datos, aunque no lo muestre en el panel de administración. Concretamente, el dato queda almacenado en la columna user_registered de la tabla wp_users.
El dato guardado es del tipo datetime, así que eso facilitará mucho el mostrarlo en diferentes formatos al recuperarlo.
Recuperar la fecha de registro de la base de datos
Porque podemos recuperarlo nosotros mismos y mostrarlo donde queramos (si es que queremos mostrarlo en el frontend, la parte “visible” de la web) con un shortcode. No es en absoluto complicado si tienes conocimientos de PHP (si no los tienes, esta sección no es para ti, salta a la segunda parte del artículo).
Básicamente tenemos que hacer dos cosas:
- Recuperar los datos del usuario (bien el usuario conectado o bien uno concreto)
- Extraer de esos datos y formatear la fecha de registro
Lo primero podemos hacerlo con la función de WordPress get_user_by(), que nos devuelve un objeto: bastará con acceder a la propiedad user_registered de este objeto. Por ejemplo:
$datos = get_user_by('id', get_current_user_id()); $fecha = $datos->user_registered;
Crear un shortcode para mostrar la fecha de registro
Ya habrás visto en el enlace a la referencia de la función que get_user_by() permite recuperar un usuario no sólo por ID, sino también por email, slug o login.
Ojo, porque un gettype( $fecha ) ahí te diría que esta variable es un string, así que si quieres manejar la fecha de alguna forma tendrás que hacerle un strtotime().
A partir de ahí tienes total libertad para manejarla como quieras y formatearla con time(). WordPress también puede ayudarte con esto gracias a la función date_i18n() y a la opción date_format, que guarda el formato de fecha establecido en los ajustes.
Te dejo aquí un ejemplo operativo para un shortcode ([fecha_registro]) que devuelva la fecha de registro del usuario actualmente conectado en el formato establecido en los ajustes generales de WordPress:
add_shortcode( 'fecha_registro', function () { $datos = get_user_by( 'id', get_current_user_id() ); return date_i18n( get_option( 'date_format' ), strtotime( $datos->user_registered ) ); }, 10 );
Si sólo vas a usar el ID para recuperar los datos del usuario puedes también utilizar get_userdata(), más sencillo.
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Ver la fecha de registro en el listado de usuarios
Dejando a un lado todo el tema de programación, lo que más útil puede resultar al administrador de una web en WordPress es poder ver la antigüedad de sus usuarios o, más concretamente, de sus clientes si se trata de una tienda o un membership site (esté o no realizado con WooCommerce).
Para esto no es necesario complicarse tanto la vida: hay un plugin (gratuito) que nos lo da hecho. Se trata de Recently Registered, un plugin que puedes descargar del repositorio oficial y que añade una nueva columna a la pantalla de listado de usuarios mostrando la fecha de registro de cada uno de ellos. Más aún, podemos ordenar el listado por orden (directo e inverso) de antiguedad).
Vídeo: Ver la fecha de registro de los usuarios en WordPress
Como el plugin no tiene secreto ninguno y es más fácil y rápido verlo que explicarlo, aquí te dejo un vídeo para que veas cómo funciona:
Jesús dice
Hola Enrique.
Llevaba un tiempo buscando como hacer esto pero no encontré, ni buscando en los plugins, así que 1000 gracias.
Buen finde.
Jesús
Enrique J. Ros dice
Gracias Jesús, me alegra que te haya resultado útil 🙂
Un saludo
Pablo Cesar dice
Hola Enrique, una gran ayuda para muchos usos. Gracias realmente un maestro. Saludos
Enrique J. Ros dice
Gracias a ti por tu comentario 🙂
Un saludo
Antonio dice
Excelente aporte Enrique. Podrías comentar como añadir además del campo fecha de registro, número de sesiones de cada usuario, día de cada sesión y tiempo total conectado?
O al menos darme un idea de cómo obtener esos datos.
Enrique J. Ros dice
Hola Antonio
Pare eso tienes que usar un plugin de log de usuarios, como User Login History.
Un saludo.
Antonio dice
Muchísimas gracias
Yohan Ysturiz dice
Muchas gracias