Forzar inicio de sesión WordPress

Vamos a cambiar la duración del período de vencimiento de las cookies de autenticación.
Esto será muy sencillo, solo debemos utilizar el siguiente bloque de código y copiarlo en nuestro functions.php

// Haremos un filtro en 'auth_cookie_expiration' e inyectaremos la función de 'log_out'
add_filter('auth_cookie_expiration', 'log_out',10,3);
// Esta función recibe El tiempo de expiración, el id del usuario , un boolean de recordar al usuario 
// La función regresa la expiración.
 function log_out($expiry, $user_id, $remember) {
   return 3600; // el tiempo que quieres que pase hasta que quieras que expire. Esto aplica a todos los usuarios.
 }

Otro ejemplo. Sí el usuario es administrador y quieres que su sesión dure mas tiempo.

// Haremos un filtro en 'auth_cookie_expiration' e inyectaremos la función de 'log_out'
add_filter('auth_cookie_expiration', 'log_out',10,3);

// Esta función recibe El tiempo de expiración, el id del usuario , un boolean de recordar al usuario 
// La función regresa la expiración.
 function log_out($expiry, $user_id, $remember) {

    $usuario = wp_get_current_user(); // Obtenemos el usuario actual
    $allowed_roles = array('administrator'); // Podemos agregarle otro rol en caso de que el admin cuente con otro rol.

    // Comparamos los dos arreglos 
    if( array_intersect($allowed_roles, $usuario ->roles ) ) { 
        // Sí el arreglo coincide el tiempo de expiración será de 5hrs
        $expiracion = 18000;
    }else{
        // Caso contrario será de 1hr.
        $expiracion = 3600;
    }

    return $expiracion; // Regresamos el valor de expiración
 }

Deja un comentario

Share This