Automattic\WooCommerce\Blocks\BlockTypes
ProductDetails::hide_empty_accordion_items
Hide empty accordion items.
Method of the class: ProductDetails{}
No Hooks.
Returns
Array. Parsed block.
Usage
// private - for code of main (parent) class only $result = $this->hide_empty_accordion_items( $parsed_block, $context );
- $parsed_block(array) (required)
- Parsed block.
- $context(array) (required)
- Context.
ProductDetails::hide_empty_accordion_items() ProductDetails::hide empty accordion items code WC 10.6.2
private function hide_empty_accordion_items( $parsed_block, $context ) {
if ( ! $this->has_accordion( $parsed_block ) ) {
return $parsed_block;
}
if ( 'core/accordion' === $parsed_block['blockName'] || 'woocommerce/accordion-group' === $parsed_block['blockName'] ) {
foreach ( $parsed_block['innerBlocks'] as $key => $inner_block ) {
$parsed_block['innerBlocks'][ $key ] = $this->mark_accordion_item_hidden( $inner_block, $context );
}
$parsed_block['innerBlocks'] = array_values( array_filter( $parsed_block['innerBlocks'] ) );
$opening_tag = reset( $parsed_block['innerContent'] );
$closing_tag = end( $parsed_block['innerContent'] );
$parsed_block['innerContent'] = array_merge(
array( $opening_tag ),
array_fill( 0, count( $parsed_block['innerBlocks'] ), null ),
array( $closing_tag )
);
return $parsed_block;
}
foreach ( $parsed_block['innerBlocks'] as $key => $inner_block ) {
$parsed_block['innerBlocks'][ $key ] = $this->hide_empty_accordion_items( $inner_block, $context );
}
return $parsed_block;
}