Es importante cerrar la sesión de un usuario de WordPress pasado un tiempo para mantener la seguridad de la cuenta.
Si un usuario no cierra la sesión, cualquier persona que tenga acceso al dispositivo puede acceder a la cuenta sin tener que ingresar la contraseña. Esto puede resultar en la divulgación de información confidencial, así como en el robo de identidad. Además, cerrar la sesión también ayuda a prevenir el uso no autorizado de la cuenta, por eso te dejo dos códigos para cerrar la sesión de un usuario en WordPress.
Plugin para cerrar la cuenta de un usuario de WordPress pasado un tiempo.
Este plugin esta dividido en dos partes:
- La primera parte del código se utiliza para comprobar si el usuario actual está conectado y, si es así, se obtiene la hora en la que se conectó. Luego se compara con la hora actual, si ha pasado más de 8 horas desde que se conectó se llama a la función
wp_logout()
para desconectar al usuario. - El segundo trozo de código se utiliza para actualizar la hora de conexión del usuario cada vez que se conecta, esto es importante para saber desde cuando comenzo a contar las 8 horas de inactividad.
<?php
/*
Plugin Name: Force Login Expiration
Description: Forza la desconexión del usuario después de 8 horas de inactividad
*/
add_action('init', 'force_login_expiration');
function force_login_expiration() {
if (is_user_logged_in()) {
$logged_in_time = get_user_meta(get_current_user_id(), 'logged_in_time', true);
$current_time = time();
// Si ha pasado más de 8 horas desde que el usuario se conectó
if ($current_time - $logged_in_time > 8 * 60 * 60) {
wp_logout();
}
}
}
add_action('wp_login', 'update_logged_in_time');
function update_logged_in_time($user_login) {
$user = get_user_by('login', $user_login);
update_user_meta($user->ID, 'logged_in_time', time());
}
Una cosa más este código es solo un ejemplo básico, y puedes personalizarlo para adaptarse a tus necesidades, por ejemplo, puedes cambiar la cantidad de horas que quieres que el usuario se mantenga conectado.
Codigo para cerrar la cuenta de un usuario en WordPress usando las Cookies.
También te dejo este código que puedes usar en el archivo de functions.php , que hace algo similar pero cuando las cookies.
<?php
/* Fuerza estar logeado max 8 horas en segundos */
add_filter( 'auth_cookie_expiration', 'logueado_8_hora' );
function logueado_8_hora( $expire ) {
return 28800; // 8 horas en segundos
};?>