WC_Email::style_inline( string|null $content )
Apply inline styles to dynamic content.
Description Description
We only inline CSS for html emails, and to do so we use Emogrifier library (if supported).
Parameters Parameters
- $content
-
(Required) Content that will receive inline styles.
Return Return
(string)
Source Source
File: includes/emails/class-wc-email.php
public function style_inline( $content ) {
if ( in_array( $this->get_content_type(), array( 'text/html', 'multipart/alternative' ), true ) ) {
ob_start();
wc_get_template( 'emails/email-styles.php' );
$css = apply_filters( 'woocommerce_email_styles', ob_get_clean(), $this );
$emogrifier_class = 'Pelago\\Emogrifier';
if ( $this->supports_emogrifier() && class_exists( $emogrifier_class ) ) {
try {
$emogrifier = new $emogrifier_class( $content, $css );
do_action( 'woocommerce_emogrifier', $emogrifier, $this );
$content = $emogrifier->emogrify();
$html_prune = \Pelago\Emogrifier\HtmlProcessor\HtmlPruner::fromHtml( $content );
$html_prune->removeElementsWithDisplayNone();
$content = $html_prune->render();
} catch ( Exception $e ) {
$logger = wc_get_logger();
$logger->error( $e->getMessage(), array( 'source' => 'emogrifier' ) );
}
} else {
$content = '<style type="text/css">' . $css . '</style>' . $content;
}
}
return $content;
}