Jak zakázat emaily a faktury za objednávky z VirtueMartu
- Last revised:
- Středa, 24 Květen 2017
Answer
Vzhledem k tomu, že VM Invoice vytváří e-maily za objednávky z internetového obchodu VirtueMart, můžete toto výchozí nastavení ve VirtueMartu zakázat.
Bohužel, jediný způsob jak to provést, je úprava zdrojového kódu VM.
Pokud máte VirtueMArt 1.x.x, zkuste toto:
http://www.chillcreations.com/blog/22-joomla/302-no-virtuemart-order-confirmation-e-mail.html
Pokud máte VirtueMart 2.0.22 nebo 3.x a novější PDF faktury
Aby nedocházelo k tomu, že zákazník obdrží faktury také z VM2, je nutné nejprve vytvořit fiktivní stav objednávky ve VirtueMartu -> Order Statuses nazvat ho např. "No Invoice", a přiřaďte jej do "Default Order Status to create an invoice" ve VirtueMartu -> Configuration -> Checkout settings. Tímto způsobem nebude faktura vytvořena.
Pokud nechcete, aby zákazníkům přišel jakýkoli e-mail z VirtueMartu, nastavte stav, který jste vytvořili v předchozím kroku "No Invoice", také do "Default Order Status to send email to shopper" ve VirtueMartu -> Configuration -> Checkout settings.
Pokud máte VirtueMart 2.x.x nebo starší verzi než je 2.0.22:
- otevřte soubor JOOMLA_ROOT/components/com_virtuemart/helpers/shopfunctionsf.php
najděte řádek 243 (může se lišit podle verze VM)
důležité je, nahradit řádek$user= self::sendVmMail($view, $recipient,$noVendorMail);
s
//edied: ARTIO: disable initial e-mail to customer. send only to vendor.
if ($viewName=='invoice' AND in_array($vars['orderDetails']['details']['BT']->order_status, array('P','U')))
$user = null;
else
$user= self::sendVmMail($view, $recipient,$noVendorMail); - otevřte soubor JOOMLA_ROOT /administrator/components/com_virtuemart/models/orders.php
najděte řádek 1290 (může se lišit podle verze VM)
a nahraďte// Send the email
if (shopFunctionsF::renderMail('invoice', $order['details']['BT']->email, $vars, null,$vars['doVendor'])) {
...
s// Send the email
$res = shopFunctionsF::renderMail('invoice', $order['details']['BT']->email, $vars, null,$vars['doVendor']);
if ($res===null) //edited: ARTIO: when sent to customer disabled, dont display message.
return true;
if ($res) {
…
Tato volba zakáže původní emaily "pending order". Nicméně, zákazník obdrží e-maily, pokud budete kontrolovat možnost "notify customer", když dojde ke změně stavu objednávky. Pokud chcete zakázat e-maily i pro jiné stavy, nekontrolujte volbu „notify customer“ nebo editujte podmínku v bodě 1 jako je:
… array('P','U' /* other statuses: */, 'P','S') ...
Jak povolit zasílání faktur z VM Invoice:
nastavte "Automatic" režim v globálním nastavení --> General configuration a také povolte "VM Invoice Autorun" plugin nebo nastavte cron (postup je pospán v dokumentaci v bodě 4.1).