Отправить Woocommerce письмо о том, что пользовательское действие не работает - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь отправить пользовательское электронное письмо, когда публикация публикуется с использованием шаблона электронной почты 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, который вызывает электронную почту, он не печатает 'triggered' в файле debug.log.

Кто-нибудь знает, почему это не стрельба?

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 ]

3 голосов
/ 17 апреля 2019

На самом деле, вам не хватает _notification в add_action хуке.В электронную почту WooCommerce необходимо добавить _notification в tag имя do_action.

В вашем случае вы используете send_entry_list в do_action и add_action, тогда как в add_action вам просто нужно добавить _notification к имени tag, чтобы имя ловушки стало send_entry_list_notification.

Чтобы сделать это проще для вас, просто сделайте следующее изменение.

Замените эту строку:

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

на эту:

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

Надеюсь, у вас это работает.

0 голосов
/ 17 апреля 2019

Замените крючок, как показано ниже, и попробуйте,

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...