Automattic\WooCommerce\Blocks\Utils
ProductGalleryUtils::get_all_media_items
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() 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 );
}