Как получить идентификатор пользователя в хуке действий wp_logout?

8

Мне нужно выполнить некоторую очистку после выхода пользователя из системы, поэтому я добавил хук действия wp_logout. Проблема в том, что wp_get_current_user () уже возвращает ноль, если вызывается из ловушки действия wp_logout. Как получить идентификатор пользователя для выхода из системы в хуке действия wp_logout?

Давос Сиворт
источник

Ответы:

14

Как насчет зацепки 'clear_auth_cookie'за уборку, которую нужно сделать? Если вам нужна еще большая глубина, вы можете сразу заменить wp_clear_auth_cookie(), но это может привести к проблемам, которые будут конфликтовать с другими плагинами, поэтому избегайте этого, если это возможно.

mor7ifer
источник
Большое спасибо! Это именно то, что я искал.
Давос Сиворт
Это сработало отлично. Я использовал этот хук для пользовательского плагина аудита, чтобы записать событие выхода из системы. Спасибо.
Джулиан
-2

Я знаю, что это немного поздно ... но я столкнулся с этой проблемой сам. Вот как я решил проблему.

Добавьте следующее в ваши functions.php

function logout_redirect765(){
  $current_user = wp_get_current_user(); 
  wp_redirect( home_url().'/?userid='.$current_user->ID ); 
  exit; 
}
add_action('wp_logout','logout_redirect765');

Это в основном сохраняет идентификатор пользователя в параметре url, когда пользователь выходит из системы.

Затем просто получите параметр со следующим:

$_GET['userid']

Я надеюсь, что это поможет кому-то в будущем, кто найдет этот пост.

danyo
источник
-3
add_action('wp_logout', 'user_id');

function user_id()
{
    wp_get_current_user()->data->ID;
}

используйте это в основном файле плагина

Сандип
источник
4
Поскольку OP заявляет, что «wp_get_current_user () уже возвращает ноль, если вызывается из ловушки действия wp_logout» - так что это не будет работать.
Марфарма