Automattic\WooCommerce\Blocks\BlockTypes

ProductDetails::create_accordion_item_blockprivateWC 1.0

Create an accordion item block.

Method of the class: ProductDetails{}

No Hooks.

Returns

Array. Accordion item.

Usage

// private - for code of main (parent) class only
$result = $this->create_accordion_item_block( $title, $content, $anchor_block );
$title(string) (required)
Title of the accordion item.
$content(string) (required)
Content of the accordion item as block markup.
$anchor_block(array) (required)
Accordion anchor block to determine which item block to create.

ProductDetails::create_accordion_item_block() code WC 10.8.1

private function create_accordion_item_block( $title, $content, $anchor_block ) {
	if ( isset( $anchor_block['blockName'] ) && 'core/accordion' === $anchor_block['blockName'] ) {
		$template = '<!-- wp:accordion-item -->
			<div class="wp-block-accordion-item">
				<!-- wp:accordion-heading -->
				<h3 class="wp-block-accordion-heading">
					<button class="wp-block-accordion-heading__toggle">
						<span class="wp-block-accordion-heading__toggle-title">%1$s</span>
						<span class="wp-block-accordion-heading__toggle-icon" aria-hidden="true">+</span>
					</button>
				</h3>
				<!-- /wp:accordion-heading -->

				<!-- wp:accordion-panel -->
				<div class="wp-block-accordion-panel">
					%2$s
				</div>
				<!-- /wp:accordion-panel -->
			</div>
			<!-- /wp:accordion-item -->';
	} else {
		$template = '<!-- wp:woocommerce/accordion-item -->
			<div class="wp-block-woocommerce-accordion-item"><!-- wp:woocommerce/accordion-header -->
			<h3 class="wp-block-woocommerce-accordion-header accordion-item__heading">
			<button class="accordion-item__toggle">
			<span>%1$s</span>
			<span class="accordion-item__toggle-icon has-icon-plus" style="width:1.2em;height:1.2em"><svg width="1.2em" height="1.2em" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z" fill="currentColor"></path></svg></span>
			</button>
			</h3>
			<!-- /wp:woocommerce/accordion-header -->

			<!-- wp:woocommerce/accordion-panel -->
			<div class="wp-block-woocommerce-accordion-panel"><div class="accordion-content__wrapper">
			%2$s
			</div></div>
			<!-- /wp:woocommerce/accordion-panel --></div>
			<!-- /wp:woocommerce/accordion-item -->';
	}

	return parse_blocks( sprintf( $template, $title, $content ) )[0];
}