我想更改下订单后发送的 woocommerce 电子邮件的字体系列。我尝试在 css 中添加字体,但它不起作用。
任何建议,将不胜感激。
尝试使用以下代码 - 使用以下代码添加 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>';
}
这是非常讨厌的,但它的工作原理....
解决方案最初由@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;
}