Woocommerce 的正常行为是:
我只想在订单状态达到“正在处理”时发送“新订单”电子邮件(无论之前的状态如何)
因此,最终目标是阻止 woocommerce 在订单状态“保留”时发送“新订单”电子邮件,并使其仅(且始终)在状态变为“正在处理”时发送。
首先,我尝试过WooCommerce 向管理员发送电子邮件通知以获取特定订单状态答案代码,该代码非常适合成功触发订单状态“正在处理”的“新订单”电子邮件,但是电子邮件仍然会在订单状态“保留”时发送(因此有时可能会发送两次)。
尝试通过禁用处于“保留”状态的“新订单”电子邮件来解决此问题,方法是:
管理 >> Woocommerce >> 设置 >> 电子邮件
然后通过单击管理按钮禁用“新订单”订单电子邮件,不起作用(这完全禁用了电子邮件,并且即使在由上述代码处理时触发,它也完全停止发送)
然后,如果订单状态为“暂停应答代码” ,我尝试禁用 WooCommerce 新订单电子邮件通知。
但是,它会成功禁用新订单电子邮件,但如果订单从“暂停”变为“处理中”,您根本不会收到任何电子邮件,并且如果新订单直接设置为处理并且您有之前的触发代码那么您还会遇到收到 2 封电子邮件的问题。切换状态:
return $order->get_status() === 'on-hold' ? '' : $recipient;
Run Code Online (Sandbox Code Playgroud)
到:
return $order->get_status() === 'processing' ? '' : $recipient;
Run Code Online (Sandbox Code Playgroud)
完全禁用“新订单”电子邮件。
我基本上想记录我对此的挣扎并分享我当前的解决方案,因为似乎有相当多的人有同样的意图,但没有明确简洁和实际功能的方法来做到这一点。