从WooCommerce中的另一个脚本添加客户注释

时间:2019-07-17 11:53:18

标签: php wordpress methods woocommerce orders

我有一个脚本,可以根据我们的ERP系统更改订单状态。

除此之外,我们需要添加客户注释。我找到了方法:

$order->add_order_note($note);
$order->save();

不幸的是,这在订单编辑屏幕之外无法正常工作,我尝试通过自定义插件运行它。 (source

如果我通过$order->update_status($status, $note);进行操作,只会更新状态。

是否可以在编辑屏幕之外添加注释? (包括通过电子邮件发送给客户)

2 个答案:

答案 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);

创建客户注释。