2011-09-24 7 views
1

내 뉴스 레터의 이메일 캡처에 WordPress 사이드 바 위젯을 사용하고 있습니다. 플러그인은 제출 후 '성공 페이지'로 리다이렉트되도록 작성되었으며, 제출 후 양식의 div에 성공 메시지를 출력하므로 방문자가 페이지에 머물러 있기 때문에 좋지 않습니다. 어떻게해야합니까? 나는 성공 페이지에서 방문자가있는 페이지로 돌아가는 메타 새로 고침과 같은 것을 생각하고 있었지만 성공 메시지가 출력되는 페이지 캡쳐 양식을 보았을 때 꽤 까다 롭습니다. 리디렉션이없는 페이지 어딘가.리디렉션 대신 페이지로 출력 양식 제출

괜찮 으면, 내가 찾고있는 종류의 것을 얻기 위해 여기서 무엇을 조정할 필요가 있는지 정확히 알지 못하기 때문에 여기 꽤 많은 플러그인 코드를 복사 할 것입니다. 아니면 내가 할 수있는 다른 방법이 있다면, 정말 이걸로 당신의 도움을 주셔서 감사합니다. 고마워.

<?php 
function wp_email_capture_form($error = 0) { 
    $url = get_option('home'); 
    $url = addLastCharacter($url); 
?> 
<div id="wp_email_capture"><form name="wp_email_capture" method="post" action="<?php echo $url; ?>"> 
<?php 
    if (isset($_GET["wp_email_capture_error"])) { 
     $error = sanitize($_GET["wp_email_capture_error"]); 
     echo "<div style='width:80%;background-color: #FFCCCC; margin: 5px;font-weight'>Error: ". $error ."</div>"; 
    } 
?> 
<label class="wp-email-capture-name">Name:</label> <input name="wp-email-capture-name" type="text" class="wp-email-capture-name"><br/> 
<label class="wp-email-capture-email">Email:</label> <input name="wp-email-capture-email" type="text" class="wp-email-capture-email"><br/> 
<input type="hidden" name="wp_capture_action" value="1"> 
<input name="Submit" type="submit" value="Submit" class="wp-email-capture-submit"> 
</form> 
</div> 
<?php 
    if (get_option("wp_email_capture_link") == 1) { 
     echo "<p style='font-size:10px;'>Powered by <a  href='http://www.gospelrhys.co.uk/plugins/wordpress-plugins/wordpress-email-capture-plugin' target='_blank'>WP Email Capture</a></p>\n"; 
    } 
} 

function wp_email_capture_form_page($error = 0) { 
    $url = get_option('home'); 
    $url = addLastCharacter($url); 
    $display .= "<div id='wp_email_capture_2'><form name='wp_email_capture_display'  method='post' action='" . $url ."'>\n"; 
    if (isset($_GET["wp_email_capture_error"])) { 
     $error = sanitize($_GET["wp_email_capture_error"]); 
     $display .= "<div style='width:80%;background-color: #FFCCCC; margin:  5px;font-weight'>Error: ". $error ."</div>\n"; 
    } 
    $display .= "<label class='wp-email-capture-name'>Name:</label> <input name='wp-email-capture-name' type='text' class='wp-email-capture-name'><br/>\n"; 
    $display .= "<label class='wp-email-capture-email'>Email:</label> <input name='wp-email-capture-email' type='text' class='wp-email-capture-email'><br/>\n"; 
    $display .= "<input type='hidden' name='wp_capture_action' value='1'>\n"; 
    $display .= "<input name='Submit' type='submit' value='Submit' class='wp-email-capture-submit'></form></div>\n"; 
    if (get_option("wp_email_capture_link") == 1) { 
     $display .= "<p style='font-size:10px;'>Powered by <a href='http://www.gospelrhys.co.uk/plugins/wordpress-plugins/wordpress-email-capture-plugin' target='_blank'>WP Email Capture</a></p>\n"; 
    } 

    return $display; 
} 

function wp_email_capture_display_form_in_post($content) { 
    $get_form = wp_email_capture_form_page(); 
    $content = str_replace("[wp_email_capture_form]", $get_form, $content); 
    return $content; 
} 
?> 

답변

1

는 여기에 스택 오버플로 대답에서 내 첫 번째 시도이다 :

양식 작업이 현재 다른 페이지로 지시하지만, 당신은 다시 당신이 이미있는 페이지로 연결해야합니다. 당신과 같이, 빈 action 속성이 작업을 수행 할 수 있습니다 : 당신이 이런 짓을하면

<form action=""> 

, 당신은 같은 페이지에 $_POST 데이터를 사용할 수 있습니다. 페이지는 출력을 원하는 div,이 같은 것을 시도 :

if($_POST['wp_capture_action'] == 1) 
{ 
    // The form has been submitted, so 
    // print the success/failure message here 
} 
else 
{ 
    // The form hasn't been submitted, so print 
    // the form here. 
} 

난이 도움이되기를 바랍니다!