簡體   English   中英

更改 woocommerce 發件人電子郵件名稱動態

[英]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_processingwoocommerce_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM