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.