Automattic\WooCommerce\Blocks\BlockTypes

ProductDetails::mark_accordion_item_hiddenprivateWC 1.0

Mark an accordion item as hidden if it has no content.

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

Хуков нет.

Возвращает

Массив. Item.

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

// private - только в коде основоного (родительского) класса
$result = $this->mark_accordion_item_hidden( $item, $context );
$item(массив) (обязательный)
Item to mark.
$context(массив) (обязательный)
Context.

Код ProductDetails::mark_accordion_item_hidden() WC 10.3.6

private function mark_accordion_item_hidden( $item, $context ) {
	$content_block          = end( $item['innerBlocks'] );
	$rendered_content_block = ( new WP_Block( $content_block, $context ) )->render();
	$p                      = new WP_HTML_Tag_Processor( $rendered_content_block );

	$has_content = $p->next_tag( 'img' ) ||
		$p->next_tag( 'iframe' ) ||
		$p->next_tag( 'video' ) ||
		$p->next_tag( 'meter' ) ||
		! empty( wp_strip_all_tags( $rendered_content_block, true ) );

	if ( ! $has_content ) {
		return array();
	}

	return $item;
}