Для владельцев сайтов на платформе «1С-Битрикс: Управление сайтом» удержание внимания только что зарегистрировавшегося пользователя — важная маркетинговая задача. Один из эффективных инструментов ее решения — автоматическое подключение новичков к новостной рассылке. Это позволяет сразу вовлечь клиента в коммуникацию, познакомить его с акциями и новинками без необходимости дополнительных подтверждений.
Пример из практики: Интернет-магазин косметики внедрил автоматическую подписку при регистрации. В результате открываемость приветственных писем с промокодом на первый заказ выросла на 20%, а число отказов от подписки в первые сутки не превысило 2%. Пользователи получали полезную информацию, не тратя время на дополнительные действия.
Ниже представлена пошаговая инструкция, которая поможет реализовать этот функционал за три простых шага.
1. Создание пользовательского поля для согласия на подписку
Первым делом необходимо добавить в профиль пользователя специальное поле, которое будет хранить информацию о его согласии на получение рассылок. Для этого:
-
Перейдите в административном разделе в «Настройки» → «Пользователи» → «Поля пользователя».
-
Добавьте новое поле для сущности «Профиль пользователя».
-
Задайте следующие параметры:
-
Тип поля: «Да/Нет» (Boolean).
-
Код:
UF_SUBSCRIBE(символьный код поля). -
Название: «Подписаться на новости и спецпредложения».
-
-
В настройках поля установите значение по умолчанию как «Да», если требуется предустановленная подписка, или оставьте пустым, если нужно, чтобы пользователь ставил галочку осознанно.
Созданное поле станет техническим индикатором выбора пользователя при заполнении регистрационной формы.

2. Интеграция поля в форму регистрации
Созданное поле необходимо вывести на странице регистрации. Это делается путем добавления HTML-кода в шаблон компонента регистрации (например, в bitrix:main.register).
Вставьте следующий код в нужное место формы:
<div class="form-group">
<label class="checkbox-container">
<input class="reg-check" type="checkbox" name="UF_SUBSCRIBE" value="Y" checked>
<span>Соглашаюсь на получение новостей и специальных предложений</span>
</label>
</div>
Атрибут checked в приведенном коде делает пункт о подписке активным по умолчанию. Если требуется, чтобы пользователь осознанно ставил галочку, этот атрибут необходимо удалить.

3. Написание обработчика события регистрации
Для автоматической обработки данных из созданного поля и добавления пользователя в подписку используется механизм событий ядра Битрикс. Приведенный ниже PHP-код необходимо разместить в файле init.php, который находится в корне сайта (или в паблишере проекта /local/php_interface/init.php).
AddEventHandler("main", "OnAfterUserAdd", "subscribeNewUserAfterRegister");
function subscribeNewUserAfterRegister(&$arFields) {
// Проверка: существует ли ID пользователя и отмечена ли галка подписки
if ($arFields["ID"] > 0 && $arFields["UF_SUBSCRIBE"] == "Y") {
// Подключаем модуль рассылок
if (!CModule::IncludeModule("subscribe")) {
return false;
}
$userId = (int)$arFields["ID"];
$userEmail = htmlspecialcharsbx($arFields["EMAIL"]);
// Получаем список активных и видимых рубрик для текущего сайта
$rubricFilter = [
"ACTIVE" => "Y",
"LID" => SITE_ID, // Используем константу текущего сайта
"VISIBLE" => "Y",
];
$rubricList = [];
$rubricsResult = CRubric::GetList([], $rubricFilter);
while ($rubric = $rubricsResult->Fetch()) {
$rubricList[] = (int)$rubric["ID"];
}
// Если нет активных рубрик — выходим
if (empty($rubricList)) {
return false;
}
$subscriptionManager = new CSubscription;
// Проверяем, существует ли уже подписка у пользователя
$existingSubscription = $subscriptionManager->GetList([], ["USER_ID" => $userId])->Fetch();
if (!empty($existingSubscription)) {
// Обновляем существующую подписку
$subscriptionManager->Update(
$existingSubscription["ID"],
[
"FORMAT" => "html",
"RUB_ID" => $rubricList,
]
);
} else {
// Создаем новую подписку
$subscriptionManager->Add([
"USER_ID" => $userId,
"ACTIVE" => "Y",
"EMAIL" => $userEmail,
"FORMAT" => "html",
"CONFIRMED" => "Y", // Подписка считается подтвержденной
"SEND_CONFIRM" => "N", // Не отправлять письмо для подтверждения
"RUB_ID" => $rubricList,
]);
}
}
}Важные замечания по работе кода:
-
Код использует стандартный модуль
subscribe. Перед внедрением убедитесь, что модуль установлен и активирован в системе. -
В фильтре рубрик используется константа
SITE_ID. Это делает код универсальным для работы в многосайтовых конфигурациях, исключая необходимость жестко прописывать идентификатор сайта. -
Поле
UF_SUBSCRIBEв массиве$arFieldsуже обработано ядром, дополнительная фильтрация не требуется.
Заключение
После выполнения всех шагов каждый новый пользователь, регистрирующийся на сайте и не снимающий галочку «Соглашаюсь на получение новостей», будет автоматически подписан на все активные рубрики новостей. Это эффективный маркетинговый инструмент, который помогает наладить канал коммуникации с клиентом с момента его первого взаимодействия с сайтом.
Внедрение автоматической подписки — это не просто техническая доработка, а стратегическое решение, которое повышает лояльность аудитории и открывает дополнительные возможности для повторных продаж.
