Automattic\WooCommerce\Blocks\Utils

ProductGalleryUtils::get_all_media_items │ public static │ WC 1.0

Get all media items for the product gallery.

Метод класса: ProductGalleryUtils{}

Хуков нет.

Возвращает

array[]. An array of media gallery items.

Использование

$result = ProductGalleryUtils::get_all_media_items( $product );
$product(WC_Product) (обязательный)
The product object.

Код ProductGalleryUtils::get_all_media_items() WC 11.2.2

public static function get_all_media_items( $product ) {
	if ( ! $product instanceof \WC_Product ) {
		wc_doing_it_wrong( __FUNCTION__, __( 'Invalid product object.', 'woocommerce' ), '10.9.0' );
		return array();
	}

	$product_media_items         = ProductMediaGallery::get_product_media_gallery_items_for_display( $product );
	$product_variation_image_ids = self::get_product_variation_image_ids( $product );
	$is_placeholder_only         = 1 === count( $product_media_items ) && 0 === (int) ( $product_media_items[0]['id'] ?? 0 );

	// If the media gallery only returned the placeholder, fall back to gallery images.
	if ( $is_placeholder_only && ! empty( $product->get_gallery_image_ids() ) ) {
		$product_media_items = self::get_product_gallery_image_items( $product );
	}

	$existing_ids = array_map( 'strval', self::get_media_ids( $product_media_items ) );

	foreach ( $product_variation_image_ids as $variation_image_id ) {
		if ( in_array( strval( $variation_image_id ), $existing_ids, true ) ) {
			continue;
		}

		$product_media_items[] = array(
			'media_type'  => 'image',
			'source_type' => 'attachment',
			'id'          => absint( $variation_image_id ),
		);
		$existing_ids[]        = strval( $variation_image_id );
	}

	return array_values( $product_media_items );
}