animdenis

Untitled

Dec 22nd, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.02 KB | None | 0 0
  1. <?
  2. require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");
  3.  
  4. //В эту переменную записывае адрес входящего вебхука БЕЗ указания метода, со слешем в конце
  5. //Пример: https://rbs.bitrix24.ru/rest/11/p2b2yyihcjwqo69t/
  6. $endPoint = "https://rbs.bitrix24.ru/rest/11/p2b2yyihcjwqo69t/";
  7.  
  8. /**
  9.  * Основные поля:
  10.  * FORM_NAME - название лида
  11.  * NAME - имя лида (обязательное)
  12.  * PHONE - телефон
  13.  * EMAI - почта
  14.  * UTM_* - утм метки (передаем капсом)
  15.  * Также можно добавить любое другое поле и на 69 строке добавить его в список проверяемых полей
  16.  */
  17.  
  18. /*
  19. Пример вызова скрипта на Jquery
  20. В запросе указываем основные поля + utm метки по желанию (метки передаем капсом)
  21.  
  22. $.ajax({
  23.     url: "/leadadd.php",
  24.     data: {
  25.         FORM_NAME: 'добавлен лид с сайта',
  26.         NAME: 'imya',
  27.         PHONE: '+7(999)9999999',
  28.         EMAIL: 'te@as.ru',
  29.         UTM_SOURCE: 'google'
  30.     }
  31. });
  32.  
  33. */
  34.  
  35. if(!empty($endPoint)){
  36.     $request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest();
  37.  
  38.     //если не передали имя то ничего не делаем
  39.     if(empty($request->get('NAME'))) return;
  40.  
  41.     $requestB24 = [
  42.         'fields' => [
  43.             "TITLE" =>  !empty($request->get('FORM_NAME')) ? $request->get('FORM_NAME') : "Лид с сайта: {$request->get('NAME')}",
  44.             "NAME" => $request->get('NAME'),
  45.             "STATUS_ID" => "NEW",
  46.             "OPENED" => "Y"
  47.         ],
  48.         'params' => ['REGISTER_SONET_EVENT' => 'Y']
  49.     ];
  50.  
  51.     if(!empty($request->get('PHONE'))){
  52.         //оставляем в телефоне только цифры
  53.         $phone = str_replace([' ', '-', '+', '(', ')'], '', $request->get('PHONE'));
  54.         if(!empty($phone)){
  55.             $requestB24['fields']['PHONE'] = [
  56.                 ['VALUE' => $phone, 'VALUE_TYPE' => 'MOBILE']
  57.             ];
  58.         }  
  59.     }
  60.  
  61.     if(!empty(trim($request->get('EMAIL')))){
  62.         $requestB24['fields']['EMAIL'] = [
  63.             ['VALUE' => trim($request->get('EMAIL')), 'VALUE_TYPE' => 'WORK']
  64.         ];
  65.     }
  66.  
  67.     //Здесь можем прописать любые поля для передаяи в лида
  68.     //список полей: https://dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_fields.php
  69.     $utmFields = ['UTM_SOURCE', 'UTM_MEDIUM', 'UTM_CAMPAIGN', 'UTM_CONTENT', 'UTM_TERM'];
  70.     foreach($utmFields as $field){
  71.         if(!empty($request->get($field))){
  72.             $requestB24['fields'][$field] = $request->get($field);
  73.         }
  74.     }
  75.    
  76.     $httpClient = new \Bitrix\Main\Web\HttpClient();
  77.     $httpClient->setHeader('Content-Type', 'application/json', true);
  78.  
  79.     $httpClient->post($endPoint . "crm.lead.add", json_encode($requestB24));
  80. }
Add Comment
Please, Sign In to add comment