在Woocommerce上,我有一个表格,客户可以在此确认付款并提交。点击提交后,订单状态从保留变为使用以下代码处理:
$order = new WC_Order( $order_id );
if( ( $order !== null ) ) {
$order->update_status('processing', 'order_note');
}
但是,它不发送处理电子邮件。如果我从WordPress手动更改状态,它将发送电子邮件。所以我尝试使用此代码:
$mailer = WC()->mailer()->get_emails();
if($order->has_status( 'processing' )){
$mailer['WC_Email_Customer_Processing_Order']->trigger( $order_id );
}
此代码可以很好地发送电子邮件,但是来自WooCommerce的原始电子邮件不是自定义的电子邮件(我使用插件自定义电子邮件)。我尝试检查email_id
,但是原始版本和自定义版本都共享相同的ID。如果我将状态从“保留”更改为“手动处理”,则会发送自定义状态。
我不知道如何从functions.php
我尝试用
发送双封电子邮件 add_action( 'woocommerce_order_status_processing', 'my_function', 2, 10 );
因此,当状态更改为处理客户时,将通过手动更改状态以及从功能中获取电子邮件。他们收到了2则自定义的电子邮件,而不是原始的。