Перейти к содержанию

Интеграция Roistat с WordPress (Contact Form 7)

Описание

Данная инструкция подходит в тех случаях, когда формы на сайте подключены через плагин Contact Form 7.

После отправки заявки из формы она может быть отправлена на почту с номером визита Roistat и в ту CRM, которая указана в настройках интеграции Roistat.

Настройка

  1. Перейдите в Панель администратора → Contact Form 7 → Form name → Change.

  2. В настройках формы найдите Шаблон формы. В код шаблона нужно добавить скрытое поле, в которое будет сохраняться значение куки с номером визита Roistat:

    <input type="hidden" name="roistat-promo-code">
    
  3. Скрытое поле заполняется скриптом, который необходимо разместить на страницах сайта после кода счетчика 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>
    
  4. Для передачи значения промокода можно дописать в шаблон письма:

    [roistat-promo-code]
    
  5. Обработка заявки из формы и отправка в 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");
    

    Расположение ключа для интеграции:

    1.png

Настройка Contact Form 7 в виде отдельного плагина

Contact Form 7 можно интегрировать с Roistat так, чтобы Contact Form 7 был отдельным плагином. 

Для этого нужно:

  1. В каталоге wp-content\wp-content\plugins создать новую папку roistat-contact-form-7-integration.

  2. В папке roistat-contact-form-7-integration создать файл roistat-contact-form-7-integration.php.

  3. Добавить в файл код:

    <?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");
    
    ?>
    
  4. В админ-панели сайта добавить Contact Form 7 в список плагинов. 

Альтернативный способ добавления Contact Form 7 в список плагинов

  1. В каталоге wp-content\wp-content\plugins создайте новую папку roistat-contact-form-7-integration.

  2. В папку roistat-contact-form-7-integration добавьте файл roistat.php из этого архива.

  3. В админ-панели сайта добавьте Contact Form 7 в список плагинов.