¿Cómo cambiar programáticamente el nombre de usuario (user_login)?

13

Al igual que en el título, ¿cómo cambiar de manera programática el inicio de sesión del usuario?

Quería usar la función wp_insert_user , pero parece que al actualizar el usuario actual, no cambia su nombre de usuario. ¿Debo usar $wpdb->update para eso? Si es así, ¿cómo sería el código para cambiar el nombre de usuario? ¿Qué consecuencias tendría el cambio de inicio de sesión del usuario, dado que la API de WordPress no permite cambiar los nombres de usuario?

    
pregunta Mateusz Hajdziony 19.06.2013 - 16:59

2 respuestas

19

Estaba seguro de que la función wp_update_user debería hacer esto ( enlace ).

Incluso obtiene user_login como parámetro, pero parece que lo ignora cuando configuras este parámetro.

Entonces, este código se ve bien, pero no funciona como quisieras :(:

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

Tienes que llamar una consulta SQL personalizada para actualizar user_login:

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

Funciona bien y no creo que tenga consecuencias graves, porque WP usa la identificación de los usuarios para asignar publicaciones / comentarios (y así sucesivamente) al usuario.

El único problema que se me ocurre es que cuando este usuario está actualmente conectado, se cerrará la sesión después de cambiar user_login.

    
respondido por el Krzysiek Dróżdż 19.06.2013 - 17:10
3

También puede considerar cambiar el nombre de usuario_nic a través de la consulta SQL. Una vez hecho esto, todos los enlaces permanentes y otras funciones funcionarán perfectamente.

    
respondido por el Mohit Aneja 11.06.2014 - 08:45

Lea otras preguntas en las etiquetas