09 Октябрь, 2017

Joomla 3.5 и Virtuemart - отправка письма покупателю сразу после покупки

По какой-то причине разработчики Virtuemart решили что письмо покупателю сразу после сделанного заказа отправлять не нужно. Письма шлются только после смены статуса заказа администратором магазина в админке. Да, это немного странное решение и как я понял не настраиваемое из коробки.

Так как решать вопрос надо было быстро то не обошлось без вмешательства в код Virtuemart:

administrator/components/com_virtuemart/models/orders.php

                // Send the email
                //$res = shopFunctionsF::renderMail('invoice', $order['details']['BT']->email, $vars, null,$vars['doVendor'],$this->useDefaultEmailOrderStatus);
                $sendMail = false;
                if(!$this->useDefaultEmailOrderStatus and isset($vars['newOrderData']['customer_notified']) and $vars['newOrderData']['customer_notified']==1){
                        $sendMail = true;
                } else {
                        $orderstatusForShopperEmail = VmConfig::get('email_os_s',array('U','C','S','R','X'));
                        if(!is_array($orderstatusForShopperEmail)) $orderstatusForShopperEmail = array($orderstatusForShopperEmail);

                        //TODO: Фикс для того чтобы письма отправлялись покупателю сразу после заказа
                        $orderstatusForShopperEmail[] = 'P';

                        if ( in_array((string) $vars['orderDetails']['details']['BT']->order_status,$orderstatusForShopperEmail) ){
                                $sendMail = true;
                                vmdebug('renderMail by default orderstati');
                        }
                }

Решение в виде одной строки сразу после коммента. Это мы добавляем статус "Pending" в список статусов при которых письма отправляются.

Вот и все)

Новый комментарий

comments powered by Disqus