Muitas vezes há necessidade, por segurança ou exigência do projeto, forçar a desconexão de um usuário. Eis o código a ser adicionado, ou no arquivo functions.php, ou em algum plugin:
// DESCONECTA QUALQUER USUÁRIO DEPOIS DE 4 HORAS
add_action( 'wp_enqueue_scripts', 'enqueue_logout_script' );
function enqueue_logout_script() {
if( is_user_logged_in() && !current_user_can( 'administrator' ) ) {
wp_enqueue_script( 'jquery' );
$logout_script = '
jQuery(document).ready(function($) {
setTimeout(function() {
$.post("' . admin_url( 'admin-ajax.php' ) . '", { action: "logout_now" }, function(response) {
if (response.success) {
alert("Sua sessão expirou. Você será desconectado agora.");
window.location.href = "' . home_url() . '";
}
});
}, 14400000); // 14400000 ms = 4 horas
});';
wp_add_inline_script( 'jquery', $logout_script );
}
}
add_action( 'wp_ajax_logout_now', 'logout_now' );
function logout_now() {
wp_logout();
wp_send_json_success();
wp_die();
}