I have the admin or store owner emails disabled but would like to programmatically fire the action so that once a function runs using AJAX to finalize an order I can send the email as intended, but only after an AJAX function that is fired on the return of the reciept page after payment.

The flow is as follows currently: Add to Cart -> Cart -> Checkout -> Reciept Page (disabled new order email here) -> Redirect to Payment -> Payment -> Redirect to final Reciept Page (send the disabled new order notification here).

I'm trying to use the following to send the disabled new order email:

// Get the WC_Email_New_Order object $email_new_order = WC()->mailer()->get_emails()['WC_Email_New_Order']; // Sending the new Order email notification for an $order_id (order ID) $email_new_order->trigger( $order->get_id() );

but the email is never sent, I assume because its disabled under WC > Settings > Email > New Order - but is there a way around this?


I ended up answering my own question, using the woocommerce_email_enabled_new_order filter and setting it to true prior to triggering the email, example:

add_filter( 'woocommerce_email_enabled_new_order', function($enabled, $order) { return true; }, 10, 2 );

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.