BP_REST_Media_Endpoint::bp_media_ids_update_rest_field_callback( object $object, object $value, string $attribute )

The function to use to update the medias’s value of the activity REST Field.

Description

Parameters

$object

(Required) The BuddyPress component's object that was just created/updated during the request. (in this case the BP_Activity_Activity object).

$value

(Required) The value of the REST Field to save.

$attribute

(Required) The REST Field key used into the REST response.

Return

(object)

Source

File: bp-media/classes/class-bp-rest-media-endpoint.php

	protected function bp_media_ids_update_rest_field_callback( $object, $value, $attribute ) {

		if ( 'bp_media_ids' !== $attribute || empty( $object ) ) {
			$value->bp_media_ids = null;
			return $value;
		}

		$privacy = $value->privacy;
		$medias  = wp_parse_id_list( $object );
		if ( empty( $medias ) ) {
			$value->bp_media_ids = null;
			return $value;
		}

		$args = array(
			'upload_ids'  => $medias,
			'privacy'     => $privacy,
			'activity_id' => $value->id,
		);

		if ( ! empty( $value->component ) && 'groups' === $value->component ) {
			$args['group_id'] = $value->item_id;
			$args['privacy']  = 'grouponly';
		}

		$medias_ids = $this->bp_rest_create_media( $args );

		if ( is_wp_error( $medias_ids ) ) {
			$value->bp_media_ids = $medias_ids;
			return $value;
		}

		$medias = $this->assemble_response_data( array( 'media_ids' => $medias_ids ) );

		if ( empty( $medias['medias'] ) ) {
			return;
		}

		$retval = array();
		foreach ( $medias['medias'] as $media ) {
			$retval[] = array(
				'id'    => $media->id,
				'full'  => wp_get_attachment_image_url( $media->attachment_id, 'full' ),
				'thumb' => wp_get_attachment_image_url( $media->attachment_id, 'bp-media-thumbnail' ),
			);
		}

		$value->bp_media_ids = $retval;
		return $value;
	}

Questions?

We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.