Automattic\WooCommerce\Internal\CLI\Migrator\Platforms\Shopify
ShopifyMapper::map_product_images
Maps product images from Shopify media data.
Method of the class: ShopifyMapper{}
No Hooks.
Returns
Array. Product images data.
Usage
// private - for code of main (parent) class only $result = $this->map_product_images( $shopify_product ): array;
- $shopify_product(object) (required)
- The Shopify product data.
ShopifyMapper::map_product_images() ShopifyMapper::map product images code WC 10.8.1
private function map_product_images( object $shopify_product ): array {
$images_data = array();
$featured_media_id = null;
if ( ! empty( $shopify_product->featuredMedia ) && is_object( $shopify_product->featuredMedia ) && ! empty( $shopify_product->featuredMedia->id ) ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase -- GraphQL uses camelCase.
$featured_media_id = $shopify_product->featuredMedia->id; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase -- GraphQL uses camelCase.
}
if ( ! empty( $shopify_product->media->edges ) ) {
foreach ( $shopify_product->media->edges as $media_edge ) {
$media_node = $media_edge->node;
if ( property_exists( $media_node, 'image' ) && is_object( $media_node->image ) && ! empty( $media_node->id ) && ! empty( $media_node->image->url ) ) {
$images_data[] = array(
'original_id' => $media_node->id,
'src' => $media_node->image->url,
'alt' => $media_node->image->altText ?? null,
'is_featured' => ( $media_node->id === $featured_media_id ),
);
}
}
}
return $images_data;
}