Хотите, чтобы новые пользователи автоматически подписывались на рассылку при регистрации? Следуйте этой инструкции – всего 3 простых шага!
1. Создайте пользовательское поле
Добавьте поле типа "Да/Нет" с кодом UF_SUBSCRIBE в настройках пользователей.
2. Добавьте чекбокс в форму регистрации
Вставьте этот HTML-код в вашу форму:
<input class="reg-check" name="UF_SUBSCRIBE" type="checkbox" value="Y" checked>
(Галочка checked сделает подписку включённой по умолчанию.)
3. Настройте обработчик события
Добавьте этот PHP-код в init.php вашего сайта:
AddEventHandler("main", "OnAfterUserAdd", "OnAfterUserAddHandler");
function OnAfterUserAddHandler(&$arFields) {
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)) {
$obSubscription->Update(
$arSubscription["ID"],
array(
"FORMAT" => "html",
"RUB_ID" => $arRubrics,
),
false
);
} else {
$obSubscription->Add(array(
"USER_ID" => $USER_ID,
"ACTIVE" => "Y",
"EMAIL" => $EMAIL,
"FORMAT" => "html",
"CONFIRMED" => "Y",
"SEND_CONFIRM" => "N",
"RUB_ID" => $arRubrics,
));
}
}
}
}Готово!
Теперь при регистрации пользователи будут автоматически подписываться на выбранные рубрики рассылки.