WooCommerce手动触发某些产品的新订单电子邮件

时间:2016-09-05 09:01:15

标签: php wordpress email woocommerce

我需要知道WooCommerce新订单电子邮件到指定的电子邮件地址,仅适用于特定产品。

例如:如果任何团体购买产品 X ,则需要向 Y 发送新订单电子邮件。 Y 未设置为后端收件人。是否有任何钩子来实现这一目标?

我试过跟着

add_action( 'woocommerce_order_status_completed', 'custom_woocommerce_order_status_completed' );
function custom_woocommerce_order_status_completed( $order_id ) {
    $order = new WC_Order($order_id);

    $items = $order->get_items();

    foreach ($items as $key => $value) {
        if($value == 10) { // given product id
            // trigger order complete email for specific email address
        }
    }
}

1 个答案:

答案 0 :(得分:2)

您可以将以下内容放在您的functions.php中:

add_filter( 'woocommerce_email_recipient_customer_completed_order', 'your_email_recipient_filter_function', 10, 2);

function your_email_recipient_filter_function($recipient, $object) {
    $recipient = $recipient . ', me@myemail.com';
    return $recipient;
}

唯一的缺点是收件人会看到您的地址和地址。他自己在To:领域。

或者,您可以使用woocommerce_email_headers过滤器。传递的$ object允许您仅将其应用于已完成的订单电子邮件:

add_filter( 'woocommerce_email_headers', 'mycustom_headers_filter_function', 10, 2);

function mycustom_headers_filter_function( $headers, $object ) {
    if ($object == 'customer_completed_order') {
        $headers .= 'BCC: My name <my@email.com>' . "\r\n";
    }

    return $headers;
}

取自this answerEwout