Как изменить электронную почту отправителя на основе идентификатора продукта в WooCommerce - PullRequest
1 голос
/ 27 апреля 2020

Я пытаюсь изменить адрес электронной почты отправителя для всех сообщений, связанных с двумя продуктами в WooCommerce, но не для всех остальных.

У меня есть код ниже, чтобы изменить адрес отправителя, но я не уверен как заставить работать только эти два продукта (по идентификатору продукта или категории).

function change_sender_email( $original_email_address ) {
    return 'admin@example.com';
} 
add_filter( 'wp_mail_from', 'change_sender_email' );

Могу ли я каким-то образом использовать фильтр 'woocommerce_email_recipient_customer_completed_order'?

Я знаю, как использовать это для условного изменения получателя письма, но я не смог его получить работать, чтобы изменить адрес электронной почты отправителя.

1 Ответ

1 голос
/ 27 апреля 2020

Вы можете использовать: 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 = 'my.email1@stackoverflow.com';            
        } elseif ( $product_id == 32 ) {
            $from_email = 'my.email2@stackoverflow.com';
        }
    }

    return $from_email;
}
add_filter( 'woocommerce_email_from_address',  'my_email_from_address', 20, 2 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...