Automattic\WooCommerce\EmailEditor\Integrations\WooCommerce\Renderer\Blocks
Product_Image::apply_email_wrapper
Apply email-compatible table wrapper (similar to Image renderer).
Method of the class: Product_Image{}
No Hooks.
Returns
String.
Usage
// private - for code of main (parent) class only $result = $this->apply_email_wrapper( $image_html, $parsed_block, $rendering_context ): string;
- $image_html(string) (required)
- Image HTML.
- $parsed_block(array) (required)
- Parsed block.
- $rendering_context(Rendering_Context) (required)
- Rendering context.
Product_Image::apply_email_wrapper() Product Image::apply email wrapper code WC 10.7.0
private function apply_email_wrapper( string $image_html, array $parsed_block, Rendering_Context $rendering_context ): string {
$width = $parsed_block['attrs']['width'] ?? '';
$wrapper_width = ( $width && '100%' !== $width ) ? $width : 'auto';
$image_height = $this->extract_image_height( $image_html ) . 'px';
$wrapper_styles = array(
'border-collapse' => 'separate',
'width' => $wrapper_width,
);
$cell_styles = array(
'overflow' => 'hidden',
'vertical-align' => 'top',
);
// Apply padding from block styles (e.g., padding-top, padding-bottom).
$padding_styles = Styles_Helper::get_block_styles( $parsed_block['attrs'] ?? array(), $rendering_context, array( 'spacing' ) );
if ( ! empty( $padding_styles['declarations'] ) ) {
$cell_styles = array_merge( $cell_styles, $padding_styles['declarations'] );
}
$align = $parsed_block['attrs']['align'] ?? 'left';
$cell_styles['text-align'] = $align;
$outer_table_attrs = array(
'style' => \WP_Style_Engine::compile_css(
array(
'border-collapse' => 'collapse',
'border-spacing' => '0px',
'width' => '100%',
'height' => $image_height,
),
''
),
'width' => '100%',
);
$outer_cell_attrs = array(
'align' => $align,
);
$inner_table_attrs = array(
'style' => \WP_Style_Engine::compile_css( $wrapper_styles, '' ),
'width' => $wrapper_width,
'height' => $image_height,
);
$inner_cell_attrs = array(
'style' => \WP_Style_Engine::compile_css( $cell_styles, '' ),
);
$inner_content = Table_Wrapper_Helper::render_table_wrapper( $image_html, $inner_table_attrs, $inner_cell_attrs );
return Table_Wrapper_Helper::render_table_wrapper( $inner_content, $outer_table_attrs, $outer_cell_attrs );
}