禁用WooCommerce電子郵件通知我可以參照此功能禁用電子郵件通知: https://docs.woocommerce.com/document/unhookremove-woocommerce-emails/針對特定產品
但我想禁用它僅適用於特定的產品,或者,如果它可以更簡單,對於一個具體的產品類別。
感謝您的幫助
禁用WooCommerce電子郵件通知我可以參照此功能禁用電子郵件通知: https://docs.woocommerce.com/document/unhookremove-woocommerce-emails/針對特定產品
但我想禁用它僅適用於特定的產品,或者,如果它可以更簡單,對於一個具體的產品類別。
感謝您的幫助
我認爲當你嘗試從模板,在那裏你可以找到訂單,當時的電子郵件已經發出已勾電子郵件通知。
您可以嘗試一件事 - 使用收件人的掛鉤,您可以刪除收件人電子郵件並返回空字符串。或者,如果空字符串觸發錯誤,那麼你可以給一些虛擬電子郵件。
使用此代碼如下:
// 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);
感謝@ 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);
感謝您的幫助!是的,它可以是一個解決方案,刪除收件人的電子郵件,有趣的...現在困難的部分是寫條件(如果產品ID是...)。 – jjj
如果您看到函數參數,那麼您將獲得order對象作爲第二個參數。您可以從中獲得所有物品,並檢查特定產品是否在訂單中。讓我知道你是否仍然需要幫助。 –
謝謝Vidish,如果我們認爲產品ID是102,代碼的外觀如何,是的,我們將不勝感激。 – jjj