Como alterar programaticamente o nome de usuário (user_login)?

13

Como no título, como alterar programaticamente o login do usuário?

Eu queria usar a função wp_insert_user , mas parece que ao atualizar o usuário atual, ele não altera seu nome de usuário. Devo usar $wpdb->update para isso? Se sim, como seria o código para alterar o nome de usuário? Quais as consequências que a alteração do login do usuário teria, já que a API do WordPress não permite alterar nomes de usuário?

    
por Mateusz Hajdziony 19.06.2013 / 16:59

2 respostas

19

Eu tinha certeza de que a função wp_update_user deveria fazer isso ( enlace ).

Até pega user_login como param, mas parece que o ignora quando você configura este parâmetro.

Portanto, este código parece OK, mas não funciona como você queria :(:

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

Você precisa chamar uma consulta SQL personalizada para atualizar user_login:

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

Funciona bem e não acho que tenha consequências sérias, pois o WP usa o ID de usuários para atribuir posts / comentários (e assim por diante) ao usuário.

O único problema que posso imaginar é que, quando este usuário estiver logado, ele será desconectado após a mudança de user_login.

    
por Krzysiek Dróżdż 19.06.2013 / 17:10
3

Você pode considerar também alterar o user_nicename por meio da consulta SQL. Feito isso, todos os permalinks e outras funções funcionarão perfeitamente.

    
por Mohit Aneja 11.06.2014 / 08:45