Answer the question
In order to leave comments, you need to log in
Site on WP + Contact Form 7 + Bitrix24 - the "list" type field is not transmitted?
Friends, hello everyone!
The value of the "list" type field from the site is not transferred to Bitrix24.
I pass the "list" type field to the Bitrix24 comment field.
There are no problems with the rest of the fields ...
Tell me, what's wrong?
Here is the code with comments:
//Начало кода интеграции Contact Form 7 с Битрикс24
//вызываем функцию для перехвата данных
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', '***@yandex.ru'); // Логин пользователя Вашей 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['name']; //перехватываем поле Имя
$myphone = $posted_data['tel-780']; //перехватываем поле Телефон
$vidpomeshenia = $posted_data['vidpom']; //перехватываем поле Вид помещения
//сопостановление полей Битрикс24 с полученными данными из Contact Form 7
$postData = array(
'TITLE' => 'Заявка с сайта', // Установить значение свое значение
'NAME' => $firstName,
'PHONE_WORK' => $myphone,
'COMMENTS' => $vidpomeshenia
);
//передача данных из Contact Form 7 в Битрикс24
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.')';}
};
Answer the question
In order to leave comments, you need to log in
Everything turned out to be much simpler, it was necessary to use $_POST, example:
//далее мы перехватывает введенные данные в Contact Form 7
$firstName = $posted_data['name']; //перехватываем поле Имя
$myphone = $posted_data['tel-780']; //перехватываем поле Телефон
$vidpomeshenia = $_POST['vidpom']; //перехватываем поле Вид помещения
Good afternoon.
// settings.php
define('C_REST_WEB_HOOK_URL','https://rest-api.bitrix24.com/rest/1/doutwqkjxgc3mgc1/');//url on creat Webhook
//ваш код
$postData = [
'TITLE' => 'Заявка с сайта', // Установить значение свое значение
'NAME' => $firstName,
'PHONE_WORK' => $myphone,
'COMMENTS' => $userFieldEnumValueId // id значения списочного поля
];
$lead = CRest::call('crm.lead.add', ['fields' => $postData]);
return $lead['result'] ?? [$lead['error'], $lead['error_description'];
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question