MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks

Image::add_image_size_when_missing()privateWC 1.0

When the width is not set, it's important to get it for the image to be displayed correctly

Method of the class: Image{}

No Hooks.

Return

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->add_image_size_when_missing( $parsed_block, $image_url, $settings_controller ): array;
$parsed_block(array) (required)
Parsed block.
$image_url(string) (required)
Image URL.
$settings_controller(Settings_Controller) (required)
Settings controller.

Image::add_image_size_when_missing() code WC 9.8.1

private function add_image_size_when_missing( array $parsed_block, string $image_url, Settings_Controller $settings_controller ): array {
	if ( isset( $parsed_block['attrs']['width'] ) ) {
		return $parsed_block;
	}
	// Can't determine any width let's go with 100%.
	if ( ! isset( $parsed_block['email_attrs']['width'] ) ) {
		$parsed_block['attrs']['width'] = '100%';
	}
	$max_width                      = $settings_controller->parse_number_from_string_with_pixels( $parsed_block['email_attrs']['width'] );
	$image_size                     = wp_getimagesize( $image_url );
	$image_size                     = $image_size ? $image_size[0] : $max_width;
	$width                          = min( $image_size, $max_width );
	$parsed_block['attrs']['width'] = "{$width}px";
	return $parsed_block;
}