Не передаются пользовательские поля в crm bitrix24
Не могу найти в чем причина того что в лид не передаются пользовательские поля в bitrix 24. Передаю данные из worpress формы contact form 7. Все остальные поля успешно попадают в лид.
Код перехвата данных из формы в файле functions.php:
// Вызываем функцию для перехвата данных
add_action('wpcf7_mail_sent', 'your_wpcf7_mail_sent_function');
function your_wpcf7_mail_sent_function($contact_form)
{
// Перехватываем данные из Contact Form 7
$title = $contact_form->title;
$posted_data = $contact_form->posted_data;
if ($title) {
$submission = WPCF7_Submission::get_instance();
$posted_data = $submission->get_posted_data();
$queryUrl = 'https://visatour.bitrix24.ru/rest/58/xxxxxxxxxx/crm.lead.add.json';
$fields = [];
foreach ($posted_data as $key => $value) {
if ($key == 'PHONE') { // номер телефона
$fields['fields']['PHONE'][0]['VALUE'] = $value;
} else if ($key == 'EMAIL') { // емейл
$fields['fields']['EMAIL'][0]['VALUE'] = $value;
} else if ($key == 'TOWN') { // город
$fields['fields']['UF_CRM_1588341571425'] = $value;
} else if ($key == 'COUNTRY') { // страна посещения
$fields['fields']['UF_CRM_1588341622622'] = $value;
} else if (($key == 'GOALTRAVEL') || ($key == 'goal-tour')) { // цель поездки
$fields['fields']['UF_CRM_1588341641812'] = $value;
} else if ($key == 'TYPEVISA') { // тип визы
$fields['fields']['UF_CRM_1588509673435'] = $value;
} else if ($key == 'COUNT') { // число виз
$fields['fields']['UF_CRM_1588509835065'] = $value;
} else if ($key == 'DATE') { // дата посещения страны
$fields['fields']['UF_CRM_1588509979719'] = $value;
} else {
$fields['fields'][$key] = $value;
}
}
$fields['params'] = ["REGISTER_SONET_EVENT" => "Y"];
$fields['fields']['TITLE'] = $title;
$fields['fields']['SOURCE_ID'] = 'WEB';
$fields['fields']['ASSIGNED_BY_ID'] = '34';
$fields['fields']['STATUS_ID'] = 'NEW';
$queryData = http_build_query($fields);
// Обращаемся к Битрикс24 при помощи функции curl_exec
$curl = curl_init();
curl_setopt_array(
$curl,
[
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
]
);
$result = curl_exec($curl);
curl_close($curl);
$result = json_decode($result, 1);
if (array_key_exists('error', $result)) echo "Ошибка при сохранении лида: " . $result['error_description'] . "<br/>";
}
}
Ответы (1 шт):
Автор решения: Сергей Толкачёв
→ Ссылка
Убедитесь, что эти дополнительные поля созданы именно для лида. Попробуйте через консоль проверить, добавятся ли эти данные. Выведите где-нибудь получающийся массив и посмотрите все ли там есть. А еще лучше используйте php библиотеку CRest от самого Битрикс24. С ней проще и удобнее.