Почему не отправляется webhook из WordPress?

  • Аватар Неизвестно

    Нужно отправить webhook через curl в wordpress для добавления заявок в AmoCRM

    Для этого в WordPress в файл function добавил код


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

    // Перехватываем данные из Contact Form 7
    $title = $contact_form->title;
    $posted_data = $contact_form->posted_data;

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

    // Далее перехватываем введенные данные в полях Contact Form 7:
    // 1. Перехватываем поле [your-name] - Имя
    $AmoCRM['name'] = $posted_data['your-name'];
    // 2. Перехватываем поле [your-message] - Телефон
    $AmoCRM['phone'] = $posted_data['your-phone'];
    }
    if ('Подобрать программу' == $title) {
    $submission = WPCF7_Submission::get_instance();
    $posted_data = $submission->get_posted_data();

    // Далее перехватываем введенные данные в полях Contact Form 7:
    // 1. Перехватываем поле [your-name] - Имя
    $AmoCRM['name'] = $posted_data['your-name'];
    // 2. Перехватываем поле [your-message] - Телефон
    $AmoCRM['phone'] = $posted_data['your-phone'];

    }
    if ('Узнать больше'== $title) {
    $submission = WPCF7_Submission::get_instance();
    $posted_data = $submission->get_posted_data();

    // Далее перехватываем введенные данные в полях Contact Form 7:
    // 1. Перехватываем поле [your-name] - Имя
    $AmoCRM['name'] = $posted_data['your-name'];
    // 2. Перехватываем поле [your-message] - Телефон
    $AmoCRM['phone'] = $posted_data['your-phone'];
    }

    $AmoCRM['cookie'] = $_COOKIE; #Добавляем куки с UTM в массив

    $post_data = array(
    "contact" => array(
    "phone" => $AmoCRM['phone'], #Телефон клиента
    "name" => $AmoCRM['name'], #Имя клиента
    "email" => "(эл. почта видна только модераторам и сотрудникам)", #Email клиента
    "message" => "Новая сборка интеграции AmoCRM", #Сообщение от клиента
    ),
    );

    $url_hook = "url сайта";
    if ($AmoCRM['phone'] != "") {

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url_hook);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT , 5);
    // указываем, что у нас POST запрос
    curl_setopt($ch, CURLOPT_POST, 1);
    // добавляем переменные
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    $post_data = json_encode($post_data);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: ' . strlen($post_data)));

    $output_amo = curl_exec($ch);
    curl_close($ch);

    }

    }
    add_action( 'wpcf7_mail_sent', 'your_wpcf7_mail_sent_function' );

    Который спокойно кидает хук на тестировщик webhook.site

    Но не получается его принять и запустить скрипт на обработчике. Хотя если запускаю с другого сервера, всё работает. Вот сам код:


    #Принимаем Вебхук
    $post_data = file_get_contents('php://input'); #Принимаем webhook
    $post_data = json_decode($post_data, true); #Раскодируем из json

    http_response_code(200); #Отправка положительного ответа

    И дальше его обрабатываем… Но почему то хук туда не приходит. В чём может быть причина?

  • Форум «Почему не отправляется webhook из WordPress?» закрыт для новых ответов.