2016-07-20 29 views
2

Auf meinem classes/PaymentModule.php Ich habe order_conf '{message}' => $customer_message erklärt (zwischen anderen VARs), aber immer noch meine Kunden sehen Wiadomość: {message} in Mails, die sie empfangen.Kann hinzufügen nicht {Nachricht} Variable Mail-Vorlage

Was mache ich falsch? Vielleicht deklariert {message} var in PaymentModule.php nicht genug?

UDPATE:

dies ist Standard PaymentModule.php Code in Prestashop 1.6.2.1 mit zugesetztem {Nachricht} Variable:

$customer_message = $order->getFirstMessage(); 
$data = array(
      '{firstname}' => $this->context->customer->firstname, 
      '{lastname}' => $this->context->customer->lastname, 
      '{email}' => $this->context->customer->email, 
      '{delivery_block_txt}' => $this->_getFormatedAddress($delivery, "\n"), 
      '{invoice_block_txt}' => $this->_getFormatedAddress($invoice, "\n"), 
      '{delivery_block_html}' => $this->_getFormatedAddress($delivery, '<br />', array(
       'firstname' => '<span style="font-weight:bold;">%s</span>', 
       'lastname' => '<span style="font-weight:bold;">%s</span>' 
      )), 
      '{invoice_block_html}' => $this->_getFormatedAddress($invoice, '<br />', array(
        'firstname' => '<span style="font-weight:bold;">%s</span>', 
        'lastname' => '<span style="font-weight:bold;">%s</span>' 
      )), 
      '{delivery_company}' => $delivery->company, 
      '{delivery_firstname}' => $delivery->firstname, 
      '{delivery_lastname}' => $delivery->lastname, 
      '{delivery_address1}' => $delivery->address1, 
      '{delivery_address2}' => $delivery->address2, 
      '{delivery_city}' => $delivery->city, 
      '{delivery_postal_code}' => $delivery->postcode, 
      '{delivery_country}' => $delivery->country, 
      '{delivery_state}' => $delivery->id_state ? $delivery_state->name : '', 
      '{delivery_phone}' => ($delivery->phone) ? $delivery->phone : $delivery->phone_mobile, 
      '{delivery_other}' => $delivery->other, 
      '{invoice_company}' => $invoice->company, 
      '{invoice_vat_number}' => $invoice->vat_number, 
      '{invoice_firstname}' => $invoice->firstname, 
      '{invoice_lastname}' => $invoice->lastname, 
      '{invoice_address2}' => $invoice->address2, 
      '{invoice_address1}' => $invoice->address1, 
      '{invoice_city}' => $invoice->city, 
      '{invoice_postal_code}' => $invoice->postcode, 
      '{invoice_country}' => $invoice->country, 
      '{invoice_state}' => $invoice->id_state ? $invoice_state->name : '', 
      '{invoice_phone}' => ($invoice->phone) ? $invoice->phone : $invoice->phone_mobile, 
      '{invoice_other}' => $invoice->other, 
      '{order_name}' => $order->getUniqReference(), 
      '{date}' => Tools::displayDate(date('Y-m-d H:i:s'), null, 1), 
      '{carrier}' => ($virtual_product || !isset($carrier->name)) ? Tools::displayError('No carrier') : $carrier->name, 
      '{payment}' => Tools::substr($order->payment, 0, 32), 
      '{products}' => $product_list_html, 
      '{products_txt}' => $product_list_txt, 
      '{discounts}' => $cart_rules_list_html, 
      '{discounts_txt}' => $cart_rules_list_txt, 
      '{total_paid}' => Tools::displayPrice($order->total_paid, $this->context->currency, false), 
      '{total_products}' => Tools::displayPrice(Product::getTaxCalculationMethod() == PS_TAX_EXC ? $order->total_products : $order->total_products_wt, $this->context->currency, false), 
      '{total_discounts}' => Tools::displayPrice($order->total_discounts, $this->context->currency, false), 
      '{total_shipping}' => Tools::displayPrice($order->total_shipping, $this->context->currency, false), 
      '{total_wrapping}' => Tools::displayPrice($order->total_wrapping, $this->context->currency, false), 
      '{message}' => $customer_message, 
      '{total_tax_paid}' => Tools::displayPrice(($order->total_products_wt - $order->total_products) + ($order->total_shipping_tax_incl - $order->total_shipping_tax_excl), $this->context->currency, false)); 

In order_conf.html:

... 
Wiadomość: {message} 
.... 
+0

Können Sie etwas Code zeigen zu bauen? Der Code, in dem Sie Ihre Smarty-Variable deklarieren, und die Vorlage, die diese Variable verwendet. –

+0

Ich kann in Ihrem '$ data' Array die' {message} 'Deklaration nicht sehen. –

+0

Oh Entschuldigung, ich kopierte sauberen Code mit anderen Shop ... Hinzugefügt – user3041764

Antwort

0

ou sollte Verwenden Sie die Funktion unterhalb, wenn Sie sie nicht bereits verwenden. Beispiel:

$id_lang = (int)$this->context->language->id; 
$heading = Mail::l('Message Received', (int)$id_lang); 
Mail::Send(
       (int)$id_lang, 
       'order_conf', 
       $heading, 
       $data, 
       $this->context->customer->email, 
       null, 
       null, 
       $this->context->shop->name, 
       null, 
       null, 
       _PS_MODULE_DIR_.'mymodule/mail/', 
       false, 
       1 
       ); 

Mail-Vorlage befinden sollten in 'mymodule/mail/en/order_conf.html' Sprachen Verzeichnisse entsprechend Ihren Sprachen wie/en,/fr,/nl

0

Mit Prestashop 1.7 ich mit

'{message}' => 'hello', 
getestet haben

Und es zeigt in E-Mail: hallo

Sind Sie sicher, dass Sie etwas in $customer_message haben?

Es kann mit einigen Variablen komplizierter sein. Werfen Sie einen Blick auf $product_list_html

Sie werden sehen, es ist ein Array und es gibt:

$product_list_html = $this->getEmailTemplateContent('order_conf_product_list.tpl', Mail::TYPE_HTML, $product_var_tpl_list); 

Es hat eine andere Vorlage verwendet die Liste der Produkt (order_conf_product_list.tpl)