![](/img/trans.png)
[英]Change sender name and email address for specific WooCommerce email notifications
[英]Change woocommerce sender email name dynamic
我正在嘗試根據訂單元更改 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' );
任何幫助表示贊賞!
當訂單狀態更改為 processing 時, woocommerce_order_status_processing
在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 );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.