将发件人名称更改为 WooCommerce 电子邮件通知中订单元数据的值
Change sender name to value from order meta data in WooCommerce email notifications
我正在尝试根据订单元更改 WooCommerce 发件人电子邮件名称。
该网站是一个多供应商市场,因此每个订单都包含带有客户订购的公司名称的元数据。因此,当订单状态更改为正在处理时,我要做的是从订单元数据中获取公司名称,并将发件人电子邮件名称设置为该元数据。这样,客户将在下订单时收到的电子邮件中看到公司名称。
这是我尝试过的方法,但不幸的是没有得到想要的结果。有什么建议吗?
function change_processing_sender_name($order_id){
$merchant_id = get_post_meta( $order_id, 'merchant_id', true );
$business_name = get_user_meta($merchant_id,'businessname', true);
add_filter( 'woocommerce_email_from_name', function( $from_name, $wc_email ){
$from_name = $business_name;
return $from_name;
}, 10 ,2);
}
add_action( 'woocommerce_order_status_processing', 'change_processing_sender_name' );
当订单状态变为处理中时,无需在 woocommerce_order_status_processing
挂钩中添加此过滤器。因为我们可以反过来应用。通过 $email->id
可以在触发此挂钩时针对特定的电子邮件通知。
获取属于订单的元数据,可以使用$order->get_meta( 'meta_key' )
所以你得到:
function filter_woocommerce_email_from_name( $from_name, $email ) {
// Targeting specific email notification via the email id
if ( $email->id == 'customer_processing_order' && is_a( $email->object, 'WC_Order' ) ) {
// Get order
$order = $email->object;
// Get meta
$business_name = $order->get_meta( 'businessname' );
// NOT empty
if ( ! empty ( $business_name ) ) {
$from_name = $business_name;
}
}
return $from_name;
}
add_filter( 'woocommerce_email_from_name', 'filter_woocommerce_email_from_name', 10, 2 );
我正在尝试根据订单元更改 WooCommerce 发件人电子邮件名称。
该网站是一个多供应商市场,因此每个订单都包含带有客户订购的公司名称的元数据。因此,当订单状态更改为正在处理时,我要做的是从订单元数据中获取公司名称,并将发件人电子邮件名称设置为该元数据。这样,客户将在下订单时收到的电子邮件中看到公司名称。
这是我尝试过的方法,但不幸的是没有得到想要的结果。有什么建议吗?
function change_processing_sender_name($order_id){
$merchant_id = get_post_meta( $order_id, 'merchant_id', true );
$business_name = get_user_meta($merchant_id,'businessname', true);
add_filter( 'woocommerce_email_from_name', function( $from_name, $wc_email ){
$from_name = $business_name;
return $from_name;
}, 10 ,2);
}
add_action( 'woocommerce_order_status_processing', 'change_processing_sender_name' );
当订单状态变为处理中时,无需在 woocommerce_order_status_processing
挂钩中添加此过滤器。因为我们可以反过来应用。通过 $email->id
可以在触发此挂钩时针对特定的电子邮件通知。
获取属于订单的元数据,可以使用$order->get_meta( 'meta_key' )
所以你得到:
function filter_woocommerce_email_from_name( $from_name, $email ) {
// Targeting specific email notification via the email id
if ( $email->id == 'customer_processing_order' && is_a( $email->object, 'WC_Order' ) ) {
// Get order
$order = $email->object;
// Get meta
$business_name = $order->get_meta( 'businessname' );
// NOT empty
if ( ! empty ( $business_name ) ) {
$from_name = $business_name;
}
}
return $from_name;
}
add_filter( 'woocommerce_email_from_name', 'filter_woocommerce_email_from_name', 10, 2 );