Automattic\WooCommerce\Blocks\BlockTypes\Reviews

ProductReviewTemplate::block_product_review_template_render_commentsprotectedWC 6.3.0

Function that recursively renders a list of nested reviews.

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

Хуков нет.

Возвращает

Строку.

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

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->block_product_review_template_render_comments( $comments, $block );
$comments(WP_Comment[]) (обязательный)
The array of comments.
$block(WP_Block) (обязательный)
Block instance.

Список изменений

С версии 6.3.0 Введена.
С версии 6.3.0 Changed render_block_context priority to 1.

Код ProductReviewTemplate::block_product_review_template_render_comments() WC 10.3.6

protected function block_product_review_template_render_comments( $comments, $block ) {
	$content = '';
	foreach ( $comments as $comment ) {
		$comment_id           = $comment->comment_ID;
		$filter_block_context = static function ( $context ) use ( $comment_id ) {
			$context['commentId'] = $comment_id;
			return $context;
		};

		/*
		* We set commentId context through the `render_block_context` filter so
		* that dynamically inserted blocks (at `render_block` filter stage)
		* will also receive that context.
		*
		* Use an early priority to so that other 'render_block_context' filters
		* have access to the values.
		*/
		add_filter( 'render_block_context', $filter_block_context, 1 );

		/*
		* We construct a new WP_Block instance from the parsed block so that
		* it'll receive any changes made by the `render_block_data` filter.
		*/
		$block_content = ( new WP_Block( $block->parsed_block ) )->render( array( 'dynamic' => false ) );

		remove_filter( 'render_block_context', $filter_block_context, 1 );

		$comment_classes = comment_class( '', $comment->comment_ID, $comment->comment_post_ID, false );

		$content .= sprintf( '<li id="comment-%1$s" %2$s>%3$s</li>', $comment->comment_ID, $comment_classes, $block_content );
	}

	return $content;
}