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

При помощи простых действий можно подписывать ваших пользователей на новости, если отмечена соответствующая галочка.

Как автоматически добавлять пользователей в подписку после регистрации в Битриксе

Вам нужно сделать 3 простых шага:
1. Создайте дополнительное пользовательское поле типа “Да\Нет” с кодом UF_SUBSCRIBE
2. в свою форму регистрации добавьте HTML:

< input class="reg-check" name="UF_SUBSCRIBE" type="checkbox" value="Y" >

3. Добавьте обработчик события для новых пользователей:

/*
 * Подписка на рассылку при регистрации
 */
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,
				));
			}

		}

	}

}

Вот и всё. Теперь при регистрации ваши пользователи автоматически будут подписываться на рубрики 🙂

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

2 коментаря

  1. Дмитрий, есть вопрос по работе данного кода, можете написать на почту?
    Буду очень благодарен.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

#SaveUkraine