Automattic\WooCommerce\EmailEditor\Integrations\Core\Renderer\Blocks
List_Block::render_content
Renders the block content
Method of the class: List_Block{}
No Hooks.
Returns
String.
Usage
// protected - for code of main (parent) or child class $result = $this->render_content( $block_content, $parsed_block, $rendering_context ): string;
- $block_content(string) (required)
- Block content.
- $parsed_block(array) (required)
- Parsed block.
- $rendering_context(Rendering_Context) (required)
- Rendering context.
List_Block::render_content() List Block::render content code WC 10.5.0
protected function render_content( string $block_content, array $parsed_block, Rendering_Context $rendering_context ): string {
$html = new \WP_HTML_Tag_Processor( $block_content );
$tag_name = ( $parsed_block['attrs']['ordered'] ?? false ) ? 'ol' : 'ul';
if ( $html->next_tag( array( 'tag_name' => $tag_name ) ) ) {
/** @var string $styles */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort -- used for phpstan
$styles = $html->get_attribute( 'style' ) ?? '';
$styles = Styles_Helper::parse_styles_to_array( $styles );
// Font size.
if ( isset( $parsed_block['email_attrs']['font-size'] ) ) {
$styles['font-size'] = $parsed_block['email_attrs']['font-size'];
} else {
// Use font-size from email theme when those properties are not set.
$theme_data = $rendering_context->get_theme_json()->get_data();
$styles['font-size'] = $theme_data['styles']['typography']['fontSize'];
}
$html->set_attribute( 'style', esc_attr( \WP_Style_Engine::compile_css( $styles, '' ) ) );
$block_content = $html->get_updated_html();
}
$wrapper_style = \WP_Style_Engine::compile_css(
array(
'margin-top' => $parsed_block['email_attrs']['margin-top'] ?? '0px',
),
''
);
// \WP_HTML_Tag_Processor escapes the content, so we have to replace it back
$block_content = str_replace( ''', "'", $block_content );
return sprintf(
'<div style="%1$s">%2$s</div>',
esc_attr( $wrapper_style ),
$block_content
);
}