@ Комментарий Sephsekla дал мне идею о том, как добавить тег в шаблон электронной почты, переопределяющий разбор по умолчанию.
Не очень хорошая техника, но она работает!
Первая частьрешение состоит в том, чтобы включить часть кода 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-inline' строкой 'style'.
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;
}
Приведенный выше метод помог мне успешно добавить font-face.