在生成客户电子邮件时,WooCommmerce定义了一组标签here,它们将为其应用默认的硬编码样式。
/**
* style_inline_tags function.
*
* @access public
* @param array $tags
* @return array
*/
function style_inline_tags($tags) {
return array_unique( array_merge( $tags, array( 'h1', 'h2', 'h3', 'a', 'img' ) ) );
}
我需要更改此样式以匹配电子邮件的其余部分(
Arial
→Lucida Grande
),因此我想消除所有此列表,因此没有任何东西可以得到默认外观。我尝试在插件的文件中删除这些内容,以确保这是我所需要的,并确保它足够工作。但是在每次更新时,我都必须修补WooCommerce代码。基于Add hooks for overriding default email inline styles和Overriding email inline styles,我试图编写一个过滤器挂钩以从数组中删除这些标签,但我无法使其正常工作。
这是我添加到主题
functions.php
末尾的代码/**
* Kill defaults
**/
add_filter('woocommerce_email_style_inline_tags', 'kill_defaults');
function kill_defaults( $tags ) {
$tags = array();
return $tags;
}
最佳答案
// WooCommerce Emails - Kill default inline styling
function kill_defaults($tags) {
return array();
}
add_filter('woocommerce_email_style_inline_tags', 'kill_defaults', 20 );
这执行得太早,因此之后被插件覆盖。将优先级参数
20
添加到add_filter
函数似乎已经解决了该问题。