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

标签 php wordpress methods woocommerce orders

我有一个脚本可以根据我们的 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);

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


要向客户重新发送电子邮件通知(如果需要),您可以使用当前订单 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 );

关于php - 从 WooCommerce 中的另一个脚本添加客户备注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57075194/

相关文章:

javascript - 参数作为对象项?

php - PHPExcel 中的公式错误

php - Laravel/Lumen 关系 - 加入条件检索错误的其他表

php - 使用 array_key_exists 将总金额与 id 配对

php - 将 WooCommerce Review 内容放入产品摘要

css - 如何继承/应用 Wordpress 模板 CSS 图像处理到我的小部件

css - 下面一行的 Bootstrap 下拉菜单

ruby - 如何在Ruby中随机化字符串的大写/小写?

objective-c - C 函数与 Objective-C 方法?

php - 如何将两个连续的 MySQL 行合并为一行