Enrique J. Ros

Ver la fecha de registro de un usuario en WordPress

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.

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:

  1. Recuperar los datos del usuario (bien el usuario conectado o bien uno concreto)
  2. 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.

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:

Salir de la versión móvil