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

时间:2018-11-13 17:56:32

标签: email override prestashop-1.7

我在电子邮件确认中需要不含运费的税。我进行了更改:

  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}字符串。

我想念什么?

2 个答案:

答案 0 :(得分:1)

我也在编辑用于订单确认的电子邮件模板。您需要编辑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);

答案 1 :(得分:0)

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