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

Add customer note from another script in WooCommerce

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

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

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

不幸的是,这在订单编辑屏幕之外不起作用,我尝试从我的自定义插件中 运行 它。 (source)

如果我通过 $order->update_status($status, $note); 这样做,它只会更新状态。

有没有办法在编辑屏幕外添加注释? (包括给客户发电子邮件)

如果注释是给客户的(并且必须对他可见),您需要改用 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);

这需要在保存订单数据或更新订单状态之前完成。


到 re-send 给客户的电子邮件通知(如果需要)您可以使用当前订单 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 );
//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();

我正在构建新的 class 秩序。传递订单 ID 和订单备注,然后再次保存订单。

这就是我们从 ERP 更新网站的方式。但正如 Loic 所说,这种方法会创建一个私人笔记。使用他的

$order->set_customer_note($note);

创建客户备注。