Tutoriales WordPress

Cómo Mostrar la Última Fecha de Inicio de Sesión de un Usuario en WordPress (con y sin instalar un plugin)

Si tiene un sitio de WordPress con muchos usuarios, puede ser importante auditar quién está usando realmente el sitio. Por ejemplo, si tiene muchos administradores, es posible que quiera recortar periódicamente los usuarios.

Aquí es donde tener la última fecha de inicio de sesión de un usuario de WordPress puede ser útil. En este post vamos a habilitar la última fecha de inicio de sesión de un usuario y podrás ordenarla para que puedas ver quién no se ha conectado durante un tiempo.

Primero vamos a lograr esto con un plugin gratuito:

Mostrar la última fecha de inicio de sesión de un usuario de WordPress usando un plugin

La forma más sencilla de mostrar la última hora de inicio de sesión de un usuario de WordPress es utilizar el plugin When Last Login.

Después de instalar y activar el plugin verá una nueva columna en la lista de usuarios.

Si un usuario no se ha conectado desde que has añadido el plugin verás “Nunca”.

Mostrar la última fecha de inicio de sesión de un usuario de WordPress sin usar ningún plugin

Tambien puedes insertar manualmente el fragmento de código para que te muestre la última fecha de inicio de sesión de un usuario.

Si estás familiarizado con la adición de fragmentos de código a tu sitio a través de functions.php o el plugin de fragmentos de código, puedes utilizarlo para añadir la última hora de inicio de sesión del usuario.

Este fragmento de código hace varias cosas, primero registra la hora de inicio de sesión de un usuario y la guarda en el meta usuario ‘last_login’. También añade una columna de administración ‘Last Login’ ordenable a la lista de usuarios en el panel de administración. Por último, te permite mostrar el último inicio de sesión del usuario a través de un shortcode [lastlogin]. El shortcode también permite mostrar el último inicio de sesión de un usuario específico utilizando la variable user_id [lastlogin user_id=2].

<?php
//Record user's last login to custom meta
add_action( 'wp_login', 'smartwp_capture_login_time', 10, 2 );

function smartwp_capture_login_time( $user_login, $user ) {
  update_user_meta( $user->ID, 'last_login', time() );
}

//Register new custom column with last login time
add_filter( 'manage_users_columns', 'smartwp_user_last_login_column' );
add_filter( 'manage_users_custom_column', 'smartwp_last_login_column', 10, 3 );

function smartwp_user_last_login_column( $columns ) {
	$columns['last_login'] = 'Last Login';
	return $columns;
}

function smartwp_last_login_column( $output, $column_id, $user_id ){
	if( $column_id == 'last_login' ) {
    $last_login = get_user_meta( $user_id, 'last_login', true );
    $date_format = 'M j, Y';
    $hover_date_format = 'F j, Y, g:i a';
    
		$output = $last_login ? '<div title="Last login: '.date( $hover_date_format, $last_login ).'">'.human_time_diff( $last_login ).'</div>' : 'No record';
	}
  
	return $output;
}

//Allow the last login columns to be sortable
add_filter( 'manage_users_sortable_columns', 'smartwp_sortable_last_login_column' );
add_action( 'pre_get_users', 'smartwp_sort_last_login_column' );

function smartwp_sortable_last_login_column( $columns ) {
	return wp_parse_args( array(
	 	'last_login' => 'last_login'
	), $columns );
 
}

function smartwp_sort_last_login_column( $query ) {
	if( !is_admin() ) {
		return $query;
	}
 
	$screen = get_current_screen();
 
	if( isset( $screen->id ) && $screen->id !== 'users' ) {
		return $query;
	}
 
	if( isset( $_GET[ 'orderby' ] ) && $_GET[ 'orderby' ] == 'last_login' ) {
 
		$query->query_vars['meta_key'] = 'last_login';
		$query->query_vars['orderby'] = 'meta_value';
 
	}
 
  return $query;
}

//Add [lastlogin] shortcode
function smartwp_lastlogin_shortcode( $atts ) {
  $atts = shortcode_atts(
  array(
      'user_id' => false,
  ), $atts, 'lastlogin' );

  $last_login = get_the_author_meta('last_login', $atts['user_id']);
  if( empty($last_login) ){ return false; };
  $the_login_date = human_time_diff($last_login);
  return $the_login_date; 
}

add_shortcode( 'lastlogin', 'smartwp_lastlogin_shortcode' );

Después de añadir este fragmento de código, los inicios de sesión de los usuarios se registrarán y verás una nueva columna de último inicio de sesión. Si un usuario no se ha conectado desde que lo añadiste, verás un mensaje de “No Record”.

 

Si necesita saber la hora exacta de inicio de sesión, también puede pasar el ratón por encima de la hora para ver la marca de tiempo completa.

Lo mejor de todo es que si estás familiarizado con PHP puedes personalizar fácilmente todos los aspectos de esta funcionalidad.

Este fragmento de código también añade la capacidad de mostrar el último inicio de sesión de un usuario en el frontend. Por ejemplo, en la caja de autor de tu sitio puedes incluir el shortcode [lastlogin] para que los usuarios vean cuándo se conectó el autor por última vez.

Publicidad

Síguenos en Facebook