Интеграция Roistat с WordPress (Contact Form 7)¶
Описание¶
Данная инструкция подходит в тех случаях, когда формы на сайте подключены через плагин Contact Form 7.
После отправки заявки из формы она может быть отправлена на почту с номером визита Roistat и в ту CRM, которая указана в настройках интеграции Roistat.
Для работы данной интеграции в проекте Roistat должна быть настроена интеграция с CRM.
Обратите внимание: если в качестве CRM вы используете WooCommerce, будет невозможно настроить предачу сделок через Roistat (в том числе, отправку данных из Contact Form 7 через Roistat).
Настройка¶
-
Перейдите в Панель администратора → Contact Form 7 → Form name → Change.
-
В настройках формы найдите Шаблон формы. В код шаблона нужно добавить скрытое поле, в которое будет сохраняться значение куки с номером визита Roistat:
-
Скрытое поле заполняется скриптом, который необходимо разместить на страницах сайта после кода счетчика Roistat. Скрипт должен быть установлен именно в шаблоне, а не через редактор форм Contact Form 7 или редактор записей.
Чтобы добавить скрипт, перейдите в раздел Панель администратора → Внешний вид → Редактор → Подвал (footer.php) и вставьте код перед тегом
</body>
:<script> function getCookie(name) { var cookie = " " + document.cookie; var search = " " + name + "="; var setStr = null; var offset = 0; var end = 0; if (cookie.length > 0) { offset = cookie.indexOf(search); if (offset != -1) { offset += search.length; end = cookie.indexOf(";", offset) if (end == -1) { end = cookie.length; } setStr = unescape(cookie.substring(offset, end)); //После отправки заявки из формы } } return(setStr); } (function(d){ setTimeout(function(){ document.getElementsByName('roistat-promo-code')[0].value = getCookie('roistat_visit'); }, 1000); })(document); </script>
-
Для передачи значения промокода можно дописать в шаблон письма:
-
Обработка заявки из формы и отправка в Roistat осуществляются через хук в модуле wpcf7_before_send_mail (можно добавить в конец файла с функциями темы: wp-content\themes{папка с используемой темой}\functions.php):
function wpcf7_modify_this($WPCF7_ContactForm) { // Код скрипта смотрите в инструкции к вашей CRM в пункте «Автоматическая отправка в CRM» // Например, для amoCRM - Шаг 2. Настройка автоматической отправки сделок // Промокод будет доступен в массиве $_COOKIE по ключу roistat_visit // Например: $roistatVisitId = array_key_exists('roistat_visit', $_COOKIE) ? $_COOKIE['roistat_visit'] : "неизвестно"; } add_action("wpcf7_before_send_mail", "wpcf7_modify_this");
Например:
function wpcf7_modify_this( $WPCF7_ContactForm ) { // Отправка данных в amoCRM $roistatData = array( 'roistat' => isset($_COOKIE['roistat_visit']) ? $_COOKIE['roistat_visit'] : null, 'key' => 'SECRET_KEY', // Вместо SECRET_KEY нужно вставить секретный ключ. Чтобы скопировать этот ключ, откройте Каталог интеграций -> CRM -> Настроить интеграцию. Секретный ключ находится в нижней части экрана в строке Ключ для интеграции (смотрите скриншот ниже). 'title' => 'Новый лид с сайта', // Постоянное значение 'comment' => isset($_POST['your-message']) ? $_POST['your-message'] : null, // Для поля с именем 'your-message' 'name' => isset($_POST['your-name']) ? $_POST['your-name'] : null, // Для поля с именем 'your-name' 'email' => isset($_POST['your-email']) ? $_POST['your-email'] : null, // Для поля с именем 'your-email' 'phone' => null, // Если значения нет 'fields' => array( // Массив дополнительных полей, если нужны, или просто пустой массив. // Примеры использования: "price" => 123, // Поле бюджет в amoCRM "responsible_user_id" => 3, // Ответственный по сделке "1276733" => "Текст", // Заполнение доп. поля с ID 1276733 // Подробную информацию о наименовании полей и получить список доп. полей вы можете в документации amoCRM: https://developers.amocrm.ru/rest_api/#lead // Более подробную информацию по работе с дополнительными полями в amoCRM вы можете получить у нашей службы поддержки "charset" => "Windows-1251", // Сервер преобразует значения полей из указанной кодировки в UTF-8 ), ); file_get_contents("https://cloud.roistat.com/api/proxy/1.0/leads/add?" . http_build_query($roistatData)); } add_action("wpcf7_before_send_mail", "wpcf7_modify_this");
Ключ для интеграции можно найти в разделе Интеграции в настройках подключенной CRM:
Ключ находится в нижней части окна настроек:
Настройка Contact Form 7 в виде отдельного плагина¶
Contact Form 7 можно интегрировать с Roistat так, чтобы Contact Form 7 был отдельным плагином.
Для этого нужно:
-
В каталоге wp-content\wp-content\plugins создать новую папку roistat-contact-form-7-integration.
-
В папке roistat-contact-form-7-integration создать файл roistat-contact-form-7-integration.php.
-
Добавить в файл код:
<?php /* Plugin Name: ROIstat CF7 integration Plugin URI: Description: Version: 0.1 Author: Author URI: License: GPL2 */ function wpcf7_modify_this( $WPCF7_ContactForm ) { // Отправка данных в amoCRM $roistatData = array( 'roistat' => isset($_COOKIE['roistat_visit']) ? $_COOKIE['roistat_visit'] : null, 'key' => 'SECRET_KEY', // Вместо SECRET_KEY нужно вставить секретный ключ. Чтобы скопировать этот ключ, откройте Каталог интеграций -> CRM -> Настроить интеграцию. Секретный ключ находится в нижней части экрана в строке Ключ для интеграции. 'title' => 'Новый лид с сайта', // Постоянное значение 'comment' => isset($_POST['your-message']) ? $_POST['your-message'] : null, // Для поля с именем 'your-message' 'name' => isset($_POST['your-name']) ? $_POST['your-name'] : null, // Для поля с именем 'your-name' 'email' => isset($_POST['your-email']) ? $_POST['your-email'] : null, // Для поля с именем 'your-email' 'phone' => null, // Если значения нет 'is_skip_sending' => '1', // Не отправлять заявку в CRM. 'fields' => array( // Массив дополнительных полей, если нужны, или просто пустой массив. // Примеры использования: "price" => 123, // Поле бюджет в amoCRM "responsible_user_id" => 3, // Ответственный по сделке "1276733" => "Текст", // Заполнение доп. поля с ID 1276733 // Подробную информацию о наименовании полей и получить список доп. полей вы можете в документации amoCRM: https://developers.amocrm.ru/rest_api/#lead // Более подробную информацию по работе с дополнительными полями в amoCRM вы можете получить у нашей службы поддержки "charset" => "Windows-1251", // Сервер преобразует значения полей из указанной кодировки в UTF-8 ), ); file_get_contents("https://cloud.roistat.com/api/proxy/1.0/leads/add?" . http_build_query($roistatData)); } add_action("wpcf7_before_send_mail", "wpcf7_modify_this"); ?>
-
В админ-панели сайта добавить Contact Form 7 в список плагинов.
Альтернативный способ добавления Contact Form 7 в список плагинов¶
-
В каталоге wp-content\wp-content\plugins создайте новую папку roistat-contact-form-7-integration.
-
В папку roistat-contact-form-7-integration добавьте файл roistat.php из этого архива.
-
В админ-панели сайта добавьте Contact Form 7 в список плагинов.