Automattic\WooCommerce\Blocks\BlockTypes

ProductDetails::mark_accordion_item_hiddenprivateWC 1.0

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

Method of the class: ProductDetails{}

No Hooks.

Returns

Array. Item.

Usage

// private - for code of main (parent) class only
$result = $this->mark_accordion_item_hidden( $item, $context );
$item(array) (required)
Item to mark.
$context(array) (required)
Context.

ProductDetails::mark_accordion_item_hidden() code WC 10.7.0

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;
}