Ce hook se folosește când se actualizează informațiile profilului utilizatorului?
Caut hook-ul care se declanșează când informațiile unui utilizator sunt actualizate. Mai exact, vreau să actualizez o postare cu valoarea unui câmp personalizat din profil (în exemplul meu info
) de fiecare dată când profilul utilizatorului este actualizat.
Am încercat hook-ul profile_update
, dar pare că nu se declanșează:
add_action( 'profile_update', 'add_info_to_post' );
function add_info_to_post( $user_id ) {
$info=get_user_meta($user_id,'info',true);
//preia toate elementele acelui utilizator
$args=array(
'author' => $user_id,
'post_type' => 'item',
);
$items=get_posts($args);
foreach ($items as $item){
update_post_meta($item->ID,'user_info',$info);
}
}
Aveți sugestii cum să fac să funcționeze?
EDITARE: Poate ar trebui să menționez că accesez paginile de profil ale utilizatorilor prin backend..
Din Codex: Plugin API - Referință Acțiuni - profile_update:
Notă: Acest hook nu este utilizat pe paginile de editare/profil ale utilizatorului. Pentru a interveni în paginile de editare a utilizatorului din administrare, folosește hook-ul edit_user_profile_update care se găsește în
/wp-includes/user-edit.php
în schimb.
Din Codex: Plugin API - Referință Acțiuni - edit_user_profile_update:
Acest hook se declanșează doar când un utilizator vizualizează pagina de profil a altui utilizator (nu a sa). Dacă dorești să aplici hook-ul tău la TOATE paginile de profil (inclusiv la utilizatorul curent), atunci trebuie să folosești și hook-ul personal_options_update.

Puteți utiliza hook-ul de acțiune updated_user_meta
. Acesta se va declanșa imediat după actualizarea metadatelor utilizatorului. Mai multe despre acest hook
Am folosit acest hook pentru a verifica dacă fotografia de profil a utilizatorului a fost actualizată. Iată codul funcțional pentru cazul meu:
/**
* Setează URL-ul avatarului la actualizarea fotografiei de profil
*
* Problemă rezolvată: era necesară reîncărcarea paginii pentru a popula
* fotografia de profil în bara laterală, chiar și după adăugarea/ștergerea
* fotografiei în formularul de profil al utilizatorului.
*/
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' ) {
// faci operațiunile necesare aici
}
}
