Wie erhalte ich die Benutzer-ID am Aktions-Hook von wp_logout?


8

Ich muss eine Bereinigung durchführen, nachdem sich ein Benutzer abgemeldet hat, also habe ich einen Aktions-Hook für wp_logout hinzugefügt. Das Problem ist, dass wp_get_current_user () bereits null zurückgibt, wenn es aus dem Aktions-Hook wp_logout heraus aufgerufen wird. Wie erhalte ich die Benutzer-ID für abmeldende Benutzer in einem Aktions-Hook für wp_logout?

Antworten:


14

Wie wäre es 'clear_auth_cookie'mit der Reinigung, die Sie durchführen müssen? Wenn Sie noch mehr Tiefe benötigen, können Sie diese direkt ersetzen. Dies wp_clear_auth_cookie()kann jedoch zu Problemen führen, bei denen Konflikte mit anderen Plugins auftreten. Vermeiden Sie dies daher, wenn möglich.


Vielen Dank! Genau das habe ich gesucht.
Davos Seaworth

Das hat perfekt funktioniert. Ich habe diesen Hook für ein benutzerdefiniertes Überwachungs-Plugin verwendet, um das Abmeldeereignis aufzuzeichnen. Vielen Dank.
Julianm

-2

Ich weiß, dass dies etwas spät ist ... aber ich bin selbst auf dieses Problem gestoßen. So habe ich das Problem gelöst.

Fügen Sie Ihrer functions.php Folgendes hinzu

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

Dadurch wird die Benutzer-ID grundsätzlich in einem URL-Parameter gespeichert, wenn sich der Benutzer abmeldet.

Dann erhalten Sie einfach den Parameter mit folgendem:

$_GET['userid']

Ich hoffe, das hilft jemandem in der Zukunft, der diesen Beitrag findet.


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

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

Verwenden Sie dies in der Plugin-Hauptdatei


4
Da das OP angibt, dass 'wp_get_current_user () bereits null zurückgibt, wenn es aus dem wp_logout-Aktions-Hook heraus aufgerufen wird, funktioniert dies nicht.
Marfarma
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.