settingsController = $settingsController;
$this->contentRenderer = $contentRenderer;
$this->cdnAssetUrl = $cdnAssetUrl;
$this->templates = $templates;
$this->servicesChecker = $servicesChecker;
}
public function render(\WP_Post $post, string $subject, string $preHeader, string $language, $metaRobots = ''): array {
ob_start();
$logoHtml = $this->servicesChecker->isPremiumPluginActive() ? '' : '
';
$templateHtml = $this->contentRenderer->render($post, $this->templates->getBlockTemplate('mailpoet/mailpoet//email-general'));
include self::TEMPLATE_FILE;
$renderedTemplate = (string)ob_get_clean();
$emailStyles = $this->settingsController->getEmailStyles();
$templateStyles = WP_Style_Engine::compile_css(
[
'background-color' => $emailStyles['color']['background'] ?? 'inherit',
'padding-top' => $emailStyles['spacing']['padding']['top'] ?? '0px',
'padding-bottom' => $emailStyles['spacing']['padding']['bottom'] ?? '0px',
'font-family' => $emailStyles['typography']['fontFamily'] ?? 'inherit',
],
'body, .email_layout_wrapper'
);
$templateStyles .= file_get_contents(dirname(__FILE__) . '/' . self::TEMPLATE_STYLES_FILE);
$renderedTemplate = $this->inlineCSSStyles('' . $renderedTemplate);
return [
'html' => $renderedTemplate,
'text' => $this->renderTextVersion($renderedTemplate),
];
}
/**
* @param string $template
* @return string
*/
private function inlineCSSStyles($template) {
return CssInliner::fromHtml($template)->inlineCss()->render();
}
/**
* @param string $template
* @return string
*/
private function renderTextVersion($template) {
$template = (mb_detect_encoding($template, 'UTF-8', true)) ? $template : mb_convert_encoding($template, 'UTF-8', mb_list_encodings());
return @Html2Text::convert($template);
}
}