Содержание
Передача данных с форм Elementor на сайтах WordPress
Elementor — это плагин для WordPress, который реализует функционал визуального конструктора страниц.
Он позволяет создавать красивые и функциональные страницы сайта без специальных знаний и опыта, простым перетаскиванием готовых блоков. Плагин имеет систему готовых шаблонов, дополнений и интеграций, позволяет создавать свои шаблоны для WordPress.
Однако, когда возникает вопрос об отправке данных с формы обратной связи, созданной с помощью Elementor, могут возникнуть небольшие сложности ввиду того, что формы Elementor не имеют встроенного визуального интерфейса для отправки webhooks на внешние сервисы.
Вставка кода в functions.php
Для возможности отправки запросов с форм Elementor нам потребуется скрипт, который будет ловить событие, которое произошло в форме, собирать данные формы и куки, и отправлять в MoreKit.
Для начала в MoreKit необходимо создать процесс с типом «Другое».
После создания процесса в первоначальном блоке необходимо скопировать ссылку. На данную ссылку необходимо будет отправить данные, чтобы затем их обработать и отправить в нужную нам внешнюю систему
Далее в списке файлов сайта ищем functions.php
— в него необходимо вставить код. Не забываем изменить в коде ссылку отправки на нашу ссылку, которую скопировали из процесса с типом «Другое»
Данный код добавит функцию send_custom_webhook
в настройку формы Elementor.
Данная функция привязывается к хуку elementor_pro/forms/new_record, который вызывается при создании новой записи формы в Elementor Pro.
function send_custom_webhook( $record, $handler ) { $form_name = $record->get_form_settings( 'form_name' ); $raw_fields = $record->get( 'fields' ); $fields = []; foreach ( $raw_fields as $id => $field ) { $fields[ $id ] = $field['value']; } $micookie = json_decode(stripslashes($_COOKIE['_mk_si']), true); $pars = array('utm_source', 'utm_medium', 'utm_term', 'utm_content', 'utm_campaign', 'roistat_visit','_ga','_ym_uid'); foreach ($pars as $par) { if (isset($micookie[$par])) { $fields[$par] = $micookie[$par]; } } $fields['page_url'] = wp_get_referer(); $fields['form_name'] = $record->get_form_settings( 'form_name' ); wp_remote_post( 'https://ep.morekit.io/xxxxxxxxxxxxxxxxxxxxxxxxxxx', [ 'body' => $fields, ] ); } add_action( 'elementor_pro/forms/new_record', 'send_custom_webhook', 10, 2 );
Резюмируя: этот код обрабатывает данные формы, отправленные через Elementor, добавляет в них UTM метки из cookies, а затем отправляет эти данные на указанный URL с помощью POST-запроса.
Заполнение формы и отправка данных в MoreKit
После вставки кода, если все сделано верно, пробуем заполнить форму и осуществить отправку. Во вкладке «События» увидим входящие данные с формы.
Пример входящих данных с формы Elementor
Выстраивание логической схемы передачи данных с формы Elementor в amoCRM
После того, как получили событие, можно выстраивать логическую схему передачи в amoCRM. На скриншоте представлена стандартная схема передачи создания контакта и сделки с контролем дублей, поиском активных сделок из контакта и постановкой задачи на текущую активную сделку, если она ранее была в crm-системе.
Блок #5 регулярные выражения
используется для очистки номера телефона от лишних символов (скобок, дефисов), оставляет только цифры. Данные блок необходим для более корректного поиска по телефону в amoCRM
Блок #2 Найти контакты
Выполняем поиск контакта по очищенному номеру телефона в amoCRM
Блок #3 Найти контакты
Выполняем поиск контакта по email, если не нашли контакт по номеру телефона
Блок #4 Создать контакт
Если контакта нет в системе amoCRM, создаем новый контакт, заполняя Название, Email, Телефон
Блок #6 создать переменную
записываем найденный или созданный контакт в переменную «Контакт», для удобства обращения к контакту далее в процессе
Блок #7 Найти сделки
выполняем поиск активной сделки (игнорируя этапы поиска 142 и 143) в amoCRM из контакта
Блок #9 Создать задачу
создаем задачу на активную сделку, если у контакта она была найдена. Срок задачи — до конца дня
Блок #8 Создать сделку
если у контакта не было активной сделки, создаем новую сделку, прикрепляя найденный/созданный контакт
Проверка результата отработки логической схемы
Проверяем результат, можно либо заполнить форму Elementor заново и получить новые данные, либо повторить существующий лог в MoreKit
После повторения лога видим новый лог с отработанной схемой (нужно нажимать синюю кнопку «Обновить», для получения новых логов на странице событий), из лога можем кликнуть на ID сделки напротив блока сделки, чтобы сразу перейти в сделку amoCRM и посмотреть результат
После перехода в сделку видим результат
Прикрепленный контакт к сделке
Подводим итоги
В данной статье рассмотрели возможность передачи данных с форм Elementor, встроили скрипт-обработчик, который собирает и отправляет данные при заполнении формы в MoreKit, затем выстроили логическую схему передачи данных в amoCRM с контролем дублей и постановкой задачи