Jak přidat přílohu k emailu pro potvrzení objednávky

V emailu pro potvrzení objednávky máme možnost zákazníkovi přikládat v příloze pdf fakturu. Co však v případě, že chceme zasílat nějaké další přílohy, například obchodní podmínky? To již nastavení Prestashopu nedovoluje a musíme najít vlastní způsob, jak toho docílit. Bohužel samotný kód s tímto příliš nepočítá a bude tak nutné zasáhnout do samotného jádra eshopu.

Budeme muset upravit soubor: classes/PaymentModule.php

Kde najděte tento kód:

// Join PDF invoice
if ((int)Configuration::get('PS_INVOICE') && $order_status->invoice && $order->invoice_number) {
$order_invoice_list = $order->getInvoicesCollection();
Hook::exec('actionPDFInvoiceRender', array('order_invoice_list' => $order_invoice_list));
$pdf = new PDF($order_invoice_list, PDF::TEMPLATE_INVOICE, $this->context->smarty);
$file_attachement['content'] = $pdf->render(false);
$file_attachement['name'] = Configuration::get('PS_INVOICE_PREFIX', (int)$order->id_lang, null,
$order->id_shop).sprintf('%06d', $order->invoice_number).'.pdf';
$file_attachement['mime'] = 'application/pdf';
} else {
$file_attachement = null;
}

Zde je vidět, jakým způsobem se do přílohy emailu generuje samotná faktura. Potřebujeme tedy případně přidat nějaký náš vlastní dokument. V tomto případě se jedná o soubor pdf, umístěný v kořenu našeho eshopu s názvem „Obchodni_podminky.pdf“. Název dokumentu zobrazovaný v emailu je pak definován jako „Obchodní podmínky.pdf“.

Za tento kód vložte tyto řádky:

// Custom attachment
$custom_attachement['content'] = file_get_contents(_PS_ROOT_DIR_.'/Obchodni_podminky.pdf');
$custom_attachement['name'] = 'Obchodní podmínky.pdf';
$custom_attachement['mime'] = 'application/pdf';
if(is_null($file_attachement)){
$file_attachement = $custom_attachement;
}else{
$temp = $file_attachement;
$file_attachement = array();
$file_attachement[] = $temp;
$file_attachement[] = $custom_attachement;
}
//end

Kód funguje tak, že v případě, že do emailu není žádná příloha vkládána, přikládá se ta naše. V opačném případě se původní příloha vloží do pole, do kterého lze přiložit neomezené množství dalších.

Zásahem do jádra eshopu však po upgradu o úpravu přijdeme, je tedy možné tuto úpravu přenést do složky override/classes. Ideální řešení by pak bylo využít hook, který však pro tento případ vkládání přílohy není implementován.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *