Добрый день!
На форуме нашел решение в 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 пользователя передается точно. Пробовал туда просто вписать данные - не выходит. Менял событие на "После авторизации", тоже не выходит, но вот если зайти в админку (админу), то подписка срабатывает. Тоже самое ставил на изменение пользователя, если в админке редактирую - пользователь подписывается, а вот если через внешнюю часть сайта код отрабатывает но ничего не происходит. Есть какие-нибудь идеи?