Üblicherweise werden Admin-Funktionen außerhalb des Dashboards allerdings nicht gebraucht, und daher auch nicht geladen. Aus diesem Grund führt die der Aufruf wp_delete_user()
in einem Plugin zu dem Fehler.
require_once( ABSPATH . 'wp-admin/includes/user.php' );
Die Datei mit der Funktion muss daher eingebunden werden, um einen User über ein Plugin löschen zu können.
Ziemlich oft stolperte ich noch über den Hinweis, dass in einer Multisite-Umgebung
require_once( ABSPATH . 'wp-admin/includes/ms.php' );
eingebunden werden müsse. Allerdings nicht, wenn es nur um die Funktion wp_delete_user()
geht. Die gibt es nur einmal, und daher ist dafür unabhängig davon ob Multisite oder nicht, auch immer die user.php zuständig. In der Multisite-Umgebung wird mit wp_delete_user()
ein User allerdings nur von der aktuellen Site entfernt. Sein Account bleibt dennoch erhalten, und die Daten in der user- und usermeta-Tabelle gespeichert.
Die Datei braucht es also tatsächlich dafür, um einen User komplett aus dem Netzwerk zu löschen, jedoch dann mit der Funktion wpmu_delete_user()
.
Schreibe einen Kommentar