Woocommerce电子邮件调试器问题

时间:2015-03-06 12:27:33

标签: php wordpress email woocommerce

我找到了一个针对woocommerce电子邮件的调试器(http://enru.co.uk/2014/02/17/testing-woocommerce-emails/

它工作正常,除了一件事: 我想要仅将其用于调试目的 ,目前,我每次打开电子邮件时都会发送电子邮件同样。我可以更改代码,以便我可以查看电子邮件而无需实际发送吗?

我的代码是:

<?php
/*
Template Name: WC_Email_Preview
*/
?>

<?php

// include WordPress' wp-load
include($_SERVER['DOCUMENT_ROOT'] . "/wp-load.php");

/*// verbose errors
ini_set('display_errors', 1);
error_reporting(E_ALL);*/

$order_id = "4452";
$email_class = $_REQUEST['email'];

if ($email_class == null) {
    $email_class = 'WC_Email_Customer_Invoice';
}

if (!isset ($order_id)) {
    global $wpdb;
    $latestOrderID = $wpdb->get_results("SELECT max(ID) as ID FROM wp_posts WHERE post_type = 'shop_order';", OBJECT);
    $order_id = $latestOrderID[0]->ID;
};

$wc_emails = new WC_Emails();
$emails = $wc_emails->get_emails();

/*$new_email = $emails[$email_class];*/
$new_email->trigger($order_id);
echo $new_email->get_content();
return;
?>

问题是,我尝试在代码末尾添加返回以避免发送电子邮件,但它没有用。 我需要更改什么来禁用发送功能?

感谢

1 个答案:

答案 0 :(得分:1)

好的,我找到了一种方法。

基本上我将trigger()功能更改为debugEmail(),并在class-wc-email-customer-invoice.php文件中将trigger()复制到debugEmail()并删除此行以避免发送电子邮件:

$this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() );