Automattic\WooCommerce\EmailEditor\Integrations\WooCommerce\Renderer\Blocks

Product_Image::get_product_image_dataprivateWC 1.0

Get product image data.

Method of the class: Product_Image{}

No Hooks.

Returns

Array|null.

Usage

// private - for code of main (parent) class only
$result = $this->get_product_image_data( $product, $attributes ): ?array;
$product(WC_Product) (required)
Product object.
$attributes(array) (required)
Parsed attributes.

Product_Image::get_product_image_data() code WC 10.5.0

private function get_product_image_data( \WC_Product $product, array $attributes ): ?array {
	$image_size = 'single' === $attributes['imageSizing'] ? 'woocommerce_single' : 'woocommerce_thumbnail';
	$image_id   = (int) $product->get_image_id();

	if ( ! $image_id ) {
		$placeholder = wc_placeholder_img_src( $image_size );
		return array(
			'url'    => $placeholder,
			'alt'    => $product->get_name(),
			'width'  => 300,
			'height' => 300,
		);
	}

	$image_url = wp_get_attachment_image_url( $image_id, $image_size );
	if ( ! $image_url ) {
		return null;
	}

	$alt_text   = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
	$image_meta = wp_get_attachment_metadata( $image_id );

	return array(
		'url'    => $image_url,
		'alt'    => $alt_text ? $alt_text : $product->get_name(),
		'width'  => $image_meta['width'] ?? 300,
		'height' => $image_meta['height'] ?? 300,
	);
}