- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/trigger/manager.php
- Класс: BitrixSenderTriggerManager
- Вызов: Manager::onAfterMailingChainSend
static function onAfterMailingChainSend(Event $event)
{
$data = $event->getParameter(0);
if(!$data || empty($data['MAILING_CHAIN']['ID']))
return;
$childChainDb = MailingChainTable::getList(array(
'select' => array(
'ID',
'MAILING_ID',
'PARENT_ID',
'POSTING_ID',
'STATUS',
'TIME_SHIFT'
),
'filter' => array(
'=MAILING.ACTIVE' => 'Y',
'=IS_TRIGGER' => 'Y',
'=STATUS' => MailingChainTable::STATUS_WAIT,
'=PARENT_ID' => $data['MAILING_CHAIN']['ID']
)
));
while($childChain = $childChainDb->fetch())
{
$isSend = false;
$settings = new Settings();
if($settings->getEndpoint('CODE') == '')
{
// send certainly
$isSend = true;
}
elseif($settings->isEventOccur())
{
// send if event occur
}
else
{
// send if event not occur
}
if(empty($childChain['POSTING_ID']) || $childChain['STATUS'] != MailingChainTable::STATUS_WAIT)
{
$isSend = false;
}
if($isSend)
{
static::send($childChain);
}
}
}