Automattic\WooCommerce\Blocks\BlockTypes\AddToCartWithOptions

VariationDescription::renderprotectedWC 1.0

Render the block.

Method of the class: VariationDescription{}

No Hooks.

Returns

String. Rendered block output.

Usage

// protected - for code of main (parent) or child class
$result = $this->render( $attributes, $content, $block );
$attributes(array) (required)
Block attributes.
$content(string) (required)
Block content.
$block(WP_Block) (required)
Block instance.

VariationDescription::render() code WC 10.3.6

protected function render( $attributes, $content, $block ) {
	global $product;

	if ( ! $product instanceof \WC_Product_Variable ) {
		return '';
	}

	$variations                = $product->get_available_variations( 'objects' );
	$formatted_variations_data = array();
	foreach ( $variations as $variation ) {
		$variation_description = $variation->get_description();
		if ( is_string( $variation_description ) && ! empty( $variation_description ) ) {
			$formatted_variations_data[ $variation->get_id() ] = array(
				'variation_description' => wp_kses_post( wc_format_content( $variation_description ) ),
			);
		}
	}

	wp_interactivity_config(
		'woocommerce',
		array(
			'products' => array(
				$product->get_id() => array(
					'variations' => $formatted_variations_data,
				),
			),
		)
	);

	$context_directive = wp_interactivity_data_wp_context(
		array(
			'productElementKey' => 'variation_description',
		)
	);

	$wrapper_attributes = array(
		'data-wp-interactive'  => 'woocommerce/product-elements',
		'data-wp-bind--hidden' => '!state.productData.variation_description',
		'aria-live'            => 'polite',
		'aria-atomic'          => 'true',
	);

	return '<div ' . $context_directive . ' ' . get_block_wrapper_attributes( $wrapper_attributes ) . ' data-wp-watch="callbacks.updateValue"></div>';
}