Перейти к содержимому

Подписка на новости - рубрики, форма, автоматический выпуск

Собираем подписку на новости сайта: рубрики и подписчики, форма и страница управления адресом, подтверждение подписки и автоматический выпуск.

Что нужно знать заранее

В платформе две разные подсистемы рассылок, и их постоянно путают. Старая подписка работает рубриками и выпусками, современный email-маркетинг - сегментами и кампаниями, а разделы админки, компоненты и интерфейсы у них разные.

Подписка оперирует тремя сущностями: рубриками, подписчиками и выпусками писем. Рубрика - это тема, на которую подписывается человек, подписчик - адрес с признаком подтверждения, выпуск - конкретное письмо по рубрике.

Анонимный подписчик получает письма только после подтверждения своего адреса. Без признака подтверждения адрес числится в базе, а выпуски мимо него проходят, и жалобу «не приходит рассылка» разбирают именно с этого.

Шаги

  1. Решить, какая подсистема нужна: простая подписка по рубрикам или полноценный маркетинг.
  2. Завести рубрики и разделить их на публичные и назначаемые только администратором.
  3. Поставить форму подписки и отдельную страницу управления своим адресом на публичной части.
  4. Проверить письмо подтверждения адреса и признак подтверждённой подписки у нового подписчика.
  5. Для автоматической рассылки задать шаблон выпуска и расписание генерации в настройках рубрики.

Решение

Ставим форму подписки в шаблон:

$APPLICATION->IncludeComponent('bitrix:subscribe.form', '', [
'SHOW_HIDDEN' => 'N', // скрытые рубрики в форме не показываем
'PATH' => '/personal/subscribe/edit.php', // страница управления своим адресом
'CACHE_TIME' => 3600,
]);

Адрес страницы управления указывают сразу, а не потом. Без него подписчику некуда идти менять набор рубрик, и любое изменение подписки превращается в письмо в поддержку.

Заводим страницу управления адресом:

/personal/subscribe/edit.php
$APPLICATION->IncludeComponent('bitrix:subscribe.edit', '', [
'SHOW_HIDDEN' => 'N',
'ALLOW_ANONYMOUS' => 'Y', // управление по ссылке из письма
]);

Страница управления - обязательная часть подписки, а не необязательное украшение. Ссылка на неё уходит в письма, и по ней подписчик меняет рубрики или отписывается сам, без участия сотрудников.

Смотрим рубрики и число подписчиков:

\Bitrix\Main\Loader::includeModule('subscribe');
$res = \CRubric::GetList(['SORT' => 'ASC'], ['ACTIVE' => 'Y']);
while ($rubric = $res->Fetch()) {
printf("%-30s подписчиков=%d\n", $rubric['NAME'], $rubric['COUNT_ALL'] ?? 0);
}

Проверяем подтверждение подписки:

$res = \CSubscription::GetList([], ['EMAIL' => $email], ['CONFIRMED', 'ACTIVE']);
$row = $res->Fetch();
printf("активна=%s подтверждена=%s\n", $row['ACTIVE'] ?? '-', $row['CONFIRMED'] ?? '-');
// неподтверждённый адрес в базе есть, а выпуски до него не доходят

Настраиваем автоматический выпуск:

Рубрика → флаг «Автоматическая» → закладка «Автоматическая генерация»:
PHP-шаблон выпуска - образец есть в поставке, его правят под свой сайт
Дни недели - хотя бы один параметр расписания обязателен
Числа месяца - можно вместо дней недели или вместе с ними
# без расписания автоматический выпуск не сформируется вообще

Расписание - обязательная часть автоматической рассылки. Пустое расписание означает, что выпуск не соберётся никогда, а рубрика при этом выглядит настроенной и включённой.

Типичные проблемы

Подписчик есть в базе, а письма не приходят.

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

Автоматическая рассылка не формируется.

У рубрики не задано расписание генерации выпусков рассылки. Обязателен хотя бы один параметр расписания: дни недели или числа месяца.

Форма подписки есть, а управлять подпиской негде.

В параметрах формы не указан адрес страницы управления подпиской. Страницу заводят отдельным компонентом и указывают путь к ней в форме.

Сегменты рассылки не находятся в разделе подписки.

Сегменты и кампании относятся к другой, более новой подсистеме рассылок платформы. Подписка работает рубриками и выпусками, а сегменты живут в отдельном разделе маркетинга.

В форме видны служебные рубрики.

Включён показ скрытых рубрик в параметрах компонента формы. Скрытые рубрики назначает администратор, и посетителю их в форме обычно не показывают.

Частые вопросы

Что выбрать: подписку или email-маркетинг?

Для простой рассылки новостей по рубрикам хватает подписки. Для сегментов, цепочек писем и триггеров берут современный модуль маркетинга.

Чем рубрика отличается от сегмента?

Рубрика - тема, на которую человек подписывается сам. Сегмент - вычисляемый список получателей, который собирается по условиям перед отправкой.

Как сделать двойное подтверждение подписки?

Оно встроено: адрес получает письмо со ссылкой подтверждения. Без перехода по ссылке подписка остаётся неподтверждённой и писем не получает.

Можно ли подписать пользователя из кода?

Да, через интерфейс модуля подписки, но подтверждение всё равно требуется. Молча подписывать посетителей без согласия не стоит и по закону.

Куда уходит адрес отправителя выпусков?

Он берётся из настроек модуля подписки и подставляется в письма. Отдельно проверяют, что этот адрес проходит проверки почтовых служб.

Смежное

Первоисточник