<?
// отправка писем после 2-3 дня оформления заказа - агент
function MAILSEND3DAY(){
global $USER;
if (!is_object($USER)) $USER = new CUser;
if (CModule::IncludeModule("sale")):
global $DB;
// начальная дата -3дня
$data_n=date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), mktime(0, 0, 0, date("n", strtotime('-3 days')), date("j", strtotime('-3 days')), date("Y"), strtotime('-3 days')));
// конечная дата -2дня
$data_k=date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), mktime(0, 0, 0, date("n", strtotime('-2 days')), date("j", strtotime('-2 days')), date("Y"), strtotime('-2 days')));
$arMails = Array('test@test.ru');
$arFilter = Array(">=DATE_INSERT" => $data_n,"<DATE_INSERT" => $data_k,"!COMMENTS" => 'MAILSEND3DAY');
$arSelect = Array("ID","DATE_INSERT","PRICE","CURRENCY","COMMENTS","USER_ID","USER_LOGIN","USER_EMAIL","USER_NAME","USER_LAST_NAME");
$rsSales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter, false, array("nTopCount"=> 100), $arSelect);
while ($arSales = $rsSales->Fetch())
{
if ((CSaleOrder::CommentsOrder($arSales['ID'], "MAILSEND3DAY"))&&(!in_array($arSales['USER_EMAIL'], $arMails)))
{
// как быстрое решение проверки:
// записали(обновили) комментарий - пометка чтобы исключить при повторной обработке этого заказа
// выполняем почтовое событие - отправка почты
if ($arSales['CURRENCY'] == 'RUB') $arSales['CURRENCY'] = 'руб';
if (($arSales['USER_LAST_NAME'])&&($arSales['USER_NAME'])) {
$USER_NAME = $arSales['USER_LAST_NAME'].' '.$arSales['USER_NAME'];
} else $USER_NAME = 'покупатель';
$arSend = array(
'ID' => $arSales['ID'],
'DATE' => date("d.m.Yг.", strtotime($arSales['DATE_INSERT'])),
'PRICE' => $arSales['PRICE'].' '.$arSales['CURRENCY'],
'USER_ID' => $arSales['USER_ID'],
'USER_LOGIN' => $arSales['USER_LOGIN'],
'USER_EMAIL' => $arSales['USER_EMAIL'],
'USER_NAME' => $USER_NAME,
);
// CEvent::Send('MAILSEND3DAY',SITE_ID,$arSend,'N',30); // SITE_ID - работает только в публичной часте не в админке)
CEvent::Send('MAILSEND3DAY','s1',$arSend,'N',30);
$arMails[]=$arSales['USER_EMAIL'];
}
}
endif;
return "MAILSEND3DAY();";
}
//CAgent::AddAgent("MAILSEND3DAY();", "", "Y", 86400);
?>
|