在生成客户电子邮件时,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;
}
答案 0 :(得分:2)
// 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
函数似乎已修复它。