Добрый день!
На форуме нашел решение в init.php, но меня не работает, точнее работает, но только для меня, для всех других пользователей не работает.
На форуме нашел решение в init.php, но меня не работает, точнее работает, но только для меня, для всех других пользователей не работает.
| Код |
|---|
<?
AddEventHandler("main", "OnAfterUserLogin", "OnAfterUserLoginHandler");
function OnAfterUserLoginHandler(&$arFields)
{
if($arFields["ID"]>0)
{
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,
));
}
}
}
}
?>
|
Регистрация проходит, событие вызывается, но человек не подписывается но новости. При этом параметр ID пользователя передается точно. Пробовал туда просто вписать данные - не выходит. Менял событие на "После авторизации", тоже не выходит, но вот если зайти в админку (админу), то подписка срабатывает. Тоже самое ставил на изменение пользователя, если в админке редактирую - пользователь подписывается, а вот если через внешнюю часть сайта код отрабатывает но ничего не происходит. Есть какие-нибудь идеи?