在注销前获取注销时间

Get log out time just before logging out

我有一个代码可以在您注销 wordpress 时获取用户名并将其写入日志文件,但是当我将 wordpress 核心更新到 5.7 时它已停止工作。 当您注销时,用户名不再写入文件。也许我的钩子有问题。这是我的代码:

        function get_username(){
         if(is_user_logged_in()){   
         $active_user = wp_get_current_user();           
         $username = $active_user->user_login;
         $username = "User's username: ".$username;
         log_file_setup($username);
         }
        }


      add_action('wp_logout', 'get_username',1);  

您可以使用clear_auth_cookie函数获取用户名。

function users_last_login() {
    if(is_user_logged_in()){   
        $active_user = wp_get_current_user();           
        $username    = $active_user->user_login;
        $username    = "User's username: ".$username;
        update_user_meta( $active_user->ID, 'logout_time', date('Y-m-d H:i:s') );
        log_file_setup($username);
    }
}
add_action( 'clear_auth_cookie', 'get_username_on_logout', 10 );

或者您可以使用 template_redirect

function get_username_on_template_redirect() {
    if ( isset( $_GET['action'] ) && $_GET['action'] == 'logout' && is_user_logged_in() ) {
        $active_user = wp_get_current_user();           
        $username    = $active_user->user_login;
        $username    = "User's username: ".$username;
        update_user_meta( $active_user->ID, 'logout_time', date('Y-m-d H:i:s') );
        log_file_setup($username);
    }
}

add_action( 'template_redirect', 'get_username_on_template_redirect' );

我想我明白了

我更改了挂钩:

 add_action( 'wp_logout', 'get_username', 1 );

  add_action('clear_auth_cookie', 'get_username',1); 

欢迎提出任何其他建议