Benutzer vom Frontend löschen

Hallo Ich arbeite an einem Frontend-Admin, wo ein Benutzer in der Lage sein muss, seinen Account zu löschen. current_user() ist eine benutzerdefinierte function von mir, die die Benutzer-Metadaten abruft.

Weiß jemand wie ich das machen kann?

 echo '' . __( 'Click here to remove your account' ) . ''; // Remove account function terminate_account() { require_once( ABSPATH . 'wp-admin/includes/user.php' ); wp_delete_user( current_user( 'ID' ) ); } if( isset( $_GET['remove_account'] ) ) { add_action( 'init', 'terminate_account' ); } 

Solutions Collecting From Web of "Benutzer vom Frontend löschen"

wp_delete_user direkt aus der wp_delete_user Dokumentation :

 if(is_user_logged_in() && !empty($_GET['DeleteMyAccount'])) { add_action('init', 'remove_logged_in_user'); } function remove_logged_in_user() { require_once(ABSPATH.'wp-admin/includes/user.php' ); $current_user = wp_get_current_user(); wp_delete_user( $current_user->ID ); } 

Dinge zu beachten:

  • Ihr Code hat nicht überprüft, ob der Benutzer angemeldet war oder nicht
  • Zu dem Zeitpunkt, zu dem Sie den Link zum Entfernen von Benutzern drucken, ist die Aktion “init” bereits ausgeführt und abgeschlossen, sodass Ihr Benutzer zum Löschen nicht mehr funktioniert. Dieser Teil des Codes muss früher ausgeführt werden, z. B. in functions.php oder einem Plugin

bearbeiten:

Wenn Sie dies in Ihre Themes-functionsdatei einfügen können:

 add_action('init', 'remove_logged_in_user'); function remove_logged_in_user() { require_once(ABSPATH.'wp-admin/includes/user.php' ); $current_user = wp_get_current_user(); $success = wp_delete_user( $current_user->ID ); wp_die('wp delete gave: 
"'.print_r($success).'"

'); }