WooCommerce:更新订单状态不会发送电子邮件

时间:2020-01-12 17:35:42

标签: php wordpress woocommerce

所以我有这个小问题。我有一个带有自定义订单状态的网站,以及应该以这些状态发送的电子邮件。当我在后端转到订单并使用下拉选择更改订单状态时,这些电子邮件将发送(我有电子邮件日志记录,并且显示为已发送,都很好)。

现在,我有一个自定义插件操作,它会根据某些内容手动更新订单状态。但是,结帐时唯一发出的电子邮件是新订单和客户发票(如预期)。我不会在结帐时更新订单状态,而是等到显示“订单显示”(“订单详细信息”)页面,然后再钩一个动作来实际更改订单状态。

<?php
public function delayed_order_status_update($order) {
        $opt = get_option('delayed_order_statuses',[]);
        if ( !empty($opt) ) {
            $new_opt = [];
            foreach ( $opt as $up ) {
                if ( $up[0] == $order->get_id() ) {
                    $order->update_status($up[1]);
                } else {
                   $new_opt[] = $up; 
                }
            }
            $opt = $new_opt;
            update_option('delayed_order_statuses',$opt);
        }
    }

这将导致设置正确的状态,但是不会触发电子邮件。我如何获得触发此自定义状态的电子邮件,而无需对其进行实际的硬编码(几乎不可能,有很多自定义状态和自定义电子邮件,并且这些都是预先配置的)。

任何帮助将不胜感激。我正在寻找仅代码解决方案。

最好, 杰森

0 个答案:

没有答案