Skip to content

Instantly share code, notes, and snippets.

@bizmedia
Last active April 2, 2016 13:47
Show Gist options
  • Save bizmedia/9254770 to your computer and use it in GitHub Desktop.
Save bizmedia/9254770 to your computer and use it in GitHub Desktop.
Подписать всех пользователей 1С-Битрикс на рассылку через Bitrix API
<?
/***
* Подписать всех пользователей 1С-Битрикс на рассылку через Bitrix API
* чтобы исключить конкретного пользователя, нужно создать пользовательское поле UF_UNSUBSCRIBED типа CHECKBOX
* если в UF_UNSUBSCRIBED стоит галочка т.е. "UF_UNSUBSCRIBED" => true - то эту запись будем игнорировать
**/
CModule::IncludeModule('iblock');
CModule::IncludeModule("subscribe");
$cUser = new CUser;
$sort_by = "ID";
$sort_ord = "ASC";
$arFilter = array(
"ACTIVE" => 'Y',
"UF_UNSUBSCRIBED" => false // Если стоит галочка, то это признак того, что пользователь сам отказался от рассылки
);
$dbUsers = $cUser->GetList($sort_by, $sort_ord, $arFilter);
while ($arUser = $dbUsers->Fetch())
{
$USER_ID = $arUser["ID"];
$EMAIL = $arUser["EMAIL"];
$arFilter = array(
//"ID" => array(1,2) если нужно указать идентификатор рассылки
"ACTIVE" => "Y",
"VISIBLE"=>"Y",
"LID" => "s1",
);
$rsRubrics = CRubric::GetList(array(), $arFilter);
//$arRubrics = array(1,2,3); //для задачи определённых рубрик, заккоментировать код между звёздочками и зазкомментирвать даную строку
/**/
$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
);
echo 'подписка пользователю ID='.$USER_ID.' успешно обновлена<br>';
}
else
{
$rs = $obSubscription->Add(array(
"USER_ID" => $USER_ID,
"ACTIVE" => "Y",
"EMAIL" => $EMAIL,
"FORMAT" => "html",
"CONFIRMED" => "Y",
"SEND_CONFIRM" => "N",
"RUB_ID" => $arRubrics,
), "s1");
echo 'подписка пользователю ID='.$USER_ID.' успешно добавлне<br>';
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment