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; }