2017-06-05 34 views
0

我试图禁用某些订单状态的发票电子邮件的解雇,但无法找到email->send是这样做的。 我已将中的catalog->model->checkout->order.php注释掉,并清除了缓存但仍收到发票通过电子邮件。 在此先感谢。OpenCart的代码在哪里发送发票邮件?

回答

0

电子邮件从文件发送: 目录/模型/结帐/ order.php正如你所说。

比方说,你要发送的邮件订单的order_status_id是:7(一般默认顺序完整的状态ID)

查找代码:

$mail = new Mail(); 
$mail->protocol = $this->config->get('config_mail_protocol'); 
$mail->parameter = $this->config->get('config_mail_parameter'); 
$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); 
$mail->smtp_username = $this->config->get('config_mail_smtp_username'); 
$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); 
$mail->smtp_port = $this->config->get('config_mail_smtp_port'); 
$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); 

$mail->setTo($order_info['email']); 
$mail->setFrom($this->config->get('config_email')); 
$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); 
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8')); 
$mail->setHtml($this->load->view('mail/order', $data)); 
$mail->setText($text); 
$mail->send(); 

并用,如果把它包声明如下:

if($order_status_id == 7){ 
    $mail = new Mail(); 
    $mail->protocol = $this->config->get('config_mail_protocol'); 
    $mail->parameter = $this->config->get('config_mail_parameter'); 
    $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); 
    $mail->smtp_username = $this->config->get('config_mail_smtp_username'); 
    $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); 
    $mail->smtp_port = $this->config->get('config_mail_smtp_port'); 
    $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); 

    $mail->setTo($order_info['email']); 
    $mail->setFrom($this->config->get('config_email')); 
    $mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); 
    $mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8')); 
    $mail->setHtml($this->load->view('mail/order', $data)); 
    $mail->setText($text); 
    $mail->send(); 
} 

这一变化将构建并只发送如果订单已STATUS_ID = 7.更改此order_status_id到你的电子邮件。

重要信息: 1)如果你使用任何Opencart的扩展,改变了这种代码,你需要调整你的代码... 2)如果您order_status_id是你的网上商店的默认order_status_id,那么你将永远不会得到电子邮件。小心。

希望我帮了忙。干杯。