Prestashop 1.7 将新变量添加到电子邮件中 ​​total_shipping_tax_excl

Prestashop 1.7 add new variables into email total_shipping_tax_excl

我需要在电子邮件确认中包含不含税的运费。我做了修改:

  1. 在邮件翻译中order_conf我把{total_shipping_tax_excl}

  2. 我在 /override/classes/order/OrderHistory 中进行了覆盖。php

    class OrderHistory extends OrderHistoryCore
    {   
        public function sendEmail($order, $template_vars = false)
        {
            $data = array(
                    '{total_shipping_tax_excl}' => Tools::displayPrice($order->total_shipping_tax_excl, $this->context->currency, false)
                );
            //die (print_r($data,true));    
            if ($template_vars) {
                    $data = array_merge($data, $template_vars);
                }
    
            return parent::sendEmail($order, $data);
        }
    }
    

覆盖有效 - 如果我死了 (print_r($data,true));我可以看到正确的值在 total_shipping_tax_excl 键中。电子邮件翻译有效 - 我看到了新字符串。但是当发送电子邮件时,我只有 {total_shipping_tax_excl} 字符串。

我错过了什么?

我也在编辑订单确认邮件模板。您需要编辑 PaymentModule.php 才能正常工作。您也可以直接从该文件中设置电子邮件主题。

756行附近

// Send an e-mail to customer (one order = one email)
if ($id_order_state != Configuration::get('PS_OS_ERROR') && $id_order_state != Configuration::get('PS_OS_CANCELED') && $this->context->customer->id) {
    $invoice = new Address((int)$order->id_address_invoice);
    $delivery = new Address((int)$order->id_address_delivery);

Enthu 是对的。第一个问题是确认电子邮件是在 classes/PaymentModule.php 中生成的,而不是在 /classes/order/OrderHistory.php 中生成的。 解决方案是覆盖原始文件或等待。我提出了拉取请求:https://github.com/PrestaShop/PrestaShop/issues/11396 并接受了更改,因此 {total_shipping_tax_excl} 和 {total_shipping_tax_incl} 将在 1.7.6