• grosssmutttrwp

    (@grosssmutttrwp)


    Hi there,

    is it possible to remove the actions so that no emails like new order emails or new customer emails were send when an order or customer is created via the api?

    So the emails should still work if one purchased a product via the shop but it shouldn’t when an order is created via the api.

    I tried:

    function my_remove_mails_api_create_order($data, $instance) {
        
        // New order emails
        remove_action('woocommerce_order_status_pending_to_processing_notification', 'action_woocommerce_order_status_pending_to_processing_notification', 10, 2);
        remove_action('woocommerce_order_status_pending_to_completed_notification', 'action_woocommerce_order_status_pending_to_completed_notification', 10, 2);
        remove_action('woocommerce_order_status_pending_to_on-hold_notification', 'action_woocommerce_order_status_pending_to_on_hold_notification', 10, 2);
        remove_action('woocommerce_order_status_failed_to_processing_notification', 'action_woocommerce_order_status_failed_to_processing_notification', 10, 2);
        remove_action('woocommerce_order_status_failed_to_completed_notification', 'action_woocommerce_order_status_failed_to_completed_notification', 10, 2);
        remove_action('woocommerce_order_status_failed_to_on-hold_notification', 'action_woocommerce_order_status_failed_to_on_hold_notification', 10, 2);
    
        // Processing order emails
        remove_action('woocommerce_order_status_pending_to_processing_notification', 'action_woocommerce_order_status_pending_to_processing_notification', 10, 2);
        remove_action('woocommerce_order_status_pending_to_on-hold_notification', 'action_woocommerce_order_status_pending_to_on_hold_notification', 10, 2);
    
        // Completed order emails
        remove_action('woocommerce_order_status_completed_notification', 'action_woocommerce_order_status_completed_notification', 10, 2);
    
        // Note emails
        remove_action('woocommerce_new_customer_note_notification', 'action_woocommerce_new_customer_note_notification', 10, 2);
        return $data;
    }
    
    add_filter('woocommerce_api_create_order_data', 'my_remove_mails_api_create_order', 10, 2);
    
    function my_remove_mails_api_create_customer($data, $instance) {
        remove_action('woocommerce_created_customer_notification', 'action_woocommerce_created_customer_notification', 10, 3);
        return $data;
    }
    
    add_filter('woocommerce_api_create_customer_data', 'my_remove_mails_api_create_customer', 10, 2);

The topic ‘Remove Emails when order is created via api’ is closed to new replies.