我研究了几种不同的方法来检查特定角色的用户何时注销。调用是在插件中进行的。
在主循环中,我有以下内容:
add_action( \'wp_logout\', mmd_JudgeLogoutCheck, 10,0);
function mmd_JudgeLogoutCheck()
{
$current_user = wp_get_current_user();
if ( in_array( \'judge\', (array) $current_user->roles ) )
{
mmd_StoreJudgeStatus($current_user->user_email, JUDGE_LOGGED_OUT, 0);
}
}
每次调用wp\\u get\\u current\\u user时,返回一个空白。那封电子邮件是我功能的关键。我也试过了
add_action( \'wp_logout\', function() {
$user = wp_get_current_user();
mmd_JudgeLogoutCheck($user);
// ...
}, 10, 0);
function mmd_JudgeLogoutCheck($current_user )
{
if ( in_array( \'judge\', (array) $current_user->roles ) )
{
mmd_StoreJudgeStatus($current_user->user_email, JUDGE_LOGGED_OUT, 0);
}
}
相同的结果。较早发生的呼叫似乎没有用户信息。任何关于如何获取哪个特定用户正在注销的帮助都会很有帮助。
SO网友:Debbie Kurth
你难道不知道吗,在我写这个问题的那一刻,我想到了另一个想法,它奏效了。以下是解决方案:
在plugin main中,添加以下内容,而不是:
add_action( \'clear_auth_cookie\', mmd_JudgeLogoutCheck, 10,0); <<<< ADD THIS INSTEAD
///add_action( \'wp_logout\', mmd_JudgeLogoutCheck, 10,0); <<<<< REMOVE THIS
function mmd_JudgeLogoutCheck()
{
$current_user = wp_get_current_user();
if ( in_array( \'judge\', (array) $current_user->roles ) )
{
mmd_StoreJudgeStatus($current_user->user_email, JUDGE_LOGGED_OUT, 0);
}
}
似乎清除授权cookie时会携带用户信息。