// Подключаем функцию для перехвата данных после отправки формы
add_action('wpcf7_mail_sent', 'send_data_to_keycrm');

function send_data_to_keycrm($contact_form) {
    // Получаем данные формы
    $submission = WPCF7_Submission::get_instance();
    $posted_data = $submission->get_posted_data();

    // Название формы
    $form_title = $contact_form->title();

    // Перехват данных из формы
    $firstName = '';
    $email = '';
    $phone = '';
    $message = '';

    if ('Main Contact Form' == $form_title) { // Если нужно для отдельных форм с разными наборами / названиями полей
        $firstName = $posted_data['your-name'];
        $email = $posted_data['your-email'];
        $phone = $posted_data['your-phone'];
        $message = $posted_data['your-message'];
    } elseif ('Another Contact Form' == $form_title) {
        $firstName = $posted_data['your-name'];
        $email = $posted_data['your-email'];
        $phone = $posted_data['your-phone'];
        $message = $posted_data['your-message'];
    } else {
        // Подстраховка: на случай, если форма другая — всё равно обрабатываем
        $firstName = $posted_data['your-name'];
        $email = $posted_data['your-email'];
        $phone = $posted_data['your-phone'];
        $message = $posted_data['your-message'];
    }

    // Собираем UTM параметры (если есть)
    $utm_source = isset($posted_data['utm_source']) ? $posted_data['utm_source'] : '';
    $utm_medium = isset($posted_data['utm_medium']) ? $posted_data['utm_medium'] : '';
    $utm_campaign = isset($posted_data['utm_campaign']) ? $posted_data['utm_campaign'] : '';
    $utm_term = isset($posted_data['utm_term']) ? $posted_data['utm_term'] : '';
    $utm_content = isset($posted_data['utm_content']) ? $posted_data['utm_content'] : '';

    // Формируем данные для передачи в KeyCRM
    $data = [
        "title" => "Нова заявка від $firstName",
        "source_id" => 1,
        "manager_comment" => $message,
        "manager_id" => 1,
        "pipeline_id" => 1,
        "contact" => [
            "full_name" => $firstName,
            "email" => $email,
            "phone" => $phone,
        ],
        "utm_source" => $utm_source,
        "utm_medium" => $utm_medium,
        "utm_campaign" => $utm_campaign,
        "utm_term" => $utm_term,
        "utm_content" => $utm_content,
    ];

    // Преобразуем данные в JSON
    $data_string = json_encode($data);

    // API токен
    $token = 'YOUR_API_KEY';

    // CURL-запрос
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://openapi.keycrm.app/v1/pipelines/cards");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        "Content-type: application/json",
        "Accept: application/json",
        "Cache-Control: no-cache",
        "Pragma: no-cache",
        "Authorization: Bearer $token"
    ]);

    // Выполняем запрос
    $result = curl_exec($ch);

    // Проверка на ошибки
    if ($result === false) {
        error_log('Ошибка CURL: ' . curl_error($ch));
    } else {
        error_log('Ответ от KeyCRM: ' . $result);
    }

    curl_close($ch);
}