Buddypress hook after image is uploaded

i want to update a custom user_meta field when a user uploaded a new image (not avatar).

Working code for avatar 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');
}

Related posts

2 comments

  1. When you are using rtMedia plugin for buddypress and upload photos provide a action rtmedia_after_add_media with three arguments you can handle your customization.

    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'];
    
    }
    
  2. I overrode bp_core_avatar_handle_upload with the following function. It calls bp_core_avatar_handle_upload within it, but avoids an infinite loop by setting and checking the value of a global variable.

    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 );
    

Comments are closed.