Наверх
 

Навигация
Опрос
Какие виды уроков Вы хотите видеть на сайте?
Битрикс
DLE
CSS
Joomla
Wordpress
Все для хостинга
Все для фотошопа
Другое

База уроков » » » » Отправка письма на почту через веб-форму для Битрикса

Отправка письма на почту через веб-форму для Битрикса

16 янв 2014 | Комментариев: 0 | Просмотров: 11275
Этим уроком я расскажу как сделать, чтоб на Битриксе работала отправка письма на почту через веб-форму. Сразу отвечу на резонный вопрос о том что ведь есть в Битриксе компонент для фидбеков (bitrix:main.feedback) и он прекрасно работает! Но в данном случае мне понадобилась отправка писем на разные почтовые ящики в зависимости от темы выбранной в веб-форме. Благодаря встроенным функциям в Битриксе сделать это не так уж и сложно.
 
1. Веб-форма
Создаем веб-форму
Для этого идем в Сервисы -> Веб-формы -> Настройка форм
 
Затем создаем Новую форму

В свойствах ставим галку напротив нужного нам сайта и в настройках CAPTCHA

 

В свойствах элементов (полей) прописываем их символьные идентификаторы.

 

Все, веб-форма готова. Также неплохо было бы проверить символьные идентификаторы вопросов. Сделать это можно щелкнув на число вопрсов в колонке Вопросы списка веб-форм.

 

2. Почтовый шаблон

 

При добавлении веб-формы автоматически создается для него Тип события

 

Теперь заходим в Настройки -> Настройка продукта -> Почтовые события -> Почтовые шаблоны

 

Там создаем новый шаблон под названием (Название любое) и в его настройках выбираем почтовое событие созданное веб-формой.

 

Все! Теперь осталось как то связать веб-форму и почтовый шаблон. Для этого напишем обработчик событий и поместим его в init.php

 

3.Редактируем init.php

 

Теперь нужно отредактировать файл который находится по адресу /bitrix/php_interface/init.php

 

Внимание!!! Если у вас нету этого файла вы можете создать, только ни в коем случае не создавайте этот файл через админку битрикса, так как создав файл у Ваш сайт будет открываться белым листом. Создавайте файл или через FTP или на рабочем столе компьютера, а потом залейте его в папку на сайте.

 

Создав файл добавим этот код:

 

<?
		AddEventHandler('form', 'onAfterResultAdd', Array("MyClass","onAfterResultAddHandler"));
		class MyClass
		{
		
		function onAfterResultAddHandler($WEB_FORM_ID, $RESULT_ID){
		
		    if ($WEB_FORM_ID == 1) 
		    {
		    $arAnswer = CFormResult::GetDataByID($RESULT_ID,array("FIO","PHONE","EMAIL","QUESTION"),
		$arResult,$arAnswer2);
		    $name = $arAnswer['FIO']['0']['USER_TEXT'];
		    $phone = $arAnswer['PHONE']['0']['USER_TEXT'];
		    $text = $arAnswer['QUESTION']['0']['USER_TEXT'];
		    $email = $arAnswer['EMAIL']['0']['USER_TEXT'];
		    $arSend = array("FIO" => $name, "CURRENT_ITEM" => $current, "PHONE" => $phone, "EMAIL" => $email, "QUESTION" => $text);
		    CEvent::Send('FORM_FILLING_ASPRO_CALLBACK_s1',SITE_ID,$arSend);
		    }
		
		    }
		}
		?>

 

Теперь давай распишем:

 

1. if ($WEB_FORM_ID == 1) - Здесь Вы должны указать ID веб-формы

2. $arAnswer = CFormResult::GetDataByID($RESULT_ID,array("FIO","PHONE","EMAIL","QUESTION"),$arResult,$arAnswer2); - Здесь Вы указываете символьные идентификаторы полей в созданной в веб-форме.

3. $arSend = array("FIO" => $name, "CURRENT_ITEM" => $current, "PHONE" => $phone, "EMAIL" => $email, "QUESTION" => $text); - Здесь Вы указываете идентификаторы созданные в почтовом шаблоне, которые должны отправить письмо на почту. например:

 

ФИО: #FIO#
		Телефон: #PHONE#
		E-mail: #EMAIL#
		Ссылка: #CURRENT_ITEM#
		Вопрос: #QUESTION#

 

4. CEvent::Send('FORM_FILLING_ASPRO_CALLBACK_s1',SITE_ID,$arSend); - Здесь Вы должны указать идентификатор Тип события шаблона

 

4. Встраивание в шаблон

Теперь остается только добавить компонент веб-формы на любую страницу на сайте

 

Вот и все. Удачи

 

 




Теги: Битрикс, Модификация

Ссылка на новость:

    html-cсылка на публикацию
    BB-cсылка на публикацию
    Прямая ссылка на публикацию

ЕЩЕ НА ЭТУ ТЕМУ:

Выводим контент в зависимости от группы пользователя для Битрикс

Выводим контент в зависимости от группы пользователя для Битрикс

Выводим необходимый контент определенной группе пользователей.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.