Интеграция Битрикс24 и Contact Form7 WordPress

Битрикс24 интеграция с сайтом. Как соединить Битрикс24 и Contact Form7 WordPress

Код для интеграции на одну форму

И так самый первый код, если Вы используете 1 форму Contact Form на сайте WordPress. Вставить его нужно в конец файла functions.php

Поменяем данные в коде на свои

  1. Строка 6 меняем на свой хост (ВАШ.bitrix24.ru заменить на свой хост )
  2. Строка 11 меняем на свой логин (ВАШ ЛОГИН на свой логин)
  3. Строка 12 пишем свой пароль (ВАШ ПАРОЛЬ)
  4. Строка 17 пишем имя формы (Контактная форма 1 меняем на свою)
  5. С 21 по 24 строку пишем свои значения из Contact Form7

 

//Вызываем функцию для перехвата данных
add_action( ‘wpcf7_mail_sent’, ‘your_wpcf7_mail_sent_function’ );
function your_wpcf7_mail_sent_function( $contact_form ) {
 
//подключение к серверу CRM
define(‘CRM_HOST’, ‘ВАШ.bitrix24.ru’); // Ваш домен CRM системы
define(‘CRM_PORT’, ‘443’); // Порт сервера CRM. Установлен по умолчанию
define(‘CRM_PATH’, ‘/crm/configs/import/lead.php’); // Путь к компоненту lead.rest
 
//авторизация в CRM
define(‘CRM_LOGIN’, ‘ВАШ ЛОГИН’); // Логин пользователя Вашей CRM по управлению лидами
define(‘CRM_PASSWORD’, ‘ВАШ ПАРОЛЬ’); // Пароль пользователя Вашей CRM по управлению лидами
 
//перехват данных из Contact Form 7
$title = $contact_form->title;
$posted_data = $contact_form->posted_data;
if (‘Контактная форма 1’ == $title ) { //Вместо «Контактная форма 1» необходимо указать название Вашей контактной формы
$submission = WPCF7_Submission::get_instance();
$posted_data = $submission->get_posted_data();
//далее мы перехватывает введенные данные в Contact Form 7
$firstName = $posted_data[‘your-name’]; //перехватываем поле [your-name]
$message = $posted_data[‘your-message’]; //перехватываем поле [your-message]
$myemail = $posted_data[‘your-email’];
$myphone = $posted_data[‘your-phone’];
 
//сопостановление полей Bitrix24 с полученными данными из Contact Form 7
$postData = array(
‘TITLE’ => ‘Лид с формы агента’, // Установить значение свое значение
‘NAME’ => $firstName,
‘COMMENTS’ => $message,
‘EMAIL_WORK’ => $myemail,
‘PHONE_WORK’ => $myphone
);
 
//передача данных из Contact Form 7 в Bitrix24
if (defined(‘CRM_AUTH’)) {
$postData[‘AUTH’] = CRM_AUTH;
} else {
$postData[‘LOGIN’] = CRM_LOGIN;
$postData[‘PASSWORD’] = CRM_PASSWORD;
}
 
$fp = fsockopen(«ssl://».CRM_HOST, CRM_PORT, $errno, $errstr, 30);
if ($fp) {
$strPostData = »;
foreach ($postData as $key => $value)
$strPostData .= ($strPostData == » ? » : ‘&’).$key.‘=’.urlencode($value);
 
$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;
 
fwrite($fp, $str);
 
$result = »;
while (!feof($fp))
{
$result .= fgets($fp, 128);
}
fclose($fp);
 
$response = explode(«\r\n\r\n», $result);
 
$output = ‘<pre>’.print_r($response[1], 1).‘</pre>’;
} else {
echo ‘Connection Failed! ‘.$errstr.‘ (‘.$errno.‘)’;}
}
 
}
 
 

Для добавления своих полей пользуйтесь этой табличкой

Таблица 1: Параметры для лидов
ПАРАМЕТРОПИСАНИЕ
LOGINЛогин
PASSWORDПароль
TITLEЗаголовок лида
HONORIFICТип обращения к клиенту
NAMEИмя клиента
LAST_NAMEФамилия клиента
SECOND_NAMEОтчество клиента
BIRTHDATEДата рождения клиента
ADDRESSАдрес клиента
ADDRESS_2Вторая строка адреса клиента
ADDRESS_CITYГород клиента
ADDRESS_COUNTRYСтрана клиента
ADDRESS_COUNTRY_CODEКод страны клиента
ADDRESS_POSTAL_CODEПочтовый индекс клиента
ADDRESS_PROVINCEРегион клиента
ADDRESS_REGIONРайон клиента
COMPANY_IDПривязка лида к компании
COMPANY_TITLEНазвание компании, привязанной к лиду
CONTACT_IDПривязка лида к контакту
POSTДолжность клиента
COMMENTSКомментарий клиента
SOURCE_DESCRIPTIONДополнительно о статусе
STATUS_DESCRIPTIONДополнительно об источнике
OPPORTUNITYВозможная сумма сделки
CURRENCY_IDВалюта
PRODUCT_IDПродукт
SOURCE_IDИсточник
STATUS_IDСтатус
ASSIGNED_BY_IDОтветственный за клиента
PHONE_WORKРабочий телефон
PHONE_MOBILEМобильный телефон
PHONE_FAXНомер факса
PHONE_HOMEДомашний телефон
PHONE_PAGERНомер пейджера
PHONE_OTHERДругой телефон
WEB_WORKКорпоративный сайт
WEB_HOMEЛичная страница
WEB_FACEBOOKСтраница Facebook
WEB_LIVEJOURNALСтраница LiveJournal
WEB_TWITTERМикроблог Twitter
WEB_OTHERДругой сайт
EMAIL_WORKРабочий e-mail
EMAIL_HOMEЧастный e-mail
EMAIL_OTHERДругой e-mail
M_SKYPEКонтакт Skype
IM_ICQКонтакт ICQ
IM_MSNКонтакт MSN/Live!
IM_JABBERКонтакт Jabber
IM_OTHERДругой контакт
UTM_CAMPAIGNОбозначение рекламной кампании
UTM_CONTENTСодержание кампании
UTM_MEDIUMТип трафика
UTM_SOURCEРекламная система
UTM_TERMКлючевое слова/условия поиска

 

Код для интеграции на две формы

По аналогии с первой формой

  1. Строка 6 меняем на свой хост (ВАШ.bitrix24.ru заменить на свой хост )
  2. Строка 11 меняем на свой логин (ВАШ ЛОГИН на свой логин)
  3. Строка 12 пишем свой пароль (ВАШ ПАРОЛЬ)
  4. Строка 17 пишем имя формы (Контактная форма 1 меняем на свою)
  5. С 27 по 29 строку пишем свои значения из Contact Form7
  6. Строка 73 Имя второй своей формы
  7. С 83 по 85 строку проверьте значения из своей формы, если нужно добавить — добавьте.

 

//Вызываем функцию для перехвата данных
add_action( 'wpcf7_mail_sent', 'your_wpcf7_mail_sent_function' );
function your_wpcf7_mail_sent_function( $contact_form ) {

//подключение к серверу CRM
define('CRM_HOST', 'ВАШ ДОМЕН'); // Ваш домен CRM системы
define('CRM_PORT', '443'); // Порт сервера CRM. Установлен по умолчанию
define('CRM_PATH', '/crm/configs/import/lead.php'); // Путь к компоненту lead.rest

//авторизация в CRM
define('CRM_LOGIN', 'ВАШ ЛОГИН'); // Логин пользователя Вашей CRM по управлению лидами
define('CRM_PASSWORD', 'ВАШ ПАРОЛЬ'); // Пароль пользователя Вашей CRM по управлению лидами

//перехват данных из Contact Form 7
$title = $contact_form->title;
$posted_data = $contact_form->posted_data;
if ('Контактная форма 1' == $title ): { //Вместо "Контактная форма 1" необходимо указать название Вашей контактной формы
$submission = WPCF7_Submission::get_instance();
$posted_data = $submission->get_posted_data();

//далее мы перехватывает введенные данные в Contact Form 7
$firstName = $posted_data['your-name']; //перехватываем поле [your-name]
$emailmessage = $posted_data['your-email']; //перехватываем поле [your-message]

//сопостановление полей Bitrix24 с полученными данными из Contact Form 7
$postData = array(
'TITLE' => 'Лид с первой формы', // Установить значение свое значение
'NAME' => $firstName,
'EMAIL_WORK' => $emailmessage,
);

//передача данных из Contact Form 7 в Bitrix24
if (defined('CRM_AUTH')) {
$postData['AUTH'] = CRM_AUTH;
} else {
$postData['LOGIN'] = CRM_LOGIN;
$postData['PASSWORD'] = CRM_PASSWORD;
}

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

$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;

fwrite($fp, $str);

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

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

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

//Начало второй формы
elseif('Контактная форма 2' == $title ): { //Вместо "Контактная форма 2" необходимо указать название Вашей контактной формы
$submission = WPCF7_Submission::get_instance();
$posted_data = $submission->get_posted_data();

//далее мы перехватывает введенные данные в Contact Form 7
$firstName = $posted_data['your-name']; //перехватываем поле [your-name]
$emailmessage = $posted_data['your-email']; //перехватываем поле [your-message]

//сопостановление полей Bitrix24 с полученными данными из Contact Form 7
$postData = array(
'TITLE' => 'Лид со второй формы', // Установить значение свое значение
'NAME' => $firstName,
'EMAIL_WORK' => $emailmessage,
);

//передача данных из Contact Form 7 в Bitrix24
if (defined('CRM_AUTH')) {
$postData['AUTH'] = CRM_AUTH;
} else {
$postData['LOGIN'] = CRM_LOGIN;
$postData['PASSWORD'] = CRM_PASSWORD;
}

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

$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;

fwrite($fp, $str);

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

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

$output = print_r($response[1], 1);
} else {
echo 'Connection Failed! '.$errstr.' ('.$errno.')';
}
}; //Конец второй

endif;
}

 

Полный оригинал статьи тут https://e-integrate.ru/bitrix24-integraciya-s-saytom/