Мне нужно выполнить некоторую очистку после выхода пользователя из системы, поэтому я добавил к ней действие wp_logout. Проблема заключается в том, что wp_get_current_user () уже возвращает null, если вызвано из-за крюка действия wp_logout. Как я могу получить пользователя userid из пользовательского элемента wp_logout?
Как насчет привязки 'clear_auth_cookie'
к очистке, которую вам нужно сделать? Если вам нужна еще большая глубина, вы можете полностью заменить wp_clear_auth_cookie()
, но это может привести к проблемам, в которых оно будет конфликтовать с другими плагинами, поэтому избегайте этого, если это возможно.
Я знаю, что это немного поздно … но я столкнулся с этой проблемой. Вот как я решил проблему.
Добавьте в свои функции 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']
Надеюсь, это поможет кому-то в будущем найти этот пост.
add_action('wp_logout', 'user_id'); function user_id() { wp_get_current_user()->data->ID; }
используйте это в главном файле плагина