WooCommerce Предварительный просмотр шаблона электронной почты.Отдельная функция отправки и предварительного просмотра - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть эта часть кода:

// load the email classs
$wc_emails = new WC_Emails();
$emails = $wc_emails->get_emails();

// select the email we want & trigger it to send
$email = $emails[ $email_class ];

// send email
$email->trigger( $wc_email_test_order_id );

// preview email content for browser
echo apply_filters( 'woocommerce_mail_content', $email->style_inline( $email->get_content_html() ) );

Все в одной функции.Это работает следующим образом:

  1. выбор электронной почты
  2. отправка электронной почты
  3. предварительный просмотр электронной почты

Мне нужно разделить отправку и предварительный просмотр электронной почты.

  • , если я удалю эхо-контент для более широкого просмотра.Он отправляет электронную почту.Это нормально.
  • , если я удаляю содержимое триггера / эха, чтобы броузер не работал в одиночку без триггера.Это проблема.

Мне нужно, чтобы он работал без триггера (без отправки электронных писем)

1 Ответ

0 голосов
/ 06 декабря 2018

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

// load the email classs
$wc_emails = new WC_Emails();
$emails = $wc_emails->get_emails();

// select the email we want & trigger it to send
$email = $emails[ $email_class ];

// Disable email if preview check enable. 
add_filter( 'woocommerce_email_enabled_' . $email->id , '__return_false' );
add_filter( 'woocommerce_email_recipient_' . $email->id , '__return_false' );

// send email
$email->trigger( $wc_email_test_order_id );

// preview email content for browser
echo apply_filters( 'woocommerce_mail_content', $email->style_inline( $email->get_content_html() ) );

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

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