Нужно отправить 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" => "direct@yandex.ru", #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); #Отправка положительного ответа
И дальше его обрабатываем... Но почему то хук туда не приходит. В чём может быть причина?