2

我想更改下订单后发送的 woocommerce 电子邮件的字体系列。我尝试在 css 中添加字体,但它不起作用。

任何建议,将不胜感激。

4

2 回答 2

1

尝试使用以下代码 - 使用以下代码添加 CSS 字体文件,并使用 woocommerce 操作在邮件中使用它。

add_action('woocommerce_email_header', 'add_css_to_email');

function add_css_to_email() {
 echo '
 <style type="text/css">
 /* Put CSS here */
 @font-face {
   font-family: Myfont;
   src: url(font_family_file.woff);
 }

 div {
   font-family: Myfont;
 }
 </style>';
}
于 2020-09-24T17:18:55.547 回答
0

这是非常讨厌的,但它的工作原理....

解决方案最初由@Cookforweb 在这里发布:<style> 标签已从 woocommerce 电子邮件模板中删除

不是一个很好的技术,但它的工作原理!解决方案的第一部分是将 CSS 代码的一部分包含在另一个标签中(即使此标签无效)而不是 'style' 以避免首先被剥离,如下例所示:

<style-inline>
    @font-face {
       font-family: 'Montserrat';
       font-style: normal;
       font-weight: 400;
       src: url(http://fontdomain-example.com/Montserrat-Regular.woff) format('woff');
    }
</style-inline>

如果我们保持原样,那么我们的代码将呈现在我们的电子邮件代码中。所以接下来的事情是为“woocommerce_mail_content”过滤器添加一个钩子(优先级较低,以便成为最后一个运行的过滤器)用“style”字符串替换“style-inline”。

add_filter( 'woocommerce_mail_content', 'woocommerce_mail_content_callback', 9999 );
public function woocommerce_mail_content_callback($mail_content){
    $mail_content = str_replace([
        '<style-inline>',
        '</style-inline>'
    ], [
       '<style>',
       '</style>'
    ], $mail_content);
    return $mail_content;
}
于 2020-10-26T20:35:28.583 回答