向Woocommerce发送有关自定义操作无效的电子邮件

时间:2019-04-17 10:53:16

标签: php wordpress woocommerce

使用Woocommerce电子邮件模板发布帖子时,我正在尝试发送自定义电子邮件。

我已经包括了Woocommerce使用woocommerce_email_classes加载的模板和类,并且还在send_entry_list过滤器中注册了自定义操作woocommerce_email_actions

do_action('send_entry_list', $competition_id, $entry_list_url); 

在触发电子邮件的add_action中向其中添加class-entry-list-email.php时,它不会在debug.log文件中打印出“ triggered”。

有人知道为什么不触发吗?

public function __construct() {
   add_action( 'send_entry_list', array( $this, 'trigger' ) );
}

public function trigger( $competition_id, $entry_list_url ) {
    error_log(print_r('triggered', true));
}
add_filter( 'woocommerce_email_classes', array($this, 'add_draw_number_email'));

function add_draw_number_email( $email_classes ) {
    // include our custom email class
    require( 'includes/class-entry-list-email.php' );

    // add the email class to the list of email classes that WooCommerce loads
    $email_classes['Entry_List_Email'] = new Entry_List_Email();

    return $email_classes;
}

add_filter( 'woocommerce_email_actions', array($this, 'crwc_register_custom_order_status_action'));


function crwc_register_custom_order_status_action( $actions ) {

    $actions[] = 'send_entry_list';

    return $actions;
}

2 个答案:

答案 0 :(得分:3)

实际上,您在which (from --python=钩中缺少_notification。在WooCommerce电子邮件中,您需要在add_action的{​​{1}}名称中添加_notification

在您的情况下,您同时在tagdo_action中使用send_entry_list,而在do_action中,您只需要在{{1 }}名称,因此钩子名称变为add_action

为方便起见,只需进行以下更改。

替换此行:

add_action

与此:

_notification

希望,它对您有用。

答案 1 :(得分:0)

按如下所示更改钩子,然后尝试

add_action( 'send_entry_list', array( $this, 'trigger' ), 10, 2 );