/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { @set_time_limit(0); @ignore_user_abort(true); define('CHK_EVENT', true); $agentManager = new \CAgent(); $agentManager->CheckAgents(); define('BX_CRONTAB_SUPPORT', true); define('BX_CRONTAB', true); $eventManager = new \CEvent(); $eventManager->CheckEvents(); }
while ($ar_sales = $db_sales->Fetch()) { $arFilterBasket = array("ORDER_ID" => $ar_sales['ID']); $arBasketItems = array(); $dbB = CSaleBasket::GetList(array("ID" => "ASC"), $arFilterBasket, false, false, array("ID", "PRODUCT_ID", "NAME", "QUANTITY", "PRICE", "CURRENCY", "DETAIL_PAGE_URL", "LID", "CAN_BUY", "SUBSCRIBE", "DELAY", 'ORDER_ID')); // Создадим массив с товарами, которые находятся в заказах, распределенными по пользователям while ($arB = $dbB->Fetch()) { $arOrderedItemsByUser[$arUser['ID']][$arB['PRODUCT_ID']] = $arB['PRODUCT_ID']; } } } // Отфильтруем из отложенных товаров те, которые были отправленны в заказ. Для этого создадим новый массив foreach ($arItemsByUser as $userID => $userItems) { foreach ($userItems as $itemIndex => $arItem) { if (!in_array($arItem['PRODUCT_ID'], $arOrderedItemsByUser[$userID])) { $arItemsByUserFinal[$userID][] = $arItem; } } } // Создадим почтовые события foreach ($arItemsByUserFinal as $userID => $arItems) { $arUser = $arUsers[$userID]; $products = ''; foreach ($arItems as $arItem) { $products .= $arItem['NAME'] . "\r\n"; } $arEventFields = array("NAME" => $arUser['NAME'], "LAST_NAME" => $arUser['LAST_NAME'], "EMAIL_TO" => $arUser['EMAIL'], "PRODUCT_LIST" => $products); CEvent::Send("REMIND_BASKET", 's1', $arEventFields); } // Отправим письма CEvent::CheckEvents();
function EpilogActions() { global $DB; //send email events if (COption::GetOptionString("main", "check_events", "Y") !== "N") { $DB->StartUsingMasterOnly(); CEvent::CheckEvents(); $DB->StopUsingMasterOnly(); } //files cleanup CMain::FileAction(); }
function EpilogActions() { CEvent::CheckEvents(); CMain::FileAction(); }