WooCommerce预览电子邮件模板。独立的发送和预览功能

时间:2018-11-27 20:21:47

标签: woocommerce

我有这部分代码:

// 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. 预览电子邮件

我需要分开发送和预览电子邮件。

  • 如果我删除了broser的回声内容。它发送电子邮件。没关系。
  • 如果我删除了triger / echo内容,则没有触发器就无法单独处理broser。这就是问题。

我需要使其在没有触发器的情况下工作(不发送电子邮件)

1 个答案:

答案 0 :(得分:0)

为触发电子邮件设置条件,并在触发方法之前添加过滤器以禁用电子邮件发送。

// 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() ) );

因此,它应该显示预览电子邮件,但不要使用触发方法发送电子邮件。