Estoy buscando una forma de llamar a wp_logout (lado del servidor) si mi cookie wordpress_logged_in_HASH caduca. Desafortunadamente, no puedo encontrar ninguna solución hasta ahora. Investigué mucho sobre stackoverflow y google, pero aún no lo he hecho. ¿Alguien tiene algunos consejos o ideas de cómo hacerlo?
Del lado del servidor, puedo verificar si la cookie sale con $_SERVER['HTTP_COOKIE'] . La variable sale en mi servidor compartido y esto funciona. Pero, ¿cómo ejecutar wp_logout automáticamente cuando caduca la cookie? ¿Quizás por algún javascript?
if(strpos($_SERVER['HTTP_COOKIE'], 'wordpress_logged_in') == true){ echo "Login cookie exists!<br>"; var_dump($_SERVER['HTTP_COOKIE']); //echo($startTime = microtime(true)); } else{ echo "Login cookie not exists!"; var_dump($_SERVER['HTTP_COOKIE']); }Simplemente cambie el tiempo de caducidad de la sesión, como se mencionó , agregando functions.php de su tema.php algo como:
add_filter('auth_cookie_expiration', 'my_expiration_filter', 99, 3); function my_expiration_filter($seconds, $user_id, $remember){ //if "remember me" is checked; if ( $remember ) { //WP defaults to 2 weeks; $expiration = 14*24*60*60; //UPDATE HERE; } else { //WP defaults to 48 hrs/2 days; $expiration = 2*24*60*60; //UPDATE HERE; } //http://en.wikipedia.org/wiki/Year_2038_problem if ( PHP_INT_MAX - time() < $expiration ) { //Fix to a little bit earlier! $expiration = PHP_INT_MAX - time() - 5; } return $expiration; } Sorprendentemente, WordPress no usa sesiones de PHP en absoluto. Utiliza únicamente cookies. Y utiliza varios de ellos con nombres cifrados.
Así que no te metas con ellos directamente, y hazlo a la manera de WordPress con filtros como los de arriba.
O llamando a las API de WordPress . Por ejemplo, si desea cerrar la sesión del usuario actual, puede llamar a wp_clear_auth_cookie : http://codex.wordpress.org/Function_Reference/wp_clear_auth_cookie