Your IP : 52.15.128.81
<?
function orderInterviewEmail(){
/**
* Функция рассылки писем по заказам совершенным три дня назад
*
* Для отладки проще создать эту функцию под другим именем на отдельной тестовой странице и вызвать.
*/
if(CModule::IncludeModule("sale")){
global $DB;
$startDate = '-3';
$endDate = '-2'; //fixme: переставить на -2 для рабочего режима, установить на 0 для тестирования
$timeStartDate = strtotime($startDate.' days');
$timeEndDate = strtotime($endDate.' days');
$data_n = date(
$DB->DateFormatToPHP(CSite::GetDateFormat("FULL ")),
mktime(0, 0, 0, date("n", $timeStartDate), date("j", $timeStartDate), date("Y"), $timeStartDate)
); // начальная дата -3дня
$data_k = date(
$DB->DateFormatToPHP(CSite::GetDateFormat("FULL")),
mktime(23, 59, 59, date("n", $timeEndDate), date("j", $timeEndDate), date("Y"), $timeEndDate)
); // конечная дата -2дня
$arFilter = Array(">=DATE_INSERT" => $data_n, "<=DATE_INSERT" => $data_k);
$arSelect = Array("ID", "USER_ID");
$rsSales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter, false, array("nTopCount" => 100), $arSelect);
while($arSales = $rsSales->Fetch()){
// COption::SetOptionString("sale", "interview_email_" . $arSales['ID'], 'N');
//fixme: Снять комментарий при тестировании. Письма будут отправляться, даже если были отправлены ранее
// TODO Переделать это через свойство заказа а не через COption
if(COption::GetOptionString("sale", "interview_email_".$arSales['ID']) != 'Y'){
$EMAIL = $NAME = '';
$arProperties = CSaleOrderPropsValue::GetOrderProps($arSales['ID']);
while($arProperty = $arProperties->GetNext()){
if($arProperty['CODE'] == 'CONTACT_PERSON'){
$NAME = $arProperty['VALUE'];
}elseif($arProperty['CODE'] == 'EMAIL'){
$EMAIL = $arProperty['VALUE'];
}
}
$searchUser = CUser::GetByID($arSales['USER_ID']);
$searchUser = $searchUser->Fetch();
$USER_HAS = '';
if(isset($searchUser["CHECKWORD"]) && $searchUser["CHECKWORD"]
&& $searchUser["EMAIL"] == $EMAIL /** !! отдаем код только если EMAIL в учетке и заказе совпадают */
){
$USER_HAS = '&hash='. $searchUser["CHECKWORD"];
}
$arEventFields = array(
"ORDER_ID" => $arSales['ID'],
"EMAIL_TO" => $EMAIL,
"NAME" => $NAME,
"USER_HAS" => $USER_HAS
);
CEvent::Send("WEBPROFY_ORDER_INTERVIEW", 's1', $arEventFields);
// CEvent::Send("DEBUG", 's1', ['DEBUG'=> $debug]);
COption::SetOptionString("sale", "interview_email_".$arSales['ID'], 'Y');
}
}
}
return "orderInterviewEmail();";
}