Redirect After Delete Benutzer im Backend

Wie leite ich nach dem Löschen eines Nutzers auf eine bestimmte Seite um ?

Zu Demonstrationszwecken möchte ich sagen, dass ich beim Löschen von Benutzer-Abonnenten zum Dashboard redirect möchte. Das habe ich bisher versucht:

function mod_redirect_subscriber_delete($user_id) { $user = get_user_by('id', $user_id); $role = $user->roles[0]; if ($role == 'subscriber') { wp_redirect( admin_url('/index.php') ); exit; } } add_action("delete_user", "mod_redirect_subscriber_delete"); 

Der obige Code hat mich erfolgreich zum Dashboard umgeleitet, aber der Benutzer wurde nicht gelöscht .

Ich hatte auch deleted_user . Dies löschte den Benutzer, aber es wurde nicht umgeleitet.

Irgendwelche Ideen?

Prost!

Solutions Collecting From Web of "Redirect After Delete Benutzer im Backend"

Du könntest das auch tun,

 function mod_redirect_subscriber_delete($user_id) { $user = get_user_by('id', $user_id); $role = $user->roles[0]; if ($role == 'subscriber') { add_action("deleted_user", function(){ wp_redirect( admin_url('/index.php') ); exit; }); } } add_action("delete_user", "mod_redirect_subscriber_delete"); 

Anonyme functionen (Closures), verfügbar in PHP 5.3+.

performanceen:

  • Es ist nicht nötig, den initialen Hook von delete_user zu entfernen
  • Keine Notwendigkeit, wp_delete_user() erneut wp_delete_user()
  • Sie können immer noch auf deleted_user da wir die Rolle des Benutzers in der function behalten, daher setzen wir unsere Schließung in die if(conditional) statement.

a) delete_user hook:

Hier ist eine Idee:

Fügen Sie dies in Ihren Code ein, um den Benutzer zu löschen:

 remove_action("delete_user", "mod_redirect_subscriber_delete"); wp_delete_user($user_id); 

Wir entfernen den Aktionsrückruf, um zu verhindern, dass er sich selbst erneut aufruft.

So wird dein Code:

 function mod_redirect_subscriber_delete($user_id) { $user = get_user_by('id', $user_id); $role = $user->roles[0]; if ($role == 'subscriber') { // start extra: remove_action("delete_user", "mod_redirect_subscriber_delete"); wp_delete_user($user_id); // end extra wp_redirect( admin_url('/index.php') ); exit; } } add_action("delete_user", "mod_redirect_subscriber_delete"); 

b) deleted_user hook:

Der deleted_user Hook wird aktiviert, nachdem der Benutzer gelöscht wurde, jedoch nicht vorher wie im Fall delete_user .

Das bedeutet, dass Sie die Rolle des Benutzers nicht überprüfen können, da er gelöscht wurde.

Sie könnten es so verwenden, aber für alle Benutzer:

 function mod_redirect_subscriber_deleted($user_id) { wp_redirect( admin_url('/index.php') ); exit(); } add_action("deleted_user", "mod_redirect_subscriber_deleted");