Отправить электронное письмо WooCommerce по адресу Сохранить с помощью woocommerce_email_actions

Я боролся с этим уже пару дней и просматривал каждый пост/комментарий/обсуждение/и т. д. Я мог бы попытаться найти рабочее решение.

Я хочу отправить электронное письмо через пользовательский класс, который расширяет WC_Email всякий раз, когда пользователь woocommerce обновляет свой адрес. Я нашел различные ресурсы, объясняющие, как создавать собственные электронные письма wc (skyverge оказался самым полезным), и я успешно это сделал. У меня есть плагин, который добавляет пользовательскую электронную почту в WP-Admin-> WooCommerce-> Настройки-> Электронная почта.

Если я использую действие, которое уже является частью 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 лет, и они мертвы, так что я здесь. Любая помощь или указатели будут очень признательны.


person VL Webmaster    schedule 27.12.2018    source источник


Ответы (1)


Публикация в качестве ответа на случай, если другие пытаются заставить эту функцию работать.

Я нашел эту статью от Tyche Softwares после долгих поисков и смог для создания плагина, который будет отправлять пользовательское WC_Email всякий раз, когда клиент обновляет свой адрес Информация.

Я до сих пор не на 100% понимаю, почему add_filter('woocommerce_email_actions'... не работает, и если кто-нибудь может сказать мне, почему мне все еще интересно.

Этот плагин работает, вызывая пользовательское действие, определенное в моем расширенном классе WC_Email, через do_action всякий раз, когда происходит существующее действие woocommerce_customer_save_address.

person VL Webmaster    schedule 02.01.2019