У меня есть настройка магазина WooCommerce, где пользователи могут купить только один «продукт» за транзакцию. Есть 4 разных товарных категории. Когда транзакция завершена, для каждого пользователя автоматически создается учетная запись, и ему отправляется новое электронное письмо с данными для входа в учетную запись. Тем не менее, крайне важно, чтобы это новое электронное письмо не отправлялось, когда клиент совершает покупку в определенной категории продуктов.
В идеале учетная запись вообще не должна создаваться при покупке из этой конкретной категории продуктов, но, поскольку я не был уверен, как действовать, я вместо этого искал способы предотвратить отправку электронного письма, используя следующий код. Однако это не работает, как задумано.
Если кто-нибудь может предложить способ предотвращения создания учетной записи при покупке в определенной категории продуктов, это было бы очень полезно и было бы идеальным решением. Однако предложение о том, как следует изменить нижеследующее, также будет приветствоваться. Спасибо!
add_filter( 'woocommerce_email_recipient_customer_new_account', 'product_cat_avoid_processing_email_notification', 10, 2 );
function product_cat_avoid_processing_email_notification( $recipient, $order ) {
if( is_admin() ) return $recipient;
// HERE set your product categories (coma separated term Ids, slugs or names)
$product_categories = array( 31 );
// Loop through order items
foreach ( $order->get_items() as $item ) {
// Get an instance of the WC_Product object
$product = $item->get_product();
// Get the correct product ID (for variations we take the parent product ID)
$product_id = $product->is_type('variation') ? $product->get_parent_id() : $product->get_id();
// Check for product categories for this item
if( has_term( $product_categories, 'product_cat', $product_id ) )
return ''; // If it's found, we return an empty recipient
}
return $recipient;
}