¿Está buscando una forma de capturar la fecha y hora del último inicio de sesión de un usuario? Si bien probablemente exista un plugin para esto, hemos creado un fragmento de código rápido que puede usar para capturar la fecha y hora del último inicio de sesión de los usuarios en WordPress.
Instrucciones:
Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico del sitio:
// set the last login date
add_action('wp_login','iiwp_set_last_login', 0, 2);
function iiwp_set_last_login($login, $user) {
$user = get_user_by('login',$login);
$time = current_time( 'timestamp' );
$last_login = get_user_meta( $user->ID, '_last_login', 'true' );
if(!$last_login){
update_usermeta( $user->ID, '_last_login', $time );
}else{
update_usermeta( $user->ID, '_last_login_prev', $last_login );
update_usermeta( $user->ID, '_last_login', $time );
}
}
// get last login date
function iiwp_get_last_login($user_id,$prev=null){
$last_login = get_user_meta($user_id);
$time = current_time( 'timestamp' );
if(isset($last_login['_last_login_prev'][0]) && $prev){
$last_login = get_user_meta($user_id, '_last_login_prev', 'true' );
}else if(isset($last_login['_last_login'][0])){
$last_login = get_user_meta($user_id, '_last_login', 'true' );
}else{
update_usermeta( $user_id, '_last_login', $time );
$last_login = $last_login['_last_login'][0];
}
return $last_login;
}
Luego puede usar el siguiente código para mostrar la fecha del último inicio de sesión. También es posible que desee mostrar la fecha del inicio de sesión anterior a sus usuarios. Simplemente use iiwp_get_last_login($current_user->ID,true)) para obtener la fecha del inicio de sesión anterior, no la actual.
// show last login date
global $current_user;
get_currentuserinfo();
echo '<p>Previous: Login date: ' . date("Y-m-d h:m:s", iiwp_get_last_login($current_user->ID,true)) . '</p>';
echo '<p>Current: Login date: ' . date("Y-m-d h:m:s", iiwp_get_last_login($current_user->ID)) . '</p>';
También puede comparar la fecha del último inicio de sesión con la fecha actual y obtener los días desde el último inicio de sesión con el siguiente código.
// how many days since last login global $current_user; get_currentuserinfo(); $now = time(); $last_login = iiwp_get_last_login($current_user->ID,true); $datediff = $now - $last_login; echo '<p>Days since last login: ' . floor($datediff/(60*60*24)) . '</p>';
Algunas funciones de la versión anterior a continuación han sido obsoletas, incluida get_userdatabylogin(). Utilice el código anterior, ya que es la versión más actual que utiliza get_user_by().
function your_last_login($login) {
global $user_ID;
$user = get_userdatabylogin($login);
update_usermeta($user->ID, 'last_login', current_time('mysql'));
}
add_action('wp_login','your_last_login');
function get_last_login($user_id) {
$last_login = get_user_meta($user_id, 'last_login', true);
$date_format = get_option('date_format') . ' ' . get_option('time_format');
$the_last_login = mysql2date($date_format, $last_login, false);
echo $the_last_login;
}
<?php
global $userdata;
get_currentuserinfo();
echo 'You last logged in:';
get_last_login($userdata->ID);
?>
Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo agregar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.
Si te gustó este fragmento de código, considera echar un vistazo a nuestros otros artículos en el sitio como: 23 consejos efectivos para conseguir más suscriptores de correo electrónico hoy y cómo crear un formulario de WordPress con un selector de fecha
cómo mostrar la hora y fecha del último inicio de sesión de todos los usuarios como una lista
en mostrar la hora y fecha del último inicio de sesión, el formato es incorrecto. por favor corríjalo. h:i:s es correcto
Gran aporte. Artículo realmente útil e informativo. Gracias por compartir con nosotros.
Código realmente útil aquí. Gracias.
Hola,
Soy nuevo en snippets, ¿cómo muestro este (o cualquier) snippet en el frontend?
Obsoleto
¡Hola! Gran código, ¡muchas gracias! Sin embargo, tengo una pregunta: ¿sería posible tener una lista de todos los usuarios que muestre si están conectados y la última vez que iniciaron sesión si no lo están?
Creo que sería una información muy interesante para cualquier administrador que trabaje con varios colaboradores.
Gracias de nuevo 😉
Gracias, me alegra que te guste el fragmento. Esto podría hacerse, pero hasta ese punto creo que un plugin sería lo más adecuado, hay algunos plugins disponibles.
http://wordpress.org/extend/plugins/who-is-online/
¡Parece un gran plugin, aunque un poco desactualizado, pero lo probaré, gracias!
Gracias Kevin,
Probaré eso.
Cuídate / Lars
Genial, lo probaré.
PERO, ¿sabes dónde encontrar el código para poder ver cuántas veces cada usuario inicia sesión en WordPress y también la última fecha? (Base de datos MySQL para poder obtener la última fecha).
Saludos / Lars
Bueno, lo anterior manejará la fecha del último inicio de sesión, sin embargo, el número de veces que un usuario ha iniciado sesión podría hacerse. Tendré que ver cómo agregar eso como un fragmento. Busqué pero no encontré nada.