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?

Davos Seaworth
quelle

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.

mor7ifer
quelle
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.

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

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

Verwenden Sie dies in der Plugin-Hauptdatei

Sandeep
quelle
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