如何在WooCommerce中基于产品ID更改发件人电子邮件

问题描述 投票:0回答:1

我正在尝试更改与WooCommerce中与两种产品有关的所有电子邮件的发件人电子邮件,但对于所有其他产品都不更改。我有下面的代码来更改发件人的电子邮件,但是我不确定如何使它仅对这两种产品(按产品ID或类别)起作用。

function change_sender_email( $original_email_address ) {
    return '[email protected]';
} 
add_filter( 'wp_mail_from', 'change_sender_email' );

我是否可以使用过滤器'woocommerce_email_recipient_customer_completed_order?我知道如何使用它来有条件地更改电子邮件的收件人,但是我无法使它起作用以更改发件人的电子邮件。

php wordpress woocommerce hook-woocommerce email-integration
1个回答
0
投票

您可以使用:woocommerce_email_from_address

// Change email sender address
function my_email_from_address( $from_email, $wc_email ) {
    // Get the WC_Order object instance
    $order = $wc_email->object;

    // Get items
    $items = $order->get_items();

    // Loop through
    foreach ( $items as $item ) {
        // Get product ID
        $product_id = $item->get_product_id();

        // Compare          
        if ( $product_id == 30 ) {
            $from_email = '[email protected]';            
        } elseif ( $product_id == 32 ) {
            $from_email = '[email protected]';
        }
    }

    return $from_email;
}
add_filter( 'woocommerce_email_from_address',  'my_email_from_address', 20, 2 );
© www.soinside.com 2019 - 2024. All rights reserved.