WooCommerce的正常行为是:
- 如果订单状态为“待处理”(等待支付),则不会发送“新订单”电子邮件
- 如果订单状态为“挂起”(等待确认),则会发送“新订单”电子邮件。
- 如果订单立即从“待处理”更改为“处理中” (通过支付网关)-它将发送“新订单”电子邮件。
我希望只有当订单状态达到“处理中”时才发送“新订单”电子邮件(不管之前的状态如何)
因此,最终目标是阻止WooCommerce在订单状态“挂起”时发送“新订单”电子邮件,并使其仅在状态达到“处理中”时发送(始终发送)。
首先我尝试了WooCommerce send email notification to admin for specific order status 的答案代码,它可以成功地在订单状态“处理中”时触发“新订单”电子邮件,但是电子邮件仍然会在订单状态“挂起”(因此有时可能会发送两次电子邮件)。
尝试通过进入以下路径来禁用“挂起”状态下的“新订单”电子邮件:
管理 >> Woocommerce >> 设置 >> 电子邮件
然后通过单击管理按钮禁用“新订单”订单电子邮件,但这样并不起作用(这将完全禁用电子邮件,并且即使通过上述代码在处理中触发时也不再发送任何电子邮件)
然后我尝试了Disable WooCommerce New order email notification if order status is On hold 的答案代码。
然而,它成功地禁用了“新订单”电子邮件,但是如果订单从“挂起”转移到“处理中”,则根本不会收到任何电子邮件,而且如果直接将新订单设置为处理中并且您使用上述触发电子邮件的代码,则仍然会有接收两封电子邮件的问题。将状态从:
return $order->get_status() === 'on-hold' ? '' : $recipient;
to:
return $order->get_status() === 'processing' ? '' : $recipient;
禁用“新订单”电子邮件。
基本上,我想记录我的挣扎并分享我的当前解决方案,因为似乎有很多人有同样的意图,但没有明确简洁且实际有效的方法来做到这一点。