更改 WooCommerce 电子邮件通知中的订单项元数据
Changing the order item meta data in WooCommerce email notifications
我需要 change/customize WooCommerce 电子邮件通知的特定订单项元数据,但我找不到解决方案。
我找到了 ,但它用于从 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 );
然后是通过 if 条件确定具体涉及哪些调整的问题,因为这些调整目前通常通过我的回答应用
我需要 change/customize 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 );
然后是通过 if 条件确定具体涉及哪些调整的问题,因为这些调整目前通常通过我的回答应用