GoPymes's Blog

wp_update_user para cambiar user_login

user

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/gopymes/blog.gopymes.pe/wp-content/plugins/codecolorer/codecolorer-core.php on line 111

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/gopymes/blog.gopymes.pe/wp-content/plugins/codecolorer/codecolorer-core.php on line 112

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/gopymes/blog.gopymes.pe/wp-content/plugins/codecolorer/codecolorer-core.php on line 111

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/gopymes/blog.gopymes.pe/wp-content/plugins/codecolorer/codecolorer-core.php on line 112

Para un proyecto pasado debía actualizar el user_login de un usuario para un evento en particular, entonces use el conocido wp_update_user con el siguiente código:

1
 

Donde $user_id es el ID del usuario a cambiar y $new_user_login es el nuevo user_login a actualizar. Sin embargo, el user_login no cambiaba, verifiqué cada paso, todo estaba en orden y yo sólo quedaba frustrado pues no entendía que sucedía.

Así que era el momento de profundizar en el código de WordPress y ver lo que estaba pasando. Una rápida búsqueda en Google revela que wp_update_user se define en wp-includes/registration.php, a partir de ahí resulta que wp_update_user hace un poco de magia, pero se basa en wp_insert_user para actualizar realmente la base de datos.

Esta función es definitivamente más complejo, pero finalmente se identifica mi problema. Cuando wp_insert_user se llama para actualizar un usuario, en lugar de crear un usuario, el campo user_login nunca se actualiza.

Entonces, sólo nos queda usar $wpdb->update

1
 

Y… solucionado!

Leave a Reply

Your email address will not be published. Required fields are marked *