@Sanchik97

Не приходят лиды с сайта на modx?

Добрый день! Есть вызов формы с использованием сниппетов AjaxForm и Formit:
Вызов формы
[[!AjaxForm? 
			        &snippet=`FormIt`
			        &form=`HEADER_FORM`
			        &hooks=`Rest_API_bitrix24.php, email, spam, FormItSaveForm`
			        &emailTpl=`emailTpl`
			        &emailSubject=`Вам сообщение с сайта [[++site_name]]`
			        &emailTo=`info@domain.ru`
			        &emailFrom=`no-reply@site.ru`
			        &formName=`Форма в хидере сайта`
			        &validate=`name:minLength=^2^, phone:phone:required, phone:minLength=^11^, user:blank, username:blank, captcha:blank`
			        &validationErrorMessage=`В форме содержатся ошибки!`
			        &successMessage=`Заявка успешно отправлена`
]]


Сама форма:
spoiler
<form action="[[~[[*id]]]]" class="header-form ajax_form" method="post" id="header-form">
    <div class="d-none">
        <label>Имя</label>
        <input type="text" placeholder="" name="user">
        <input type="text" placeholder="" name="username">
    </div>
    <div class="header-form-wrapper">
        <div class="header-form-block">
    	    <input class="header-form__input" type="text" name="name" placeholder="Введите имя" value=[[+fi.name]]>
    	    <span class="error error_name">[[+fi.error.name]]</span>
	    </div>
	    <div class="header-form-block">
            <input class="header-form__input" type="tel"  name="phone" placeholder="Номер телефона" value=[[+fi.phone]]>
	    </div>
	</div>
	<button class="header-form__button">Заказать звонок</button>
</form>


И есть api для передачи заявки в bitrix24:
spoiler
<?php
// CRM server connection data
define('CRM_HOST', 'домен.bitrix24.ru'); // your CRM domain name
define('CRM_PORT', '443'); // CRM server port
define('CRM_PATH', '/crm/configs/import/lead.php'); // CRM server REST service path

// CRM server authorization data
define('CRM_LOGIN', 'логин'); // login of a CRM user able to manage leads
define('CRM_PASSWORD', 'пароль'); // password of a CRM user
// OR you can send special authorization hash which is sent by server after first successful connection with login and password
//define('CRM_AUTH', 'e54ec19f0c5f092ea11145b80f465e1a'); // authorization hash

/********************************************************************************************/

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

   $name = $_POST['name'];//получаем данные из поля имя
   $phone = $_POST['phone']; //получаем данные из поля телефон
   
   $postData = array(
   'TITLE' => 'заявка с сайта', // заголовок для лида
   'NAME' => $name, // передаем поле имя в Битрикс
   'PHONE_WORK' => $phone, // передаем поле телефон в Битрикс
   );

   $fp = fsockopen("ssl://".CRM_HOST, CRM_PORT, $errno, $errstr, 30);
   if ($fp)
   {
       // prepare POST data
       $strPostData = '';
       foreach ($postData as $key => $value)
           $strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value);

       // prepare POST headers
       $str = "POST ".CRM_PATH." HTTP/1.0\r\n";
       $str .= "Host: ".CRM_HOST."\r\n";
       $str .= "Content-Type: application/x-www-form-urlencoded\r\n";
       $str .= "Content-Length: ".strlen($strPostData)."\r\n";
       $str .= "Connection: close\r\n\r\n";

       $str .= $strPostData;

       // send POST to CRM
       fwrite($fp, $str);

       // get CRM headers
       $result = '';
       while (!feof($fp))
       {
           $result .= fgets($fp, 128);
       }
       fclose($fp);

       // cut response headers
       $response = explode("\r\n\r\n", $result);

       $output = '<pre>'.print_r($response[1], 1).'</pre>';
   }
   else {
         echo 'Connection Failed! '.$errstr.' ('.$errno.')';
      }
   }

else {
      $output = '';
   }
   ?>



Форма отправляется на почту и приходит, а вот до Битрикса не доходит! В чём может быть проблема?
  • Вопрос задан
  • 288 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sanes
@Sanes
Когда-то делал хук для FormIt, посмотрите, может подойдет. Там есть еще какой-то вариант.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы