Automattic\WooCommerce\Blocks\BlockTypes

ProductImageGallery::renderprotectedWC 1.0

Include and render the block.

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

Хуков нет.

Возвращает

Строку. Rendered block type output.

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

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->render( $attributes, $content, $block );
$attributes(массив) (обязательный)
Block attributes.
По умолчанию: empty array
$content(строка) (обязательный)
Block content.
По умолчанию: empty string
$block(WP_Block) (обязательный)
Block instance.

Код ProductImageGallery::render() WC 10.5.0

protected function render( $attributes, $content, $block ) {
	$post_id = $block->context['postId'];

	if ( ! isset( $post_id ) ) {
		return '';
	}

	global $product;

	$previous_product = $product;
	$product          = wc_get_product( $post_id );
	if ( ! $product instanceof \WC_Product ) {
		$product = $previous_product;

		return '';
	}

	add_filter( 'woocommerce_single_product_zoom_enabled', '__return_true' );
	add_filter( 'woocommerce_single_product_photoswipe_enabled', '__return_true' );
	add_filter( 'woocommerce_single_product_flexslider_enabled', '__return_true' );

	ob_start();
	woocommerce_show_product_sale_flash();
	$sale_badge_html = ob_get_clean();

	ob_start();
	woocommerce_show_product_images();
	$product_image_gallery_html = ob_get_clean();

	$product   = $previous_product;
	$classname = StyleAttributesUtils::get_classes_by_attributes( $attributes, array( 'extra_classes' ) );
	return sprintf(
		'<div class="wp-block-woocommerce-product-image-gallery %1$s">%2$s %3$s</div>',
		esc_attr( $classname ),
		$sale_badge_html,
		$product_image_gallery_html
	);
}