问题:WooCommerce 电子邮件 ID 和电子邮件通知的订单状态更改

我正在尝试添加一个功能,该功能将记录通过订单状态更改发送的任何电子邮件。

在发送订单通知电子邮件之前,我可以使用一个挂钩吗?

解答

更新

所有负责触发电子邮件通知的可用钩子都位于WC_Emails``init_transactional_emails() 方法中,并且是动作钩子:

  • woocommerce_low_stock,

  • woocommerce_no_stock,

  • woocommerce_product_on_backorder,

  • woocommerce_order_status_pending_to_processing,

  • woocommerce_order_status_pending_to_completed,

  • woocommerce_order_status_processing_to_cancelled,

  • woocommerce_order_status_pending_to_failed,

  • woocommerce_order_status_pending_to_on-hold,

  • woocommerce_order_status_failed_to_processing,

  • woocommerce_order_status_failed_to_completed,

  • woocommerce_order_status_failed_to_on-hold,

  • woocommerce_order_status_on-hold_to_processing,

  • woocommerce_order_status_on-hold_to_cancelled,

  • woocommerce_order_status_on-hold_to_failed,

  • woocommerce_order_status_completed,

  • woocommerce_order_fully_refunded,

  • woocommerce_order_partially_refunded,

  • woocommerce_new_customer_note,

  • woocommerce_created_customer

这些动作钩子中的每一个都可以排队发送事务性电子邮件,您将在第 95 行第 99 行的源代码中看到。

新订单通知的最后一件事,这有点奇怪,您将使用其中之一:

  • woocommerce_order_status_pending_to_processing_notification,

  • woocommerce_order_status_pending_to_completed_notification,

  • woocommerce_order_status_pending_to_on-hold_notification,

  • woocommerce_order_status_failed_to_processing_notification,

  • woocommerce_order_status_failed_to_completed_notification,

  • woocommerce_order_status_failed_to_on-hold_notification,

如中所述,此WC_Email_New_Order代码源。


或者您可以使用位于status_transition()``WC_Order方法的 3 个挂钩之一来检测状态更改:

  • woocommerce_order_status_changed

  • woocommerce_order_status_{$status_transition[from]}_to_{$status_transition[to]}

  • woocommerce_order_status_{$status_transition[to]}

status_transition()包含在set_status()``WC_Order方法(还有update_status()method也调用set_status()_)_中。

Logo

WooCommerce社区为您提供最前沿的新闻资讯和知识内容

更多推荐