web-dev-qa-db-fra.com

wp_delete_user avec nom d'utilisateur

La fonction wp_delete_user() nécessite un ID utilisateur et [facultatif] réattribuer ID si le contenu doit être réaffecté à un autre utilisateur.

Les noms d'utilisateur de tous les utilisateurs sont également uniques car WP n'autorise pas les noms d'utilisateur en double. Si je connais le nom d'utilisateur, n'y a-t-il pas moyen avec une seule requête PHP/mysqli de supprimer l'utilisateur au lieu d'exécuter une requête pour rechercher l'ID de cet utilisateur en premier lieu, puis de demander à wordpress de le supprimer?

2
Rajesh Kakkad

Il n'y a aucun moyen de faire cela avec une seule requête. Mais pour être honnête - supprimer un utilisateur prend plus d'une requête ...

Vous ne devriez pas utiliser de code SQL personnalisé pour cela, car il y a beaucoup de choses que vous pourriez briser de cette façon ... Utilisez toujours les fonctions WP, si elles existent (et si un plugin enregistre tous les utilisateurs supprimés, ou si une autre action est nécessaire, etc.)

Vous pouvez utiliser get_user_by pour y parvenir. Voici l'exemple:

$user = get_user_by( 'login', 'john' );
if ( $user ) { // get_user_by can return false, if no such user exists
    wp_delete_user( $user->ID );
}

Les champs que vous pouvez obtenir par utilisateur sont les suivants: ID | slug | email | login.

1
Krzysiek Dróżdż

Il est recommandé d’utiliser la fonction wp_delete_user () de WordPress car elle supprimera également les méta de l’utilisateur en exécutant plusieurs requêtes sur la base de données WordPress.

Vérifiez le codex WordPress pour plus d’informations: https://developer.wordpress.org/reference/functions/wp_delete_user/

De plus, il est facile d’obtenir un identifiant utilisateur, puis de le supprimer en ajoutant quelque chose comme:

    $user = get_userdatabylogin('loginname');
    if($user){
        //delete user if exists
        wp_delete_user($user->ID);
    }

Sinon, vous devez exécuter plusieurs requêtes pour générer une requête très complexe afin de supprimer correctement l'utilisateur de la base de données WordPress.

0
Vatsh Patel