Home / Admin / Lock users if website is idle for certain period ウェブサイトが一定期間アイドル状態の場合にユーザーをロックするBy Amiru San
Duplicate Snippet

Embed Snippet on Your Site

Lock users if website is idle for certain period ウェブサイトが一定期間アイドル状態の場合にユーザーをロックするBy Amiru San

如果网站闲置一段时间,锁定用户. ウェブサイトが一定期間アイドル状態の場合にユーザーをロックする By Amiru San

Code Preview
php
<?php
/**
 * Lock user out after 5 minutes of inactivity by Amiru ウェブサイトが一定期間アイドル状態の場合にユーザーをロックする.
 */
add_action( 'init', 'lock_user_after_inactivity' );
function lock_user_after_inactivity() {
    // Check if the user is logged in
    if ( is_user_logged_in() ) {
        // Get the current user ID
        $user_id = get_current_user_id();
        // Get the last activity timestamp for the user
        $last_activity = get_user_meta( $user_id, 'last_activity', true );
        // Get the current time
        $current_time = time();
        // Calculate the time difference in seconds
        $time_diff = $current_time - $last_activity;
        // If the time difference is greater than 5 minutes (300 seconds)
        if ( $time_diff > 300 ) {
            // Log the user out
            wp_logout();
            // Redirect to the login page with an error message
            wp_redirect( wp_login_url( array( 'login' => 'false', 'reason' => 'inactive' ) ) );
            exit;
        }
        // Update the last activity timestamp
        update_user_meta( $user_id, 'last_activity', $current_time );
    }
}
// Update last activity timestamp on every page load
add_action( 'wp', 'update_user_last_activity' );
function update_user_last_activity() {
    if ( is_user_logged_in() ) {
        $user_id = get_current_user_id();
        update_user_meta( $user_id, 'last_activity', time() );
    }
}

Comments

Add a Comment