Добрый день! Есть такая задача: необходимо сделать форму, которую заполняет пользователь, подписываясь в дальнейшем на СМС-информирование. В ней достаточно много полей, описывать все не буду. Собрал свою форму через Сервисы - Настройка Веб-форм. Создал отдельный почтовый шаблон и почтовое событие. При заполнении формы и отправки, все на Email приходит, гуд.
Вопрос вот в чем, необходимо помимо отправки формы на почту, также добавлять информацию из нее в созданный заранее инфоблок,
Пробовал перехватывать значения полей веб формы следующим кодом в init.php:
По какой то причине, все текстовые поля приходят со значением null (сообщение в формате json):
Подскажите, в чем может быть проблема? Что я делаю не так? Может быть, есть какой то другой способ получить значения полей и записать их в ИБ? Заранее, огромное спасибо всем откликнувшимся.
Вопрос вот в чем, необходимо помимо отправки формы на почту, также добавлять информацию из нее в созданный заранее инфоблок,
Пробовал перехватывать значения полей веб формы следующим кодом в init.php:
| Код |
|---|
<?
AddEventHandler('main', 'OnBeforeEventSend', Array("smsForm", "getElements"));
class smsForm
{
function addSmsToIBlock(&$arFields, &$arFieldsMail){
$family = $arFields['new_field_91092'];
$name = $arFields['new_field_58257'];
$last_name = $arFields['new_field_32723'];
$birthday = $arFields['new_field_5123'];
$passport_info = $arFields['new_field_48536']." ".$arFields['new_field_57244'];
$passport_date = $arFields['new_field_92158'];
$city = $arFields['new_field_64818'];
$street = $arFields['new_field_9786'];
$home = $arFields['new_field_87773']." ".$arFields['new_field_79987'];
$phone = $arFields['new_field_83454'];
$account = $arFields['new_field_24649'];
$accept_date = $arFields['new_field_32620'];
$result_id = $arFields['RS_RESULT_ID'];
$subject = "Тестовое письмо через PHP MAIL";
$message = json_encode($arFields);
$to = "test@yandex.ru";
$headers = 'From: test@yandex.ru' . "\r\n" .
'Reply-To: test@yandex.ru' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
if(mail($to, $subject, $message, $headers)) echo 'Проверяем почту';
else echo 'Что-то пошло не так';
}
}
?> |
По какой то причине, все текстовые поля приходят со значением null (сообщение в формате json):
| Код |
|---|
{"RS_FORM_ID":"1",
"RS_FORM_NAME":null,
"RS_FORM_VARNAME":"SMS_SUBSCRIBE_FORM",
"RS_FORM_SID":"SMS_SUBSCRIBE_FORM",
"RS_RESULT_ID":"45",
"RS_DATE_CREATE":"15.09.2016 15:59:14",
"RS_USER_ID":"1","RS_USER_EMAIL":"web@indigo.pro",
"RS_USER_NAME":" 1316","RS_USER_AUTH":" ",
"RS_STAT_GUEST_ID":"0",
"RS_STAT_SESSION_ID":"0",
"new_field_91092":null,
"new_field_91092_RAW":null,
"new_field_58257":null,
"new_field_58257_RAW":null,
"new_field_32723":null,
"new_field_32723_RAW":null,
"new_field_5123":"26.09.1993",
"new_field_5123_RAW":"26.09.1993",
"new_field_48536":"0000",
"new_field_48536_RAW":"0000",
"new_field_57244":"063466",
"new_field_57244_RAW":"063466",
"new_field_92158":"10.10.2008",
"new_field_92158_RAW":"10.10.2008",
"new_field_64818":null,
"new_field_64818_RAW":null,
"new_field_9786":null,
"new_field_9786_RAW":null,
"new_field_87773":"10",
"new_field_87773_RAW":"10",
"new_field_79987":"21",
"new_field_79987_RAW":"21",
"new_field_83454":"+79994445577",
"new_field_83454_RAW":"+79994445577",
"new_field_24649":"0435.431",
"new_field_24649_RAW":"0435.431",
"new_field_95509":"[14]",
"new_field_95509_RAW":"14",
"new_field_52163":" ",
"new_field_52163_RAW":" ",
"new_field_32620":"15.09.2016",
"new_field_32620_RAW":"15.09.2016"} |
Подскажите, в чем может быть проблема? Что я делаю не так? Может быть, есть какой то другой способ получить значения полей и записать их в ИБ? Заранее, огромное спасибо всем откликнувшимся.