Я создал новую страницу в WordPress и установил пользовательский шаблон в качестве шаблона для новой страницы.
В моем шаблоне я делаю некоторые вещи, такие как показ содержимого HTML.После того, как все заработало, я решил добавить do_action
в свой пользовательский шаблон, чтобы отправить электронное письмо через почтовый клиент / класс WooCommerce.
Итак, я установил новый класс электронной почты и создал в этом классе настраиваемый триггер, который запускает отправку электронной почты:
// Triggers for this email.
add_action( 'trigger_rated_email', array( $this, 'trigger' ), 10, 10 );
/**
* Trigger the sending of this email.
*
* @param int $order_id The order ID.
* @param WC_Order|false $order Order object.
*/
public function trigger( $order_id, $order = false ) {
$this->setup_locale();
if ( $order_id && ! is_a( $order, 'WC_Order' ) ) {
$order = wc_get_order( $order_id );
}
if ( is_a( $order, 'WC_Order' ) ) {
$developer_id = get_post_meta( $order_id, 'developer_id', true );
$developer = get_userdata( $developer_id );
$this->object = $order;
$this->recipient = $developer->user_email;
$this->placeholders['{order_date}'] = wc_format_datetime( $this->object->get_date_created() );
$this->placeholders['{order_number}'] = $this->object->get_order_number();
}
if ( $this->is_enabled() && $this->get_recipient() ) {
$this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() );
}
$this->restore_locale();
}
Этот add_action
вызывает метод trigger()
вкласс электронной почты, который отправляет электронную почту.Чтобы инициировать отправку, я сделал это в своем шаблонном PHP-файле:
do_action( 'trigger_rated_email', $order_id );
После сохранения я загрузил его на свой сервер и вызвал страницу, но на мою учетную запись электронной почты не было отправлено письмо,
Итак, я сделал много проверок, чтобы выяснить, есть ли проблема в моем классе электронной почты:
- Инициировал письмо с другой страницы (не пользовательский шаблон) ->электронное письмо отправлено
- Проверено, есть ли ошибка в моем debug.log -> нет ошибки
Так в чем проблема?Я думаю, что в пользовательском шаблоне должна быть проблема, поэтому я сначала подумал, что do_action
не вызывается правильно, потому что он не знает add_action
из моего класса.