wp_logoutアクションフックでユーザーIDを取得する方法


8

ユーザーがログアウトした後でクリーンアップを実行する必要があるため、wp_logoutアクションフックを追加しました。問題は、wp_get_current_user()がwp_logoutアクションフック内から呼び出された場合、すでにnullを返すことです。ログアウトユーザーのユーザーIDをwp_logoutアクションフック内で取得するにはどうすればよいですか?

回答:


14

'clear_auth_cookie'あなたがする必要がある掃除に引っ掛かってはいかがですか?さらに深さが必要な場合は、完全にを置き換えることができますがwp_clear_auth_cookie()、他のプラグインと競合する問題が発生する可能性があるため、可能であればそれを避けてください。


どうもありがとうございました!これはまさに私が探していたものです。
ダボスシーワース

これは完全に機能しました。この監査フックをカスタム監査プラグインに使用して、ログアウトイベントを記録しました。ありがとうございました。
julianm

-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');

これは基本的に、ユーザーがログアウトするときにユーザーIDをurlパラメーターに格納します。

次に、次のパラメータを取得します。

$_GET['userid']

これがこの投稿を見つけた将来の誰かに役立つことを願っています。


-3
add_action('wp_logout', 'user_id');

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

プラグインのメインファイルでこれを使用する


4
OPが「wp_get_current_user()は、wp_logoutアクションフック内から呼び出された場合、すでにnullを返す」と述べているため、これは機能しません。
marfarma 2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.