Contact Form 7
Инструкция по настройке интеграции CMS WordPress и плагина Contact Form 7 с Roisat. Заявка из формы может быть отправлена на почту с номером визита Roistat и в CRM.
Описание¶
Данная инструкция подходит в тех случаях, когда формы на сайте подключены через плагин Contact Form 7.
После отправки заявки из формы она может быть отправлена на почту с номером визита Roistat и в ту CRM, которая указана в настройках интеграции Roistat.
Настройка¶
Переходим в Панель администратора → Contact Form 7 → Form name → Change.
1) В настройках формы есть "Шаблон формы", дописываем в форму скрытое поле в которое будет сохраняться значение куки с номером визита Roistat, дописываем:
<input type="hidden" name="roistat-promo-code">
2) Это скрытое поле заполняется скриптом который необходимо разместить на страницах сайта, после кода счетчика Roistat. (Код должен быть установлен в шаблон, код установленный на страницу через редактор форм CF7 или редактор записей - может выводится некорректно.) Для этого перейдите в панель администратора → Внешний вид → Редактор → Подвал (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>
3) Для передачи значения промо кода можно дописать в шаблон письма:
[roistat-promo-code]
4) Обработку заявки из формы и отправку в Roistat нужно сделать через хук в модуле wpcf7_before_send_mail (Можно дописать в конец файла с функциями темы: wp-content\themes{папка с используемой темой}\functions.php)
function wpcf7_modify_this($WPCF7_ContactForm) {
// Код скрипта смотрите в инструкции к вашей CRM в пункте автоматическая отправка в CRM
// Например, для amoCRM - amoCRM-Шаг5.АвтоматическаяотправкасделкивamoCRM
// Промокод будет доступен в массиве $_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 нужно вставить секретный ключ. Чтобы скопировать этот ключ, откройте Каталог интеграций -> amoCRM. Секретный ключ находится в нижней части экрана в строке Ключ для интеграций (смотрите скриншот ниже).
'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");
Расположение ключа для интеграций: Настройка ContactForm7 в виде отдельного плагина
ContactForm7 можно интегрировать с Roistat так, чтобы ContactForm7 был отдельным плагином.
Для этого нужно:
- В каталоге 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 на секретный ключ из пункта меню Настройки -> Интеграция со сделками в нижней части экрана и строчке Ключ для интеграций
'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");
?>
- В админ-панели сайта добавить ContactForm7 в список плагинов.
Альтернативный способ добавления ContactForm7 в список плагинов¶
- В каталоге wp-content\wp-content\plugins создать новую папку roistat-contact-form-7-integration.\
- В папку roistat-contact-form-7-integration добавить файл roistat.php из этого архива. 3. В админ-панели сайта добавить ContactForm7 в список плагинов.