2013-08-04 2 views
0

У меня есть сайт Wordpress на example.com, и у меня есть целевая страница на example.com/landing-page. Целевая страница имеет форму для заполнения пользователями, чтобы получить бесплатную консультацию.Переадресовать пользователей, впервые на целевую страницу

Есть ли способ установить файл cookie или что-то еще, чтобы при первом посещении посетителей example.com они перенаправлялись на example.com/landing-page. Но после заполнения формы на целевой странице, в следующий раз, когда они посещают example.com, они будут видеть очередную домашнюю страницу (не перенаправлять).

+0

Файлы cookie обычно истекают через определенное время или пользователь может очистить файлы cookie в любое время, так что это не совсем конкретный способ сделать это. Если вас это не беспокоит, я могу написать ответ о том, как вы можете это сделать, используя jQuery, если хотите? –

+0

Есть ли у вас какие-либо предложения по настройке без очистки очищенных файлов cookie? Если нет - jQuery будет очень полезен, спасибо! – user2528845

+0

Я сам себя обдумывал и, честно говоря, понятия не имею. Может быть, кто-то сможет написать лучший ответ, чем мой, но тем временем я отправлю решение jQuery с помощью cookie. –

ответ

3

Вы можете использовать javascript для этого. Убедитесь, что у вас включен jQuery.

Добавьте в свой глобальный файл javascript, который включен на обе страницы, поскольку мы будем использовать эти вспомогательные функции как на главной странице, так и на целевой странице, чтобы проверить, существует ли файл cookie, а также создать его.

<script> 
function create_cookie(name, value, days) { 
    var expires = ""; 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime() + (days*24*60*60*1000)); 
     expires = "; expires=" + date.toGMTString(); 
    } 
    document.cookie = name + "=" + value + expires + "; path=/"; 
} 

function get_cookie(name) { 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for (var i = 0; i < ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0) === ' ') { 
      c = c.substring(1, c.length); 
     } 
     if (c.indexOf(nameEQ) === 0) { 
      return c.substring(nameEQ.length, c.length); 
     } 
    } 
    return null; 
} 
</script> 

Включить следующий скрипт на главной странице, которая в основном проверяет, существует ли куки «form_submitted», если нет, то перенаправить пользователя на целевую страницу.

<script> 
// Redirect to landing page if 'form_submitted' cookie does not exist 
if (get_cookie('form_submitted') === 'undefined') { 
    window.location.href = "http://xxx.com/landing-page"; 
} 
</script> 

А на целевой странице, вам необходимо добавить следующий JavaScript, который связывает событие прослушивания для представить в виде и когда это произойдет, то это создает куки, и поэтому в следующий раз, когда пользователь переходит к на главной странице, они не будут перенаправлены.

<script> 
jQuery(document).ready(function($) { 

    // Listen for the form submit event 
    $('#form-id').on('submit', function(){ 

     // Create cookie so that the user is no longer redirected 
     create_cookie('form_submitted', 'true', 30); 

    }); 

}); 
</script> 

Надеюсь, это поможет. Удачи! =)

Редактировать: Я только что прочитал комментарии, которые остались на вашем оригинальном посте, пока я писал свой ответ. Просто хочу добавить, что добавленная функция create_cookie позволяет вам пройти в течение нескольких дней 30 в моем примере, прежде чем вы захотите, чтобы файл cookie истекал, чтобы вы могли установить его достаточно высоко, чтобы сделать его дольше.

Очевидно, что всегда существует риск с помощью куки-файлов javascript, что люди очищают свои куки-файлы браузеров, но нет другого способа отслеживать что-то подобное на пользователях, которые не вошли в систему. Что может быть более безопасным с точки зрения того, что пользователи не смогут удалить это PHP-сессии, хранящиеся на сервере, но это будет намного сложнее, чем это, и даже это не является доказательством пули, поскольку пользовательские данные, которые вы используете для связи пользователя с сеансом, могут меняться как их IP-адрес, браузер и т. д., поэтому всегда есть риск.

На странице формы вы можете указать ссылку «Я уже заполнил эту форму, отвези меня на главный сайт», который снова устанавливает cookie.

Наконец, вы заметите, что мое решение является легким и не содержит ненужных плагинов, таких как $ .cookie, поскольку я использовал javascript в большой части, только используя jQuery для подготовки документа и привязки события submit.

+0

Ударьте меня на это :) Хорошо сделано –

+0

Спасибо @JoeBuckle, пытаясь найти какое-то свободное время, чтобы дать немного больше назад сообществу и получить мой счет так рад, что я это сделал. знак равно – davidnknight

0

Если у вас не так много времени, возможно, будет проще установить плагин и настроить его в соответствии с вашими потребностями. Попробуйте http://wordpress.org/plugins/landing-pages/, и если это не то, что вы ищете, попробуйте найти дополнительные плагины.

1

Если вам нужен плагин для установки куки, где пользователь посетить вашу домашнюю страницу (а не любая другая страница) я имел ту же самую проблему, прежде чем и создал плагин для обработки, что

Найти на https://wordpress.org/plugins/redirect-to-welcome-or-landing-page

Все, что вам нужно сделать, это установить URL-адрес, в котором ваш пользователь должен быть перенаправлен, тогда он будет обрабатывать создание файла cookie и код перенаправления, который, как известно поисковым системам, является временным перенаправлением.

Смежные вопросы