使用woocommerce_email_actions在地址保存上发送WooCommerce电子邮件

时间:2018-12-27 21:58:51

标签: wordpress woocommerce add-filter

我已经为此苦苦挣扎了几天,遍历了每个帖子/评论/讨论/等等...我可以找到试图找到可行解决方案的方法。

我想通过自定义类发送电子邮件,该类在woocommerce用户更新地址时会扩展WC_Email。我找到了各种资源来解释如何创建自定义的wc电子邮件(skyverge was most useful),并且已经成功地做到了。我有一个插件,可以在WP-Admin-> WooCommerce-> Settings-> Emails中添加自定义电子邮件。

如果我使用的是woocommerce_email_actions中已经存在的操作,例如add_action( 'woocommerce_order_status_failed_to_processing_notification', array( $this, 'trigger' ) );,并手动更改后端的订单状态,则一切正常。

问题是我想使用add_action( 'woocommerce_customer_save_address', array( $this, 'trigger' ) );,不幸的是它永远不会触发。

基于其他一些线程,我尝试将以下内容添加到主插件文件中

function new_woocommerce_email_actions( $actions ){
    $actions[] = 'woocommerce_customer_save_address';
    return $actions;
}
add_filter( 'woocommerce_email_actions', 'new_woocommerce_email_actions' );

据说这应该允许我在自定义类中使用操作,但是没有运气。我也曾尝试添加其他操作,但没有成功。例如,当手动将订单更改为取消时,使用过滤器添加woocommerce_order_status_cancelled不会触发。我正在努力弄清为什么这行不通,而且我发现的大多数线程都是2岁以上并且已经死了,所以我在这里。任何帮助或指示,将不胜感激。

1 个答案:

答案 0 :(得分:0)

发布作为答案,以防其他人试图使此功能正常工作。

经过大量挖掘,我发现this article from Tyche Softwares并能够创建a plugin,只要客户更新其地址信息,该https://windows.php.net/downloads/pecl/releases/zmq/1.1.3/就会发送自定义WC_Email。

对于add_filter('woocommerce_email_actions'...为何不起作用,以及是否有人可以告诉我为什么我仍然感兴趣的原因,我仍然不是100%知道。

只要现有的woocommerce_customer_save_address操作发生,该插件就可以通过do_action调用在扩展的WC_Email类中定义的自定义操作。