默认情况下,WooCommerce不会发送退款电子邮件,因为正如Mike Jolley所说,退款是“手动流程” . 但是,我需要发一个!
我的问题是:我无法在扩展的电子邮件类中找到一个钩子来执行此操作 .
我按照本教程编写了一个扩展 WC_Email
的类,并且除了在订单状态更改并保存为"refunded"时需要一个钩子来触发类时,一切都正常工作:
http://www.skyverge.com/blog/how-to-add-a-custom-woocommerce-email/
我尝试了各种钩子,如 woocommerce_order_status_refund
代替39-40号线上的 woocommerce_order_status_pending_to_processing_notification
钩子 .
问题是 woocommerce_order_status_refund
不会触发电子邮件类内部 . 它在其他地方工作得很好,但不是在这种情况下 .
我尝试用 woocommerce_order_actions_end
替换钩子作为"generic" . 我添加了一个if (! $order->status == 'refunded')
来仅过滤"refunded" . 但现在每次加载状态为'refunded'的订单时,挂钩都会触发 .
(我也尝试将一个自定义动作与woocommerce_order_actions一起添加到动作菜单中,但问题是在这里我不知道如何用这个触发我的类 . 它似乎在课前加载,因此也不起作用 . )
有没有办法在订单状态更改为“退款”时触发通过扩展类发送的电子邮件?
1 回答
引用此question,您必须执行两项操作才能获得退款状态以触发电子邮件 .
首先,您必须将
woocommerce_order_status_refunded
挂钩注册为将触发电子邮件的挂钩 . 默认情况下,它没有 .EDIT for WooCommerce 2.3
在我的拉取请求中合并之后,下一版本的WooCommerce(2.3)应该支持过滤触发电子邮件的操作 . 因此,您可以通过过滤器添加退款状态:
然后在您的自定义电子邮件类的
_construct
方法中,您可以将其用作触发器: