Отправка писем при смене статуса заказа

#
Отправка писем при смене статуса заказа
Добрый день!
Сейчас уведомления покупателю при ходят только при отметке о том что заказ оплачен или отменен, как сделать, что бы уведомления так же еще приходили при смене статуса - там где обработка, отправлен и доставлен?
Делаю сайты на HostCMS! Подробнее по почте anton.yurzanov@gmail.com
#
Re: Отправка писем при смене статуса заказа
Решение есть в документации, пункт "Отправка письма пользователю и администратору при смене статуса заказа"
https://www.hostcms.ru/documentation/modules/core/events/
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Отправка писем при смене статуса заказа
class Shop_Order_Status_Observer
{
    static public function onBeforeChangedOrder($object, $args)
    {
        $mode = $args[0];

        if (in_array($mode, array('changeStatusPaid', 'edit', 'apply')))
        {
            // Изменился статус заказа
            if ($object->getShopOrderBeforeAction()->shop_order_status_id != $object->getShopOrder()->shop_order_status_id)
            {
                $date_str = Core_Date::sql2datetime($object->getShopOrder()->datetime);

                // Тема письма администратору
                $object->adminMailSubject(
                    Core::_('Shop_Order.confirm_admin_subject', $object->getShopOrder()->invoice, $object->getShopOrder()->Shop->name, $date_str)
                );

                // Тема письма пользователю
                $object->siteuserMailSubject(
                    Core::_('Shop_Order.confirm_user_subject', $object->getShopOrder()->invoice, $object->getShopOrder()->Shop->name, $date_str)
                );

                // Установка XSL-шаблонов в соответствии с настройками в узле структуры
                $object->setXSLs();

                // Отправка писем клиенту и пользователю
                $object->send();
            }
        }
    }
}

// Add observer
Core_Event::attach('Shop_Payment_System_Handler.onBeforeChangedOrder', array('Shop_Order_Status_Observer', 'onBeforeChangedOrder'));


пожалуйста можете подсказать поточнее, куда это нужно установить? в ТДС корзины?
Делаю сайты на HostCMS! Подробнее по почте anton.yurzanov@gmail.com
#
Re: Отправка писем при смене статуса заказа
В конец файла bootstrap.php  в корне сайта.
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Отправка писем при смене статуса заказа
Я прошу прощения за ап старой темы, но для меня она актуальна.

Версия системы 6.8.8. Хотелось бы сделать отправку письма покупателю при смене статуса на "Доставлено". ID как я понял 3 у этого статуса.

Подскажите пожалуйста куда вставлять части кода? В bootstrap.php я так понимаю нужно только часть:
// Add observer
Core_Event::attach('Shop_Payment_System_Handler.onBeforeChangedOrder', array('Shop_Order_Status_Observer', 'onBeforeChangedOrder'));


А остальное куда? Еще если не сложно, напишите вариант с проверкой соответствия статусу и письмо нужно отправлять только покупателю, админу не нужно... Заранее спасибо!!
#
Re: Отправка писем при смене статуса заказа
Может кому-то пригодится:

<?php

class Shop_Order_Status_Observer
{
    static public function onBeforeChangedOrder($object, $args)
    {
        $mode = $args[0];

        $oShop = $object->getShopOrder()->Shop;

        if (in_array($mode, array('changeStatusPaid', 'edit', 'apply')))
        {
            // Изменился статус заказа
            if ($object->getShopOrderBeforeAction()->shop_order_status_id != $object->getShopOrder()->shop_order_status_id && $object->getShopOrder()->shop_order_status_id == 123)
            {
                $date_str = Core_Date::sql2datetime($object->getShopOrder()->datetime);


                // Тема письма пользователю
                $object->siteuserMailSubject(
                   sprintf($oShop->confirm_user_subject, $object->getShopOrder()->invoice, $oShop->name, $date_str)
                );

                                $oCore_Mail_Siteuser = $object->getSiteuserEmail();



                // Установка XSL-шаблонов в соответствии с настройками в узле структуры
                $object->setXSLs();

                $object->sendSiteuserEmail($oCore_Mail_Siteuser);
            }
        }
    }
}

// Add observer
Core_Event::attach('Shop_Payment_System_Handler.onBeforeChangedOrder', array('Shop_Order_Status_Observer', 'onBeforeChangedOrder'));


Вместо 123  указать id нужного статуса.
Авторизация