Quale hook viene utilizzato quando le informazioni del profilo utente vengono aggiornate?

5 giu 2014, 13:22:12
Visualizzazioni: 28.2K
Voti: 7

Sto cercando l'hook che si attiva quando le informazioni di un utente vengono aggiornate. Nello specifico, voglio aggiornare un post con il valore di un campo personalizzato del profilo (nel mio esempio info) ogni volta che il profilo di quell'utente viene modificato.

Ho provato l'hook profile_update, ma sembra non attivarsi:

add_action( 'profile_update', 'add_info_to_post' );
function add_info_to_post( $user_id ) {

        $info=get_user_meta($user_id,'info',true);

        //recupera tutti gli elementi di quell'utente
        $args=array(
                'author' => $user_id,
                'post_type' => 'item',
        );

        $items=get_posts($args);            
        foreach ($items as $item){
        update_post_meta($item->ID,'user_info',$info);
        }
}

Avete suggerimenti su come farlo funzionare?

MODIFICA: Forse dovrei menzionare che accedo alle pagine del profilo degli utenti attraverso il backend..

2
Commenti

Nel tuo codice il nome della funzione e la funzione che hai in add_action non corrispondono.

Nicolai Grossherr Nicolai Grossherr
5 giu 2014 13:25:06

giusto! corretto

yumba yumba
5 giu 2014 13:26:55
Tutte le risposte alla domanda 2
0
11

Dal Codex: Plugin API - Riferimento Azioni - profile_update:

Nota: Questo hook non viene utilizzato nelle pagine di modifica/profilo utente. Per intervenire nelle pagine di modifica utente dell'amministratore, utilizza invece l'hook edit_user_profile_update che si trova in /wp-includes/user-edit.php.

Dal Codex: Plugin API - Riferimento Azioni - edit_user_profile_update:

Questo hook viene attivato solo quando un utente visualizza la pagina del profilo di un altro utente (non il proprio). Se vuoi applicare il tuo hook a TUTTE le pagine di profilo (incluso l'utente corrente) allora devi utilizzare anche l'hook personal_options_update.

5 giu 2014 13:31:19
0

Puoi utilizzare l'hook di azione updated_user_meta. Verrà attivato immediatamente dopo l'aggiornamento dei metadati dell'utente. Maggiori informazioni sull'hook

Ho utilizzato questo hook per verificare se la foto del profilo utente è stata aggiornata. Ecco il codice funzionante per il mio caso:

/** 
 * Imposta l'URL dell'avatar del profilo quando viene aggiornata la foto del profilo utente
 * 
 * Problema risolto: è necessario ricaricare la pagina per visualizzare la 
 * foto del profilo nella sidebar, anche dopo aver aggiunto/rimosso l'avatar nel modulo del profilo utente.
 */
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' ) {
        // fai le tue operazioni qui
    }
}
27 lug 2024 20:52:55