- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/tracking/analytics/ad.php
- Класс: Bitrix\Crm\Tracking\Analytics\Ad
- Вызов: Ad::updateAccountIdCompatible
static function updateAccountIdCompatible()
{
$list = Main\Config\Option::get('crm', 'tracking_ad_acc', '');
if ($list)
{
try
{
$list = Main\Web\Json::decode($list);
$list = is_array($list) ? $list : [];
}
catch (\Exception $exception)
{
$list = [];
}
}
else
{
$list = [];
}
if (count($list) === 0)
{
return '';
}
if (!Main\Loader::includeModule('seo'))
{
return '';
}
$providers = \Bitrix\Seo\Analytics\Service::getProviders();
foreach ($list as $code => $accountId)
{
$seoCode = self::getSeoCodeByCode($code);
if (!$accountId || !$seoCode || !isset($providers[$seoCode]))
{
continue;
}
$provider = $providers[$seoCode];
if (!$provider || !$provider['HAS_AUTH'] || !$provider['PROFILE'])
{
continue;
}
$clientId = $provider['PROFILE']['CLIENT_ID'];
if (!$clientId)
{
continue;
}
$row = Tracking\Internals\SourceTable::getRow([
'select' => ['ID'],
'filter' => ['=CODE' => $code],
'limit' => 1,
'order' => ['ID' => 'ASC']
]);
Tracking\Internals\SourceTable::update($row['ID'], [
'AD_ACCOUNT_ID' => $accountId,
'AD_CLIENT_ID' => $clientId,
]);
}
Main\Config\Option::delete('crm', ['name' => 'tracking_ad_acc']);
return '';
}