Контакт из 7 API-интеграция + уровень данныхPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Контакт из 7 API-интеграция + уровень данных

Сообщение Гость »


Я работаю над интеграцией контактной формы 7 с API, который работает должным образом. Однако проблема возникает, когда API возвращает динамический «gatewayID», который мне нужно отправить в Диспетчер тегов Google через уровень данных. Проблема, с которой я столкнулся, заключается в том, что сам уровень данных вообще не передается. Я пытаюсь определить причину этой проблемы и буду признателен за любые советы о том, как обеспечить правильную отправку gatewayID на уровень данных для приема Диспетчером тегов Google.
/* Функция для отправки данных контактной формы 7 в API */ add_action('wpcf7_before_send_mail', 'send_post_after_cf7'); функция send_post_after_cf7($contact_form) { $submission = WPCF7_Submission::get_instance(); если ($представление) { $posted_data = $submission->get_posted_data(); // получаем идентификатор формы, id = идентификатор сообщения cf7 $form_id = $contact_form->id(); //глобальные значения содержат все формы $phone = $posted_data['tel']; $zip = $posted_data['zip']; $referer_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'Н/Д'; $current_date_time = date('Г-м-д Ч: я: с'); $newsletter = isset($posted_data['newsletter'])? правда: ложь; //форма6 если ($form_id == '2152452'){ // получаем данные формы $email = $posted_data['ваш адрес электронной почты']; $name = $posted_data['ваше имя']; $источник = "формаконтакт"; $fullName = sanitize_text_field($posted_data['ваше имя']); //получим URL-адрес API $api_url = 'https://api.xxxx.com/my-api/form6'; $body = массив( 'электронная почта' => $email, 'телефон' => $телефон, 'zip' => $zip, 'источник' => $источник, "firstName" => $fullName, "sourceUrl" => $referer_url, "gdpr_date" => $current_date_time, "информационный бюллетень" => $информационный бюллетень ); } $args = массив( 'метод' => 'POST', 'заголовки' => массив( 'Content-Type' => 'application/json', ), 'body' => json_encode($body), ); $body_json = json_encode($body); $response = wp_remote_post($api_url, array( 'метод' => 'POST', 'headers' => array('Content-Type' => 'application/json; charset=utf-8'), 'тело' => json_encode($body), 'data_format' => 'тело', )); if (!is_wp_error($response) && wp_remote_retrieve_response_code($response) == 200) { $body = wp_remote_retrieve_body($response); $data = json_decode($body); если (isset($data->gatewayID)) { $gatewayID = $data->gatewayID; add_action('wp_footer', function() use ($gatewayID, $form_id) { $dataLayerContent = [ 'event' => 'formSubmissionSuccess', 'gatewayID' => $gatewayID, ]; если ($form_id == '2152452') { $dataLayerContent['form_type'] = 'formcontact'; если (isset($posted_data['tel'])) { $dataLayerContent['phone'] = $posted_data['tel']; } if (isset($posted_data['your-email'])) { $dataLayerContent['email'] = $posted_data['ваш адрес электронной почты']; } if (isset($posted_data['ваше-имя'])) { $dataLayerContent['name'] = $posted_data['ваше имя']; } если (isset($posted_data['zip'])) { $dataLayerContent['ZIP'] = $posted_data['zip']; } } $jsonContent = json_encode($dataLayerContent); error_log("Содержимое уровня данных: " . $jsonContent); echo " window.dataLayer = window.dataLayer || []; window.dataLayer.push($jsonContent); "; }); $response_body = wp_remote_retrieve_body($response); error_log("Запрос API успешен, данные отправлены в CRM: $body_json, ответ: $response_body, содержимое уровня данных: " . json_encode($jsonContent)); } } } }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»