2016-05-10 33 views
5

Desidero aggiornare un campo personalizzato user_meta quando un utente ha caricato una nuova immagine (non avatar).Gancio per Buddypress dopo il caricamento dell'immagine

codice di lavoro per avatar in upload

add_action('xprofile_avatar_uploaded', 'callback'); 

function callback($user_id, $type) 
{ 
    // $activity_id = <- the activity from the uploded image. 

    update_user_meta($user_id, 'image_'.$activity_id, '1'); 
} 
+0

puoi condividere i dettagli su dove caricare l'immagine in buddypress? – user5200704

+0

il normale caricamento dell'immagine http://DOMAIN.COM/members/USERNAME/media/photo/ – Peter

+0

media/foto non fornisce buddypress default che cos'è un plugin esterno da buddypress se sì dammi il nome del plugin o il link che usa il plugin. – user5200704

risposta

4

Quando si utilizza rtMedia plug-in per BuddyPress e caricare le foto forniscono un'azione rtmedia_after_add_media con tre argomenti è possibile gestire la personalizzazione.

add_action('rtmedia_after_add_media', 'rtmedia_after_add_media_update_usermeta', 10, 3); 

function rtmedia_after_add_media_update_usermeta($media_ids, $file_object, $uploaded){ 
    // its not provide user id arg so you can get current user id using function get_current_user_id() or $uploaded array have key media_author; 
    // $media_ids give all attahment ids when you upload file 
    // $file_object give infomation about file like name, path etc 
    // $uploaded current upload give settings and update information. Its also gives authore id who is upload media. 
    // $user_id = $uploaded['media_author']; 
    $user_id = $uploaded['media_author']; 

} 
3

ho overrode bp_core_avatar_handle_upload con la seguente funzione. Chiama bp_core_avatar_handle_upload al suo interno, ma evita un ciclo infinito impostando e controllando il valore di una variabile globale.

global $my_bp_group_avatar_upload; 
    function my_bp_group_avatar_upload($upload, $file, $upload_dir_filter) 
    { 
    // Global. 
    global $my_bp_group_avatar_upload; 

    // Check upload filter. 
    if ($upload_dir_filter != ‘groups_avatar_upload_dir’) 
    return; 

    // Check if this is the second call. 
    if ($my_bp_group_avatar_upload !== 2) 
    { 
    // We are being called for the first time! 

    // We are about to call the second time. 
    $my_bp_group_avatar_upload = 2; 

    // Call the function. 
    // We’re calling ourselves too, but this time the global equals 2, so we are now in the else statement. 
    if (bp_core_avatar_handle_upload($file, $upload_dir_filter)) { 
    // Do stuff here, the upload was a success. 
    } 

    // We’ve executed the function. We can bail out of the original function run. 
    return FALSE; 
    } else { 
    // We have been called a second time, so set this to something other than 2. 
    $my_bp_group_avatar_upload = 0; 

    // We want to continue with the execution. 
    return TRUE; 
    } 
    } 
    add_filter(‘bp_core_pre_avatar_handle_upload’, ‘my_bp_group_avatar_upload’, 10, 3);