Ce hook se folosește când se actualizează informațiile profilului utilizatorului?

5 iun. 2014, 13:22:12
Vizualizări: 28.2K
Voturi: 7

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..

2
Comentarii

În codul tău, numele funcției și funcția pe care o ai în add_action nu se potrivesc.

Nicolai Grossherr Nicolai Grossherr
5 iun. 2014 13:25:06

corect! am corectat

yumba yumba
5 iun. 2014 13:26:55
Toate răspunsurile la întrebare 2
0
11

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.

5 iun. 2014 13:31:19
0

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
    }
}
27 iul. 2024 20:52:55