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