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

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

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

Переходим в Панель администратора → 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_'.

  1. Далее прописываются поля, которые отправлять:
    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));