【发布时间】:2017-09-20 20:12:52
【问题描述】:
我正在使用 WooCommerce 高级通知发送电子邮件,从 v1.2.10 开始,添加了一个过滤器,因此您可以更改触发器,但我无法让它工作。
过滤器挂钩如下所示:
if ( apply_filters( 'woocommerce_advanced_notifications_multiple_statuses_trigger', true ) ) {
add_action( 'woocommerce_order_status_pending_to_processing', array( $this, 'new_order' ) );
add_action( 'woocommerce_order_status_pending_to_completed', array( $this, 'new_order' ) );
add_action( 'woocommerce_order_status_pending_to_on-hold', array( $this, 'new_order' ) );
add_action( 'woocommerce_order_status_failed_to_processing', array( $this, 'new_order' ) );
add_action( 'woocommerce_order_status_failed_to_completed', array( $this, 'new_order' ) );
} else {
add_action( 'woocommerce_order_status_completed', array( $this, 'new_order' ) );
}
我想要达到的目标
我希望能够添加自己的触发器(例如 processing_to_completed)并删除其他触发器(例如 pending_to_on-hold)。
我要去哪里
我使用此 (http://docs.presscustomizr.com/article/26-wordpress-actions-filters-and-hooks-a-guide-for-non-developers) 指南来了解有关过滤器的更多信息,并且我发现我可以通过将此代码添加到我的 functions.php 来更改使用 if 语句的哪一部分
apply_filters( 'woocommerce_advanced_notifications_multiple_statuses_trigger', false );
但我看不到如何添加新触发器。我看不到如何将变量传回过滤器。
我希望能指出正确的方向。谢谢,劳拉。
【问题讨论】:
-
你的目标是什么?是否要删除多个状态触发器?还是要添加一个额外的?
-
嗨,赫尔加。我希望能够添加我自己的触发器(例如 processing_to_completed)并删除其他触发器(例如pending_to_on-hold)。我已经编辑了问题以澄清。
-
好吧,如果你
add_filter( 'woocommerce_advanced_notifications_multiple_statuses_trigger', '__return_false' );应该禁用多个状态触发器,只留下woocommerce_order_status_completed触发器。 -
但是您仍然想在该操作上触发插件的
new_order方法?你能展示更多这门课吗?如何实例化类? -
谢谢 Helga 我会检查您的建议并提供更多详细信息。
标签: php wordpress woocommerce orders email-notifications