Не отправляйте WooCommerce новые учетные записи клиентов по электронной почте, если продукт приобретен в определенной категории. - PullRequest
0 голосов
/ 21 июня 2019

У меня есть настройка магазина 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...