WC_Email::style_inline()
Apply inline styles to dynamic content.
We only inline CSS for html emails, and to do so we use Emogrifier library (if supported).
Method of the class: WC_Email{}
Hooks from the method
Return
String
.
Usage
$WC_Email = new WC_Email(); $WC_Email->style_inline( $content );
- $content(string|null) (required)
- Content that will receive inline styles.
WC_Email::style_inline() WC Email::style inline code WC 9.7.1
public function style_inline( $content ) { if ( in_array( $this->get_content_type(), array( 'text/html', 'multipart/alternative' ), true ) ) { $css = ''; $css .= $this->get_must_use_css_styles(); $css .= "\n"; ob_start(); wc_get_template( 'emails/email-styles.php' ); $css .= ob_get_clean(); /** * Provides an opportunity to filter the CSS styles included in e-mails. * * @since 2.3.0 * * @param string $css CSS code. * @param \WC_Email $email E-mail instance. */ $css = apply_filters( 'woocommerce_email_styles', $css, $this ); $css_inliner_class = CssInliner::class; if ( $this->supports_emogrifier() && class_exists( $css_inliner_class ) ) { try { $css_inliner = CssInliner::fromHtml( $content )->inlineCss( $css ); do_action( 'woocommerce_emogrifier', $css_inliner, $this ); $dom_document = $css_inliner->getDomDocument(); HtmlPruner::fromDomDocument( $dom_document )->removeElementsWithDisplayNone(); $content = CssToAttributeConverter::fromDomDocument( $dom_document ) ->convertCssToVisualAttributes() ->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; }