在生成客户电子邮件时,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' ) ) );
}


我需要更改此样式以匹配电子邮件的其余部分(ArialLucida Grande),因此我想消除所有此列表,因此没有任何东西可以得到默认外观。我尝试在插件的文件中删除这些内容,以确保这是我所需要的,并确保它足够工作。但是在每次更新时,我都必须修补WooCommerce代码。

基于Add hooks for overriding default email inline stylesOverriding 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函数似乎已经解决了该问题。

09-05 07:46
查看更多