【发布时间】:2019-01-12 13:35:15
【问题描述】:
我正在尝试添加一个功能,该功能将记录通过订单状态更改发送的任何电子邮件。
我可以使用在发送订单通知电子邮件之前触发的挂钩吗?
【问题讨论】:
标签: php woocommerce hook-woocommerce orders email-notifications
我正在尝试添加一个功能,该功能将记录通过订单状态更改发送的任何电子邮件。
我可以使用在发送订单通知电子邮件之前触发的挂钩吗?
【问题讨论】:
标签: php woocommerce hook-woocommerce orders email-notifications
更新
所有负责触发电子邮件通知的可用钩子都位于WC_Emails init_transactional_emails() method,并且是动作钩子:
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.新订单通知的最后一件事,有点奇怪,您将使用其中之一:
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,如 this WC_Email_New_Order code source 中所述。
或者您可以使用位于 status_transition() WC_Order method 的 3 个挂钩之一来检测状态变化:
woocommerce_order_status_changedwoocommerce_order_status_{$status_transition[from]}_to_{$status_transition[to]}woocommerce_order_status_{$status_transition[to]}
status_transition()包含在set_status()WC_Ordermethod 中(同样update_status()method 也调用set_status())。
【讨论】:
woocommerce_order_status_{$status_transition[to]} 或 woocommerce_order_status_{$status_transition[from]}_to_{$status_transition[to]}...