Сегодня на сайтах повсеместно используются различные механизмы подписки пользователей на почтовые рассылки. Рассмотрим пример кода, которым можно воспользоваться, если вы собираетесь делать подписку пользователя на рассылку в битрикс-е. Использование подобного кода удобно в случаях, когда к примеру, вам необходимо организовать подписку пользователей при регистрации на сайте.
<?php class subscr { const SUBSC_ID = 1; // id рассылки // подписка пользователя public static function subscribe($userID,$email){ CModule::IncludeModule("subscribe"); $subscr = new CSubscription; $subscription = CSubscription::GetByEmail($email); // поиск подписчика по mail if($arSub = $subscription->Fetch()){ // если майл есть в подписчиках, то активируем подписку $res = $subscr->Update( $arSub['ID'], array( "ACTIVE"=>"Y", "USER_ID"=>$userID, "RUB_ID"=>array(self::SUBSC_ID)) ); } else { // если нет подписки, то добавляем его $arFieldFilter = array( "RUB_ID" => array(self::SUBSC_ID),// id подписки "USER_ID" => $userID, "FORMAT" => "html", "EMAIL" => $email, "ACTIVE" => "Y", "SEND_CONFIRM" => 'N' ); $ID = $subscr->Add($arFieldFilter); // поиск подписчика по mail, что бы получить код потверждения $subscription = CSubscription::GetByEmail($email); if($arSub = $subscription->Fetch()){ $arResult['DATA_SUB_USSER'] = $arSub; } // подтверждаем подписку $res = $subscr->Update( $ID, array( "CONFIRMED"=>"Y", "CONFIRM_CODE"=>$arResult['DATA_SUB_USSER']["CONFIRM_CODE"]) ); unset($arResult); } } } ?>
Обращаемся к методу таким образом
subscr::subscribe($userID,$email);
$userID — ID зарегистрированного пользователя;
$email — Почтовый ящик пользователя;