2017-06-05 1 views
0

Ich versuche das Abfeuern der Rechnungs-E-Mail für bestimmte Bestellstatus zu deaktivieren, aber ich kann nicht finden, wo die email->send ist, die dies tut. Ich habe alle email->sends in catalog->model->checkout->order.php auskommentiert und den Cache gelöscht, aber immer noch bekomme ich eine Rechnung E-Mail durch. Vielen Dank im Voraus.Wo in OpenCart-Code sendet es Rechnungs-E-Mails aus?

Antwort

0

Die E-Mails werden von der Datei gesendet: catalog/model/checkout/order.php wie Sie sagen.

Lassen Sie uns sagen, dass die order_status_id der Ihnen die E-Mail senden möchten, ist: 7 (in der Regel der Standard, um eine vollständige Status-ID)

Finden Sie den Code:

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

und wickeln Sie es mit einer if Anweisung wie folgt:

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

diese Änderung wird konstruieren und die E-Mail senden nur, wenn der Auftrag = 7. ändern Sie diese order_status_id zu Ihrem status_id hat.

Wichtige Informationen: 1) Wenn Sie irgendeine OpenCart Erweiterung verwenden, die diesen Code ändert, müssen Sie Ihren Code anpassen ... 2) Wenn Sie die Standard-order_status_id Ihrer eshop order_status_id ist, dann werden Sie nie bekommen Email. Achtung.

Ich hoffe, ich half. Prost.

Verwandte Themen