Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
09/24/2015 10:28:21 AM (9 years ago)
Author:
imath
Message:

Make sure the xprofile_avatar_uploaded action is fired once the avatar of the user is set.

In 2.3.0, we introduced a new UI to manage avatar. It now uses Ajax to upload and set the avatar. Unfortunately a confusion was made about the xprofile_avatar_uploaded action. It was firing immediately after the avatar was uploaded but before it has been set using the cropping tool.

This commit is:

  • making sure the action is fired at the right time
  • adding new parameters to the action to inform about the User ID and the way the avatar was set ("crop" or "camera")
  • making sure an activity will be generated if the avatar was set within the wp-admin/extended-profile.

Props r-a-y, landwire

See #6612 (branch 2.3)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.3/src/bp-core/bp-core-avatars.php

    r9860 r10134  
    988988    $name = trim( substr( $name, 0, - ( 1 + strlen( $name_parts['extension'] ) ) ) );
    989989
    990     if ( 'user' === $bp_params['object'] ) {
    991         do_action( 'xprofile_avatar_uploaded' );
    992     }
    993 
    994990    // Finally return the avatar to the editor
    995991    bp_attachments_json_response( true, $is_html4, array(
     
    10421038        // Crop to default values
    10431039        $crop_args = array( 'item_id' => $item_id, 'original_file' => $avatar_to_crop, 'crop_x' => 0, 'crop_y' => 0 );
    1044 
    1045         do_action( 'xprofile_avatar_uploaded' );
    10461040
    10471041        return bp_core_avatar_handle_crop( $crop_args );
     
    11791173            );
    11801174
    1181             do_action( 'xprofile_screen_change_avatar' );
     1175            /**
     1176             * Fires if the new avatar was successfully captured.
     1177             *
     1178             * @since 1.1.0 Used to inform the avatar was successfully cropped
     1179             * @since 2.3.4 Add two new parameters to inform about the user id and
     1180             *              about the way the avatar was set (eg: 'crop' or 'camera')
     1181             *              Move the action at the right place, once the avatar is set
     1182             *
     1183             * @param string $item_id Inform about the user id the avatar was set for
     1184             * @param string $type    Inform about the way the avatar was set ('camera')
     1185             */
     1186            do_action( 'xprofile_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'] );
    11821187
    11831188            wp_send_json_success( $return );
     
    12241229
    12251230        if ( 'user' === $avatar_data['object'] ) {
    1226             do_action( 'xprofile_screen_change_avatar' );
     1231            /**
     1232             * Fires if the new avatar was successfully cropped.
     1233             *
     1234             * @since 1.1.0 Used to inform the avatar was successfully cropped
     1235             * @since 2.3.4 Add two new parameters to inform about the user id and
     1236             *              about the way the avatar was set (eg: 'crop' or 'camera')
     1237             *              Move the action at the right place, once the avatar is set
     1238             *
     1239             * @param string $item_id Inform about the user id the avatar was set for
     1240             * @param string $type Inform about the way the avatar was set ('crop')
     1241             */
     1242            do_action( 'xprofile_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'] );
    12271243        }
    12281244
Note: See TracChangeset for help on using the changeset viewer.