- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/subscribe.php
- Класс: BitrixCatalogSubscribeTable
- Вызов: SubscribeTable::onSaleOrderSaved
static function onSaleOrderSaved(Event $event)
{
if(!$event->getParameter('IS_NEW'))
return;
$order = $event->getParameter('ENTITY');
if($order instanceof SaleOrder)
{
$userId = $order->getUserId();
$siteId = $order->getSiteId();
$basketObject = $order->getBasket();
$listProductId = array();
/** @var BitrixSaleBasketItem $item */
foreach ($basketObject->getBasketItems() as $item)
$listProductId[] = $item->getProductId();
if(!$userId || empty($listProductId))
return;
$user = CUser::getList('ID', 'ASC',
array('ID' => $userId) , array('FIELDS' => array('EMAIL'))
)->fetch();
if($user['EMAIL'])
{
$listSubscribe = static::getList(array(
'select' => array('ID'),
'filter' => array(
'=USER_CONTACT' => $user['EMAIL'],
'=SITE_ID' => $siteId,
'ITEM_ID' => $listProductId,
),
))->fetchAll();
$listSubscribeId = array();
foreach($listSubscribe as $subscribe)
$listSubscribeId[] = $subscribe['ID'];
static::unSubscribe($listSubscribeId);
}
}
}