This is an old revision of the document!
<?php defined('HOSTCMS') || exit('HostCMS: access denied.'); /** * Отслеживание смены статуса * Core_Event::attach('shop_order.onBeforeSave', array('Shop_Order_Changestatus', 'onBeforeSave')); * @author Kuts Artem, KAD Systems (©) 2014 * @date 19-08-2014 */ class Shop_Order_Changestatus { static public function onBeforeSave($object, $operation) { $oOrder = Core_Entity::factory("shop_order", $object->id); // Смена статуса произошла if ($oOrder->shop_order_status_id != $object->shop_order_status_id && !$oOrder->paid) { if ($object->shop_order_status_id == 2 && $object->shop_payment_system_id > 1) { // Отсылаем письмо со ссылкой $oXsl = Core_Entity::factory('Xsl')->getByName(DEFPAY_CASHLESS_PAYLINK_MAIL); $oShopOrder = $object; $oShop = $oShopOrder->Shop; $to = $oShopOrder->email; if (Core_Valid::email($to)) { // Адрес "ОТ КОГО" для пользователя $from = $oShop->getFirstEmail(); $oShop ->addEntity($oShop->Shop_Company) ->addEntity( $oShop->Site->clearEntities()->showXmlAlias() ) ->addEntity( $oShopOrder->clearEntities() ->showXmlCurrency(TRUE) ->showXmlCountry(TRUE) ->showXmlItems(TRUE) ->showXmlDelivery(TRUE) ->showXmlPaymentSystem(TRUE) ->showXmlOrderStatus(TRUE) ->showXmlProperties(TRUE) ->showXmlSiteuser(TRUE) ); $sXml = $oShop->getXml(); //echo "<pre>" . htmlspecialchars($sXml) . "</pre>"; $return = Xsl_Processor::instance() ->xml($sXml) ->xsl($oXsl) ->process(); $sInvoice = $return; $sInvoice = str_replace(">", ">\n", $sInvoice); // Тема письма пользователю $user_subject = "Информация для оплаты заказа"; Core_Mail::instance() ->from($from) ->to($to) ->subject($user_subject) ->message($sInvoice) ->contentType('text/html') ->header('X-HostCMS-Reason', 'OrderConfirm') ->header('Precedence', 'bulk') ->send(); } } } } }