2013-08-04 3 views
0

저는 example.com에있는 Wordpress 웹 사이트를 갖고 있으며 example.com/landing-page에 방문 페이지가 있습니다. 방문 페이지에는 사용자가 무료 상담을 받기 위해 작성하는 양식이 있습니다.첫 방문 사용자를 방문 페이지로 리디렉션

첫 번째 방문자가 example.com을 방문 할 때 example.com/landing-page로 리디렉션되도록 쿠키 또는 다른 것을 설치하는 방법이 있습니까? 그러나 방문 페이지의 양식을 작성한 후 다음 번에 example.com을 방문하면 정규 홈페이지 (리디렉션되지 않음)가 표시됩니다.

+0

쿠키는 일반적으로 특정 시간이 지나면 만료되도록 설정되거나 사용자가 언제든지 쿠키를 지울 수 있으므로 실제로 그렇게하는 것이 아닙니다. 그래도 신경 쓰지 않는다면 jQuery를 사용하여 어떻게 할 수 있는지에 대한 답을 쓸 수 있습니다. –

+0

쿠키를 삭제하지 않고 설정하는 방법에 대한 제안 사항이 있으십니까? 그렇지 않다면 jQuery가 도움이 될 것입니다. 감사합니다! – user2528845

+0

나는 나 자신을 생각하고 있었고 솔직히 나는 잘 모른다. 어쩌면 누군가가 내 것보다 더 나은 대답을 쓸 수있을 것이지만 그동안 jQuery 솔루션에 쿠키를 게시 할 것입니다. –

답변

3

당신은 이것을 위해 javascript를 사용할 수 있습니다. jQuery가 포함되어 있는지 확인하십시오.

홈페이지 및 방문 페이지에서 다음과 같은 헬퍼 기능을 사용하여 쿠키가 존재하는지 확인하고 작성하는 두 페이지에 포함 된 글로벌 자바 스크립트 파일에 다음을 추가하십시오.

<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> 

및 방문 페이지에

, 당신은 청취 이벤트를 결합 다음과 같은 자바 스크립트를 추가해야합니다 홈페이지로 연결되면 리디렉션되지 않습니다.

<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 일을 전달할 수 있도록 허용하기를 원한다. 그래서 쿠키를 만료 시켜서 오래도록 만들 수있다.

분명히 자바 스크립트 쿠키에는 사람들이 브라우저 쿠키를 삭제할 위험이 있지만 로그인하지 않은 사용자는 이와 같은 것을 추적 할 수있는 다른 방법이 없습니다. 사용자가 제거 할 수없는 것보다 안전 할 수있는 것은 무엇입니까? 서버에 저장된 PHP 세션이지만 이보다 더 어려울 것입니다. 심지어 세션에 사용자를 연결하는 데 사용하는 사용자 데이터가 IP, 브라우저 등처럼 바뀔 수 있으므로 항상 그렇지 않습니다. 항상 그렇습니다. 위험.

양식 페이지에있을 수있는 것은 "이 양식을 이미 작성했습니다. 기본 웹 사이트로 이동하십시오"라는 링크로 쿠키를 다시 설정하는 링크입니다.

마지막으로, 내 솔루션은 가볍고 $ .cookie와 같은 불필요한 플러그인을 포함하지 않는다는 것을 알게 될 것입니다. 자바 스크립트를 많이 사용했기 때문에 jQuery 만 사용하여 제출 이벤트를 준비하고 바인딩합니다.

+0

나에게 이겼어 :) 잘 했어. –

+0

고마워요. @JoeBuckle, 좀 더 많은 시간을 커뮤니티에 돌려주고, 내가 한 것만 큼 좋았어. =) – davidnknight

0

시간이 없다면 플러그인을 설치하고 필요에 맞게 구성하는 것이 더 쉽습니다. http://wordpress.org/plugins/landing-pages/을 시도하고 더 많은 플러그인을 찾으려고하지 않는 경우.당신은 사용자가 홈 페이지 (안 다른 페이지)를 방문 쿠키를 설정하는 플러그인이 필요하면

1

내가 전에 같은 문제를했고

https://wordpress.org/plugins/redirect-to-welcome-or-landing-page

에서 찾을 것을 처리하는 플러그인을 만들어 당신이해야 할 일은 리디렉션 될 사용자를 요구하는 URL을 설정하는 것입니다. 그런 다음 검색 엔진이 임시 리다이렉션임을 알도록 쿠키 생성과 리디렉션 코드를 처리합니다.

관련 문제