2017-04-08 81 views

回答

1

我認爲當你嘗試從模板,在那裏你可以找到訂單,當時的電子郵件已經發出已勾電子郵件通知。

您可以嘗試一件事 - 使用收件人的掛鉤,您可以刪除收件人電子郵件並返回空字符串。或者,如果空字符串觸發錯誤,那麼你可以給一些虛擬電子郵件。

使用此代碼如下:

// Change new order email recipient for registered customers 
function wc_change_admin_new_order_email_recipient($recipient, $order) { 
    global $woocommerce; 

    // check if product in order 
    if (true)) { 
     $recipient = ""; 
    } else { 
     $recipient = "[email protected]"; 
    } 
    return $recipient; 
} 
add_filter('woocommerce_email_recipient_new_order', 'wc_change_admin_new_order_email_recipient', 1, 2); 

// Change new order email recipient for registered customers 
function wc_change_admin_new_order_email_recipient($recipient, $order) { 

    $flagHasProduct = false; 

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

    // Loop for all items 
    foreach ($items as $item) { 
     $product_id = $item['product_id']; 

     // check if specific product is in order 
     if ($product_id == 102) { 
      $flagHasProduct = true; 
     } 
    } 

    // if product is found then remove recipient 
    if ($flagHasProduct) { 
     $recipient = ""; 
    } else { 
     $recipient = "[email protected]"; 
    } 
    return $recipient; 
} 
add_filter('woocommerce_email_recipient_new_order', 'wc_change_admin_new_order_email_recipient', 1, 2); 
+0

感謝您的幫助!是的,它可以是一個解決方案,刪除收件人的電子郵件,有趣的...現在困難的部分是寫條件(如果產品ID是...)。 – jjj

+1

如果您看到函數參數,那麼您將獲得order對象作爲第二個參數。您可以從中獲得所有物品,並檢查特定產品是否在訂單中。讓我知道你是否仍然需要幫助。 –

+0

謝謝Vidish,如果我們認爲產品ID是102,代碼的外觀如何,是的,我們將不勝感激。 – jjj

1

感謝@ vidish-purohit的幫助!

這裏,如果你需要禁用管理電子郵件通知針對特定產品我的代碼使用方法:

function change_email_recipient_depending_of_product_id($recipient, $order) { 
    global $woocommerce; 
    $items = $order->get_items(); 
    foreach ($items as $item) { 
     $product_id = $item['product_id']; 
     if ($product_id == xxx) { 
      $recipient = ''; 
     } 
     return $recipient; 
    } 
} 
add_filter('woocommerce_email_recipient_new_order', 'change_email_recipient_depending_of_product_id', 10, 2); 

如果你需要禁用客戶電子郵件通知特定產品:

function change_email_recipient_depending_of_product_id($recipient, $order) { 
    global $woocommerce; 
    $items = $order->get_items(); 
    foreach ($items as $item) { 
     $product_id = $item['product_id']; 
     if ($product_id == xxx) { 
      $recipient = ''; 
     } 
     return $recipient; 
    } 
} 
add_filter('woocommerce_email_recipient_customer_processing_order', 'change_email_recipient_depending_of_product_id', 10, 2);