¿Qué hook se dispara cuando se actualiza la información del perfil de usuario?
Estoy buscando el hook que se dispara cuando se actualiza la información de un usuario. Específicamente, quiero actualizar una entrada con el valor de un campo personalizado del perfil (en mi ejemplo info
) cada vez que se actualiza el perfil de ese usuario.
Probé el hook profile_update
, pero parece que no se dispara:
add_action( 'profile_update', 'add_info_to_post' );
function add_info_to_post( $user_id ) {
// Obtener el meta info del usuario
$info = get_user_meta($user_id, 'info', true);
// Obtener todos los elementos de ese usuario
$args = array(
'author' => $user_id,
'post_type' => 'item',
);
$items = get_posts($args);
foreach ($items as $item){
update_post_meta($item->ID, 'user_info', $info);
}
}
¿Alguna sugerencia para hacer que esto funcione?
EDICIÓN: Tal vez debería mencionar que accedo a las páginas de perfil de los usuarios a través del backend...
Del Codex: API de Plugins - Referencia de Acciones - profile_update:
Nota: Este hook no se utiliza en las páginas de edición/perfil de usuario. Para enlazar con las páginas de edición de usuario en el administrador, utiliza el hook edit_user_profile_update que se encuentra en
/wp-includes/user-edit.php
en su lugar.
Del Codex: API de Plugins - Referencia de Acciones - edit_user_profile_update:
Este hook solo se activa cuando un usuario está viendo la página de perfil de otro usuario (no el propio). Si deseas aplicar tu hook a TODAS las páginas de perfil (incluyendo el usuario actual), entonces también necesitas usar el hook personal_options_update.

Puedes utilizar el hook de acción updated_user_meta
. Se activará inmediatamente después de actualizar los metadatos del usuario. Más información sobre el hook
He utilizado este hook para verificar si la foto de perfil del usuario ha sido actualizada. Aquí está el código funcional para mi caso:
/**
* Establecer la URL del avatar cuando se actualiza la foto de perfil del usuario
*
* Problema resuelto: necesitaba recargar la página para mostrar
* la foto de perfil en la barra lateral, incluso después de agregar/eliminar
* la foto de avatar en el formulario de perfil de usuario.
*/
add_action( 'updated_user_meta', 'gem_updated_profile_photo', 10, 4);
function gem_updated_profile_photo( $meta_id, $object_id, $meta_key, $meta_value ){
if ( $meta_key === 'avater' ) {
// haz tus operaciones aquí
}
}
