Automattic\WooCommerce\Blocks\BlockTypes

ProductGalleryLargeImage::get_main_media_html │ private │ WC 1.0

Get the main media HTML.

Method of the class: ProductGalleryLargeImage{}

No Hooks.

Returns

string.

Usage

// private - for code of main (parent) class only
$result = $this->get_main_media_html( $context, $product, $inner_block );
$context(array) (required)
The block context.
$product(WC_Product) (required)
The product object.
$inner_block(WP_Block) (required)
The inner block object.

ProductGalleryLargeImage::get_main_media_html() code WC 11.1.2

<?php
private function get_main_media_html( $context, $product, $inner_block ) {
	$media_data = ProductGalleryUtils::get_product_gallery_media_data( $product, 'woocommerce_single' );

	ob_start();
	?>
		<ul
			class="wc-block-product-gallery-large-image__container"
			data-wp-interactive="woocommerce/product-gallery"
			data-wp-on--keydown="actions.onViewerImageKeyDown"
			aria-label="<?php esc_attr_e( 'Product gallery', 'woocommerce' ); ?>"
			tabindex="0"
			aria-roledescription="carousel"
		>
			<?php foreach ( $media_data as $index => $media ) : ?>
				<li
					class="wc-block-product-gallery-large-image__wrapper"
				>
					<?php
					if ( 'video' === ( $media['media_type'] ?? '' ) ) {
						echo $this->get_video_html( $media, $context, $inner_block ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
						continue;
					}

					$image_html = (
						new WP_Block(
							$inner_block->parsed_block,
							array_merge( $context, array( 'imageId' => $media['id'] ) )
						)
					)->render( array( 'dynamic' => true ) );

					// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
					echo $this->update_single_image( $image_html, $context, $index );
					?>
				</li>
			<?php endforeach; ?>
		</ul>
	<?php
	$template = ob_get_clean();

	return wp_interactivity_process_directives( $template );
}