我需要知道WooCommerce新订单电子邮件到指定的电子邮件地址,仅适用于特定产品。
例如:如果任何团体购买产品 X ,则需要向
我试过跟着
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
}
}
}
答案 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 answer的Ewout。