我有一个脚本,可以根据我们的ERP系统更改订单状态。
除此之外,我们需要添加客户注释。我找到了方法:
$order->add_order_note($note);
$order->save();
不幸的是,这在订单编辑屏幕之外无法正常工作,我尝试通过自定义插件运行它。 (source)
如果我通过$order->update_status($status, $note);
进行操作,只会更新状态。
是否可以在编辑屏幕之外添加注释? (包括通过电子邮件发送给客户)
答案 0 :(得分:1)
如果注释是给客户的(并且必须对客户可见),则您需要使用WC_Order
方法set_customer_note()
(或两者) :>
$order->set_customer_note($note);
// $order->add_order_note($note);
$order->save();
或者:
$order->set_customer_note($note);
$order->update_status($status, $note);
这需要在保存订单数据或更新订单状态之前完成。
要重新发送电子邮件通知给客户(如果需要),您可以使用当前的订单ID:
$emails = WC()->mailer()->get_emails();
$emails['WC_Email_Customer_Completed_Order']->trigger( $order_id );
// OR: $emails['WC_Email_Customer_Processing_Order']->trigger( $order_id );
答案 1 :(得分:0)
//Pass order id from hook or function with $order_id
$order = new WC_Order( $order_id );
$note = 'Add note here';
$order->add_order_note($note);
$order->save();
我正在构建新的订单类。传递订单ID和订单注释,然后再次保存订单。
这是我们从ERP更新网站的方式。但是正如Loic所说,这种方法会创建一个私人注释。用他的
$order->set_customer_note($note);
创建客户注释。