- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/integration/seo/ads/messagemarketingfb.php
- Класс: Bitrix\Sender\Integration\Seo\Ads\MessageMarketingFb
- Вызов: MessageMarketingFb::saveConfiguration
public function saveConfiguration(Message\Configuration $configuration)
{
$config = $configuration;
$clientId = $config->getOption('CLIENT_ID')->getValue();
$body = $config->getOption('BODY')->getValue();
$targetUrl = $config->getOption('TARGET_URL')->getValue();
$campaignName = $config->getOption('TITLE')->getValue();
if (!$clientId)
{
$result = new Result();
$result->addError(
new Error(Loc::getMessage('SENDER_INTEGRATION_SEO_MESSAGE_ERROR_NO_CLIENT'))
);
return $result;
}
if(!filter_var($targetUrl, FILTER_VALIDATE_URL))
{
$result = new Result();
$result->addError(
new Error(Loc::getMessage('SENDER_INTEGRATION_SEO_MESSAGE_ERROR_NO_TARGET_URL'))
);
return $result;
}
$utmMarks = [
['CODE' => 'utm_source', 'VALUE' => 'b24_sender_'.static::CODE],
['CODE' => 'utm_medium', 'VALUE' => 'ads'],
['CODE' => 'utm_campaign', 'VALUE' => $campaignName]
];
if (!mb_strpos($targetUrl, 'b24_sender_'.static::CODE))
{
$preparedMarks = [];
foreach($utmMarks as $utmMark)
{
$preparedMarks[$utmMark['CODE']] = $utmMark['VALUE'];
}
$config->getOption('TARGET_URL')->setValue(sprintf('%s/?%s',$targetUrl, http_build_query($preparedMarks)));
}
return Entity\Message::create()
->setCode($this->getCode())
->setUtm($utmMarks)
->saveConfiguration($this->configuration);
}