bp_members_screen_change_avatar()

Handle the display of the profile Change Avatar page by loading the correct template file.


Source Source

File: bp-members/screens/change-avatar.php

function bp_members_screen_change_avatar() {
	// Bail if not the correct screen.
	if ( ! bp_is_my_profile() && ! bp_current_user_can( 'bp_moderate' ) ) {
		return false;
	}

	// Bail if there are action variables.
	if ( bp_action_variables() ) {
		bp_do_404();
		return;
	}

	$bp = buddypress();

	if ( ! isset( $bp->avatar_admin ) ) {
		$bp->avatar_admin = new stdClass();
	}

	$bp->avatar_admin->step = 'upload-image';

	if ( !empty( $_FILES ) ) {

		// Check the nonce.
		check_admin_referer( 'bp_avatar_upload' );

		// Pass the file to the avatar upload handler.
		if ( bp_core_avatar_handle_upload( $_FILES, 'bp_members_avatar_upload_dir' ) ) {
			$bp->avatar_admin->step = 'crop-image';

			// Make sure we include the jQuery jCrop file for image cropping.
			add_action( 'wp_print_scripts', 'bp_core_add_jquery_cropper' );
		}
	}

	// If the image cropping is done, crop the image and save a full/thumb version.
	if ( isset( $_POST['avatar-crop-submit'] ) ) {

		// Check the nonce.
		check_admin_referer( 'bp_avatar_cropstore' );

		$args = array(
			'item_id'       => bp_displayed_user_id(),
			'original_file' => $_POST['image_src'],
			'crop_x'        => $_POST['x'],
			'crop_y'        => $_POST['y'],
			'crop_w'        => $_POST['w'],
			'crop_h'        => $_POST['h']
		);

		if ( ! bp_core_avatar_handle_crop( $args ) ) {
			bp_core_add_message( __( 'There was a problem cropping your profile photo.', 'buddypress' ), 'error' );
		} else {

			/** This action is documented in wp-includes/deprecated.php */
			do_action_deprecated( 'xprofile_avatar_uploaded', array( (int) $args['item_id'], 'crop' ), '6.0.0', 'bp_members_avatar_uploaded' );

			/**
			 * Fires right before the redirect, after processing a new avatar.
			 *
			 * @since 6.0.0
			 *
			 * @param string $item_id Inform about the user id the avatar was set for.
			 * @param string $value   Inform about the way the avatar was set ('crop').
			 */
			do_action( 'bp_members_avatar_uploaded', (int) $args['item_id'], 'crop' );

			bp_core_add_message( __( 'Your new profile photo was uploaded successfully.', 'buddypress' ) );
			bp_core_redirect( bp_displayed_user_domain() );
		}
	}

	/** This action is documented in wp-includes/deprecated.php */
	do_action_deprecated( 'xprofile_screen_change_avatar', array(), '6.0.0', 'bp_members_screen_change_avatar' );

	/**
	 * Fires right before the loading of the Member Change Avatar screen template file.
	 *
	 * @since 6.0.0
	 */
	do_action( 'bp_members_screen_change_avatar' );

	/** This filter is documented in wp-includes/deprecated.php */
	$template = apply_filters_deprecated( 'xprofile_template_change_avatar', array( 'members/single/home' ), '6.0.0', 'bp_members_template_change_avatar' );

	/**
	 * Filters the template to load for the Member Change Avatar page screen.
	 *
	 * @since 6.0.0
	 *
	 * @param string $template Path to the Member template to load.
	 */
	bp_core_load_template( apply_filters( 'bp_members_template_change_avatar', $template ) );
}


Top ↑

Changelog Changelog

Changelog
Version Description
6.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.