<?php
/*
TODO: Получаем список email активных юзеров и засылаем их в sendpulse
*/
require($_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/main/include/prolog_before.php');
// Получаем список email всех активных юзеров
global $USER;
$filter = Array(
"ACTIVE" => "Y",
);
$email = Array();
$rsUsers = CUser::GetList(($by = "NAME"), ($order = "desc"), $filter);
while ($arUser = $rsUsers->Fetch()) {
$phone = $arUser['PERSONAL_PHONE'];
$phone = !is_null($phone) ? trim($phone) : null;
$fields = [
"email" => $arUser['EMAIL'],
"name" => $arUser['NAME'],
"phone" => $phone
];
array_push($email, $fields);
}
$apiKey = 'КЛЮЧ API';
// Массив с исключениями
$array = Array(
"retailcrm.com",
"retailcrm.ru",
"sberbank.ru",
"matveevs.ru",
);
/**
* Ищем если совпадение
*
* @param string $value Искомое значение
* @param Array $array Массив исключений
*
* @return Boolean Результат
*/
function strposArray($value, $array)
{
$res = false;
foreach ($array as $key) {
$res = strpos($value, $key) ? true : $res;
}
return $res;
}
// удаляем с исключением покупателей
foreach ($email as $key => $value) {
if (strposArray($value['email'], $array)) {
unset($email[$key]);
}
}
// чистим поля покупателей для подписчиков))
unset($rsUsers, $arUser, $value, $key, $phone, $fields);
$emailSub = Array();
// Subscribe
CModule::IncludeModule('subscribe');
$rsUsers = CSubscription::GetList(Array(), $filter, false);
while ($arUser = $rsUsers->Fetch()) {
$fields = [
"email" => $arUser['EMAIL'],
];
array_push($emailSub, $fields);
}
// удаляем с исключением подписчиков
foreach ($emailSub as $key => $value) {
if (strposArray($value['email'], $array)) {
unset($emailSub[$key]);
}
}
unset($value, $key);
function addSubscribe($bookID, $array, $mode = false) {
global $apiKey;
$query = [
'list_ids' => $bookID,
'fields[email]' => $array['email'],
'api_key' => $apiKey,
'double_optin' => 3,
'tags' => urlencode("Added using API by positron-it.ru")
];
if ($mode) {
$query['fields[Name]'] = $array['name'];
$query['fields[phone]'] = $array['phone'];
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_URL, 'https://api.unisender.com/ru/api/subscribe?format=json');
$result = curl_exec($ch);
}
foreach ($email as $key => $value) {
addSubscribe('id книги с покупателями', $value, true);
}
unset($key, $value);
foreach ($emailSub as $key => $value) {
addSubscribe('id книги с подписчиками', $value);
}