Сегодня на сайтах повсеместно используются различные механизмы подписки пользователей на почтовые рассылки. Рассмотрим пример кода, которым можно воспользоваться, если вы собираетесь делать подписку пользователя на рассылку в битрикс-е. Использование подобного кода удобно в случаях, когда к примеру, вам необходимо организовать подписку пользователей при регистрации на сайте.
<?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 — Почтовый ящик пользователя;