Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

подписка на новости при регистрации

00 голосов
1
при регистрации пользователя, есть птичка (подписаться на новости)
я думаю два варианта

1) создать пользовательское свойство "подписка" тип да/нет
в личном кабинете добавить компонент "редактирование подписки"
создать событие, которое проверяет после регистрации свойство, если установлено, подписаться (не знаю как реализовать) (не нашел такое событие)
а потом в личном кабинете можно одписаться

2) добавить на страничке регистрации, компонент подписка (для всех пользователей, в том числе и не автоматизирование) 
влить его в регистрацию, поле ввода емейла скрыть и подставить емейл с регистрации, но как при нажатии кнопки регистрация, сразу отправлять кнопку подписки?

помогите разобраться, киньте ссылку на инструкцию... 
нашел статью "подписка в один клик", но не мне не подходит
спросил 07 Июнь, 13 от VitaliyKR (360 баллов)

1 Ответ

00 голосов
Вот код с работающего сайта (Нужно создать поле UF_SUBSCRIBE, деталей сейчас не помню):

Код
// Подписка на рассылку при регистрации

AddEventHandler("main", "OnAfterUserAdd", "OnAfterUserAddHandler");

function OnAfterUserAddHandler(&$arFields)
{

   $errors = Array();

   if($arFields["ID"]>0 && $arFields["UF_SUBSCRIBE"])
   {

      if(CModule::IncludeModule("subscribe")) {
      
         $USER_ID = $arFields["ID"];
         $EMAIL = $arFields["EMAIL"];
      
         $arFilter = array(
            "ACTIVE" => "Y",
            "LID" => "s1",
            "VISIBLE"=>"Y",
         );
      
         $rsRubrics = CRubric::GetList(array(), $arFilter);
         $arRubrics = array();
         while($arRubric = $rsRubrics->GetNext()) $arRubrics[] = $arRubric["ID"];
      
         $obSubscription = new CSubscription;
      
         $rsSubscription = $obSubscription->GetList(array(), array("USER_ID" => $USER_ID));
         $arSubscription = $rsSubscription->Fetch();
   
         if(is_array($arSubscription))
         {
            $rs = $obSubscription->Update(
               $arSubscription["ID"],
               array(
                  "FORMAT" => "html",
                  "RUB_ID" => $arRubrics,
               ),
               false
            );
         }
         else
         {
            $ID = $obSubscription->Add(array(
               "USER_ID" => $USER_ID,
               "ACTIVE" => "Y",
               "EMAIL" => $EMAIL,
               "FORMAT" => "html",
               "CONFIRMED" => "Y",
               "SEND_CONFIRM" => "N",
               "RUB_ID" => $arRubrics,
            ));
         }
      
      }
      
   }
   

}
 
ответил 07 Июнь, 13 от BRENN (1,080 баллов)

Похожие вопросы

0 голосов
3 ответов
спросил 18 Фев, 14 от fdsc (180 баллов)
0 голосов
5 ответов
0 голосов
2 ответов
спросил 08 Авг, 13 от Eliga (360 баллов)
0 голосов
6 ответов
спросил 22 Июль, 13 от JIauJIa (280 баллов)