所以我有这个小问题。我有一个带有自定义订单状态的网站,以及应该以这些状态发送的电子邮件。当我在后端转到订单并使用下拉选择更改订单状态时,这些电子邮件将发送(我有电子邮件日志记录,并且显示为已发送,都很好)。
现在,我有一个自定义插件操作,它会根据某些内容手动更新订单状态。但是,结帐时唯一发出的电子邮件是新订单和客户发票(如预期)。我不会在结帐时更新订单状态,而是等到显示“订单显示”(“订单详细信息”)页面,然后再钩一个动作来实际更改订单状态。
<?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);
}
}
这将导致设置正确的状态,但是不会触发电子邮件。我如何获得触发此自定义状态的电子邮件,而无需对其进行实际的硬编码(几乎不可能,有很多自定义状态和自定义电子邮件,并且这些都是预先配置的)。
任何帮助将不胜感激。我正在寻找仅代码解决方案。
最好, 杰森