Can I Change Which WooCommerce Statuses Send Emails?
What's Configurable in WooCommerce Out of the Box
Each default WooCommerce email has its own settings tab under WooCommerce → Settings → Emails, letting you enable/disable it, customize its subject and content, and in some cases (like the Customer Note email) it's inherently tied to a specific trigger point. But the built-in emails' trigger statuses are largely fixed to WooCommerce's own defaults, not freely reconfigurable to any arbitrary status combination through settings alone.
When Custom Code Is Needed
- Triggering an email on a custom order status, which has no default email tied to it at all, needs a hook into that status's specific transition action to fire a custom or existing email template.
- Adding an extra condition beyond just status (only email VIP customers, only for orders above a certain value) needs custom logic checking that condition before deciding whether to send.
- Sending a completely custom email with its own template and content, rather than reusing one of WooCommerce's default templates, for a specific status or condition not covered by core.
add_action( 'woocommerce_order_status_on-hold', function( $order_id ) {
$order = wc_get_order( $order_id );
if ( $order->get_total() > 500 ) {
// Send a custom high-value order review email.
}
} );
Setting This Up
- Check the built-in settings first for each default email, since some flexibility already exists there for common needs.
- For a custom status or additional condition, hook into the specific status transition and add the extra logic needed.
- Test each specific scenario (the right status, the right condition) to confirm the email fires exactly when intended, and not otherwise.
Need custom order email logic built and tested properly? See custom WooCommerce development.