更改WooCommerce电子邮件通知中的订单项元数据 [英] Changing the order item meta data in WooCommerce email notifications

查看:95
本文介绍了更改WooCommerce电子邮件通知中的订单项元数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要更改/自定义WooCommerce电子邮件通知的特定订单项元数据,但找不到解决方案。

我找到one,但它用于从WooCommerce电子邮件通知中取消设置不需要的订单项元数据。

上述代码是否可以用于更改电子邮件的元数据?

我尝试使用$formatted_meta[$key] = 'new value';,但没有得到预期的结果。有什么建议吗?

add_filter( 'woocommerce_order_item_get_formatted_meta_data', 'unset_specific_order_item_meta_data', 10, 2);
function unset_specific_order_item_meta_data($formatted_meta, $item){
    // Only on emails notifications
    if( is_admin() || is_wc_endpoint_url() )
        return $formatted_meta;

    foreach( $formatted_meta as $key => $meta ){
        $formatted_meta[$key] = 'new value';
    }
    return $formatted_meta;
}

推荐答案

如果要通过您正在使用的当前挂钩调整这些值​​,可以这样做:

function filter_woocommerce_order_item_get_formatted_meta_data( $formatted_meta, $item ) {
    // Only on emails notifications
    if ( is_admin() || is_wc_endpoint_url() )
        return $formatted_meta;

    foreach ( $formatted_meta as $key => $meta ) {
        $formatted_meta[$key]->display_key = 'new key';
        $formatted_meta[$key]->display_value = 'new value';
    }
    
    return $formatted_meta;
}
add_filter( 'woocommerce_order_item_get_formatted_meta_data', 'filter_woocommerce_order_item_get_formatted_meta_data', 10, 2 );

但是,请注意,与使用上述挂钩相比,woocommerce_order_item_display_meta_key&;woocommerce_order_item_display_meta_value过滤挂钩更合适:

function filter_woocommerce_order_item_display_meta_key( $display_key, $meta, $item ) {
    // Only on emails notifications
    if ( is_admin() || is_wc_endpoint_url() )
        return $display_key;

    // Display key
    $display_key = 'My new key';
    
    return $display_key;
}
add_filter( 'woocommerce_order_item_display_meta_key', 'filter_woocommerce_order_item_display_meta_key', 10, 3 );

function filter_woocommerce_order_item_display_meta_value( $display_value, $meta, $item ) {
    // Only on emails notifications
    if ( is_admin() || is_wc_endpoint_url() )
        return $display_value;

    // Display value
    $display_value = 'My new value';
        
    return $display_value;
}
add_filter( 'woocommerce_order_item_display_meta_value', 'filter_woocommerce_order_item_display_meta_value', 10, 3 );

那么就需要确定具体涉及哪些调整的VIA IF条件,因为这些条件目前通常通过我的回答来应用

这篇关于更改WooCommerce电子邮件通知中的订单项元数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆