Comment modifier le nom d'utilisateur par programme (user_login)?

13

Comme dans le titre, comment modifier par programmation les informations de connexion de l'utilisateur?

Je voulais utiliser la fonction wp_insert_user , mais il semble que lors de la mise à jour de l'utilisateur actuel, son nom d'utilisateur ne soit pas modifié. Devrais-je utiliser $wpdb->update pour cela? Si oui, à quoi ressemblerait le code pour changer de nom d'utilisateur? Quelles seraient les conséquences d'un changement de connexion d'utilisateur, étant donné que l'API WordPress ne permet pas de changer de nom d'utilisateur?

    
posée Mateusz Hajdziony 19.06.2013 - 16:59

2 réponses

19

J'étais certain que wp_update_user function devrait le faire ( enlace ).

Il devient même user_login en tant que paramètre, mais il semble qu'il l'ignore lorsque vous définissez ce paramètre.

Donc, ce code a l'air correct, mais il ne fonctionne pas comme vous le souhaiteriez :(:

wp_update_user( array ( 'ID' => $user_id, 'user_login' => $new_login ) ) ;

Vous devez appeler une requête SQL personnalisée pour mettre à jour le user_login:

$wpdb->update($wpdb->users, array('user_login' => $new_user_login), array('ID' => $user_id));

Cela fonctionne bien et je ne pense pas que cela ait de conséquences graves, car WP utilise l'identifiant de l'utilisateur pour attribuer des publications / commentaires (etc.) à l'utilisateur.

Le seul problème auquel je peux penser est que, lorsque cet utilisateur est actuellement connecté, il le sera après le changement de user_login.

    
réponse donnée Krzysiek Dróżdż 19.06.2013 - 17:10
3

Vous pouvez également envisager de changer le nom d'utilisateur (user_nicename) via la requête SQL. Une fois que cela est fait, tous les permaliens et autres fonctions fonctionneront parfaitement.

    
réponse donnée Mohit Aneja 11.06.2014 - 08:45

Lire d'autres questions sur les étiquettes