Az “Order Confirmation” e-mail tárgyának magyarítása elsősorban Prestashop 1.5.x-ben.
Az Order Confirmation e-mail tárgyat a classes/PaymentModule.php
-ban találjuk meg eltárolva:
Prestashop 1.3.x-ben a 376. sor,
Prestashop 1.4.x-ben a 441. sor,
és a Prestashop 1.5.x-ben a 640. sor körül.
Amennyiben csak magyar a shopunk, akkor egyszerűen át kell magyarítanunk az angol szöveget az Order Confirmation-nél:
1.4.x:
Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Order confirmation', $order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment);
erre:
Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Rendelés Visszaigazolás', $order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment);
1.5.x:
if (Validate::isEmail($this->context->customer->email))
Mail::Send(
(int)$order->id_lang,
'order_conf',
Mail::l('Order Confirmation', (int)$order->id_lang),
$data,
$this->context->customer->email,
$this->context->customer->firstname.' '.$this->context->customer->lastname,
null,
null,
$file_attachement,
null, _PS_MAIL_DIR_, false, (int)$order->id_shop
);
Itt pedig szintén átírni a Mail sort:
Mail::l('Rendelés Visszaigazolás', (int)$order->id_lang),
Ha shopunk többnyelvű, akkor célszerű feltételhez kötni ezt a részt. Példámban kétnyelvű a shop – angol és magyar:
if ($order->id_lang == 1) {
if (Validate::isEmail($this->context->customer->email))
Mail::Send(
(int)$order->id_lang,
'order_conf',
Mail::l('New Order', (int)$order->id_lang),
$data,
$this->context->customer->email,
$this->context->customer->firstname.' '.$this->context->customer->lastname,
null,
null,
$file_attachement,
null, _PS_MAIL_DIR_, false, (int)$order->id_shop
);
} else {
if (Validate::isEmail($this->context->customer->email))
Mail::Send(
(int)$order->id_lang,
'order_conf',
Mail::l('Új Megrendelés', (int)$order->id_lang),
$data,
$this->context->customer->email,
$this->context->customer->firstname.' '.$this->context->customer->lastname,
null,
null,
$file_attachement,
null, _PS_MAIL_DIR_, false, (int)$order->id_shop
);
}
Az első if-ben megvizsgálom, hogy a rendelést milyen nyelven adták le:
if ($order->id_lang == 1) {
azaz, ha a nyelv ID-je egyenlő 1-el (ami az angol) akkor lefut az angol Mail blokk.
ez pedig:
} else {
azt jelenti, hogy ha az első feltétel nem bizonyul igaznak (tehát nem egyenlő az ID 1-el) akkor az ez utáni (a magyar Mail blokk) fog lefutni.
Nem szükséges ide is feltételt állítani id 7-el (7 nálam a magyar nyelv ID-je) mert csak két nyelv van, két változat lehetséges és nem több. Így elég megvizsgálni hogy 1-e az ID, vagy sem.
Több, mint két nyelvű shopok esetén érdemes else-if-el kibővíteni a fentieket, esetleg ha még több akkor egy switch szerkezetet beépíteni.
Ha kérdésed van ne habozz velem felvenni a kapcsolatot! 🙂
Eladásra fel! 🙂