require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule('iblock');
$arResult = array('status' => false); // переменная для результата
$err = 0; // счётчик ошибок
$PROP = array(); // данные для полей элемента инфоблока
// если передан ID элемента, то заявка отправлена со страницы карточки товара
if (isset($_POST['item_id']) && $_POST['item_id'] > 0){
$PROP['ITEM_ID'] = (int)$_POST['item_id'];
}
// имя пользователя
if (isset($_POST['name']) && !empty($_POST['name'])){
$PROP['PERSON_NAME'] = htmlspecialchars( $_POST['name'], ENT_QUOTES );
} else {
$err++;
$arResult['msg'][] = array(
'text' =>'Вы не указали Ваше имя.',
'type' => false
);
}
// указываем тему отклика, в зависимости от передаваемого типа
if (isset($_POST['action']) && $_POST['action'] == 'call'){
$TITLE = 'Новая заявка звонка с сайта: '.$PROP['PERSON_NAME'].' от '.date("d.m.Y H:i:s");
} else {
$TITLE = 'Новая заявка: '.$PROP['PERSON_NAME'].' от '.date("d.m.Y H:i:s");
}
// номер телефона
if (isset($_POST['phone']) && !empty($_POST['phone'])){
$PROP['PHONE'] = htmlspecialchars( $_POST['phone'], ENT_QUOTES );
} else {
$err++;
$arResult['msg'][] = array(
'text' =>'Вы не указали номер телефона.',
'type' => false
);
}
// почтовый адрес
if (isset($_POST['email']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$PROP['EMAIL'] = htmlspecialchars( $_POST['email'], ENT_QUOTES );
}
// сообщение от пользователя
if (isset($_POST['message']) && !empty($_POST['message'])){
$PREVIEW_TEXT = htmlspecialchars( $_POST['message'], ENT_QUOTES );
}
// страница, с которой был отправлен запрос
$PROP['HTTP_REFERER'] = $_SERVER['HTTP_REFERER'];
if ($err == 0){
$el = new CIBlockElement;
// массив полей для нового элемента
$arElem = Array(
"IBLOCK_SECTION_ID" => false,
"IBLOCK_ID" => 9,
"PROPERTY_VALUES"=> $PROP,
"NAME" => $TITLE,
"ACTIVE" => "Y",
"PREVIEW_TEXT" => $PREVIEW_TEXT
);
if ($PRODUCT_ID = $el->Add($arElem)){
// устанавливаем статус
$arResult['status'] = true;
$arResult['msg'][] = array(
'text' =>'Ваши данные отправлены успешно!
Ожидайте звонка наших операторов.',
'type' => true
);
// подготавливаем поля для почтового события
$arEventFields = array(
'ITEM_ID' => $PROP['ITEM_ID'],
'PERSON_NAME' => $PROP['PERSON_NAME'],
'PERSON_MAIL' => $PROP['EMAIL'],
'PERSON_PHONE' => $PROP['PHONE'],
'HTTP_REFERER' => $PROP['HTTP_REFERER'],
'RESPONSE_THEME' => $TITLE
);
// отправка почты
CEvent::Send("NEW_USER_RESPONSE", "s1", $arEventFields);
} else {
$arResult['msg'][] = array(
'text' =>'Не удалось сохранить запись. ' . $el->LAST_ERROR,
'type' => false
);
}
}
echo json_encode($arResult);