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

Интеграция Roistat с Wordpress (QuForm)

Настройка интеграции

В интерфейсе Wordpress перейдите в раздел Панель администратора → QuForm → Form name → Change.

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

    <input type="hidden" name="roistat-promo-code">
    

    В настройках формы скопируйте Unique ID поля (например, "1_5"). Из него генерируется поле name формы, например, quform_1_5. В код формы при этом добавляется строка следующего вида:

    <input type="hidden" name="quform_1_5" class="quform-field quform-field-hidden quform-field-1_5" data-default="roistat-promo-code">
    
  2. На все страницы сайта под кодом Roistat добавьте код:

    <!-- Roistat Form-->
    <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('quform_1_5')[0].value = getCookie('roistat_visit');
            }, 1000);
        })(document);
    </script>
    

    где quform_1_5 ставится по полю name добавленного поля. После этого код поля в форме приобретает следующий вид:

    <input type="hidden" name="quform_1_5" class="quform-field quform-field-hidden quform-field-1_5" data-default="roistat-promo-code" value="100054">
    

    где значение value = roistat promo code.

    Если форм несколько, можно добавить несколько строк:

    document.getElementsByName('quform_1_5')[0].value = getCookie('roistat_visit');
    

    с разными значениями 'quform_'.

  3. Далее прописываются поля, которые нужно отправлять:

    add_filter('quform_post_validate_2', function ($result, $form) {
        $values = $form->getValues(); // Получаем значение формы
        // Отправка данных
        $roistatData = array(
            'roistat' => isset($_COOKIE['roistat_visit']) ? $_COOKIE['roistat_visit'] : null,
            'key'     => 'ВАШ КЛЮЧ',
            'title'   => 'форма Вызвать врача на дом', // Постоянное значение
            'name'    => isset($values['quform_2_5']) ? $values['quform_2_5'] : null,
            'phone'   => isset($values['quform_2_3']) ? $values['quform_2_3'] : null,
        );
    });
    

    Вебхук для отправки данных в Roistat в QuForm выглядит так:

    file_get_contents("https://cloud.roistat.com/api/proxy/1.0/leads/add?" . http_build_query($roistatData));