Automattic\WooCommerce\EmailEditor\Integrations\WooCommerce\Renderer\Blocks
Product_Image::process_inner_blocks
Process inner blocks (like sale badges) from block content. Handles special positioning for email compatibility.
Method of the class: Product_Image{}
No Hooks.
Returns
Array. Array with 'badges' and 'other_content' keys
Usage
// private - for code of main (parent) class only $result = $this->process_inner_blocks( $parsed_block, $product, $rendering_context ): array;
- $parsed_block(array) (required)
- Parsed block.
- $product(WC_Product) (required)
- Product object.
- $rendering_context(Rendering_Context) (required)
- Rendering context.
Product_Image::process_inner_blocks() Product Image::process inner blocks code WC 10.7.0
private function process_inner_blocks( array $parsed_block, \WC_Product $product, Rendering_Context $rendering_context ): array {
$badges = '';
$other_content = '';
$badge_alignment = 'left';
if ( ! empty( $parsed_block['innerBlocks'] ) ) {
foreach ( $parsed_block['innerBlocks'] as $inner_block ) {
$inner_block['context'] = $inner_block['context'] ?? array();
$inner_block['context']['postId'] = $product->get_id();
if ( 'woocommerce/product-sale-badge' === $inner_block['blockName'] ) {
$badges .= $this->render_overlay_badge( $inner_block, $product, $rendering_context );
$badge_alignment = $inner_block['attrs']['align'] ?? 'left';
} else {
$other_content .= render_block( $inner_block );
}
}
}
return array(
'badges' => $badges,
'other_content' => $other_content,
'badge_alignment' => $badge_alignment,
);
}