Блог Николая Семенцова

Партнер компании 1с-битрикс

Подписка при заполнение формы

Делал недавно сайт с необычной веб-формой, одной из ее особенностей было то что после ее заполнения, при активном чекбоксе "Подписатся на новости" надо подписывать на рассылку определенной рубрики, для этой задачи мне нужно было написать вот такой обработчик события добавления результата веб-формы в файле init.php
 // подключим модули
CModule::IncludeModule("form");
CModule::IncludeModule('subscribe');
 // зарегистрируем обработчик события
AddEventHandler("form", "onAfterResultAdd", "Subsrib");     
    function Subsrib($WEB_FORM_ID, $RESULT_ID)
    {
        //определяю форму  на аглийский и на русский язык
        if($WEB_FORM_ID == '1' || $WEB_FORM_ID == '3') {
             // получу два поля  тип и почту  в типе хренится надо ли подписывать или нет
            $arAnswer = CFormResult::GetDataByID($RESULT_ID, array("type" , "email") );
            foreach($arAnswer['type'] as $val) {
               if($val['ANSWER_ID'] == '1' || $val['ANSWER_ID'] == '38') {
                    $yes = 'Y';                 
               }     
            }
            // если надо подписывать
            if($yes == 'Y') {
                    $EMAIL = $arAnswer["email"]['0']['USER_TEXT'];
                    // получим значение пользователя   
                    global $USER;   
                    if ($USER->IsAuthorized()){
 
                        $USER = $USER->GetID() ;
                    }
                    else {
                       $USER = NULL ;
                    }
                     // зададим рубрику подписки
                    $RUB_ID = array('1');
                    //создадим массив на подписку
                    $arFields = Array(
                        "USER_ID" =>  $USER,
                        "FORMAT" => "html/text",
                        "EMAIL" => $EMAIL,
                        "ACTIVE" => "Y",
                        "RUB_ID" => $RUB_ID,
                        "SEND_CONFIRM" => "N",
                        "CONFIRMED" => 'Y',
                    );
                    // создадим подписчика
                    $subscr = new CSubscription;
                    $idsubrscr = $subscr->Add($arFields, 's1');                        
            }
        }
   }
Оставил комментарии думаю тут  все понятно , удачного использования .

Опубликовано: 5 мая 2012




Помогла заметка? Жмите кнопки ниже


ВКонтакт Facebook Google Plus Одноклассники Twitter Livejournal Liveinternet Mail.Ru





comments powered by Disqus