private:koding:hostcms:modules:shop:order:otslezhivanie_smeny_statusa

Отслеживание смены статуса

<?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();
				}
			}
		}
	}
}
private/koding/hostcms/modules/shop/order/otslezhivanie_smeny_statusa.txt · Last modified: 27.06.17 в 15:34 by maximzasorin_gmail.com