2

Every WooCommerce email can successfully be sent from functions.php – except the "new order" email.

This does not send an email successfully:

$mailer = WC()->mailer()->get_emails()['WC_Email_New_Order']->trigger( 1161 );

But all of the following lines send an email successfully

$mailer = WC()->mailer()->get_emails()['WC_Email_Cancelled_Order']->trigger( 1161 );
$mailer = WC()->mailer()->get_emails()['WC_Email_Customer_Completed_Order']->trigger( 1161 );
$mailer = WC()->mailer()->get_emails()['WC_Email_Customer_Invoice']->trigger( 1161 );
$mailer = WC()->mailer()->get_emails()['WC_Email_Customer_On_Hold_Order']->trigger( 1161 );
$mailer = WC()->mailer()->get_emails()['WC_Email_Customer_Processing_Order']->trigger( 1161 );
$mailer = WC()->mailer()->get_emails()['WC_Email_Customer_Refunded_Order']->trigger( 1161 );
$mailer = WC()->mailer()->get_emails()['WC_Email_Customer_Reset_Password']->trigger( 1161 );
$mailer = WC()->mailer()->get_emails()['WC_Email_Failed_Order']->trigger( 1161 );

Any idea what i am missing here? I am able to go to any order in the backend and resend the new order email successfully from the GUI.

UPDATE

Using this filter to override this behavior fixes the problem for me:

add_filter( 'woocommerce_new_order_email_allows_resend', '__return_true' );

0 Answers0