我找到了一个针对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;
?>
问题是,我尝试在代码末尾添加返回以避免发送电子邮件,但它没有用。 我需要更改什么来禁用发送功能?
感谢
答案 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() );