提交后请联系表格7重定向

时间:2017-04-30 14:38:03

标签: wordpress contact-form-7

我正在使用联系表单7,我正在尝试在成功提交联系表单后重定向到另一个页面。

我尝试使用联系表单7 - 成功页面重定向(https://nl-be.wordpress.org/plugins/contact-form-7-success-page-redirects/),但该插件与主题不兼容并出现一些错误。

有没有其他方法可以在不使用该插件的情况下重定向? 我也找到了https://contactform7.com/redirecting-to-another-url-after-submissions/,但我无法实现它。重定向也只是网站上的一个联系表单所必需的,而不是全部。

谢谢!

学家

5 个答案:

答案 0 :(得分:3)

我已经看到了相同答案的相当多的答案。当您有10个表单和10个不同的感谢页面时,主要问题就出现了,这个解决方案将不起作用。

我有一个解决方法。

第1步:在表单中创建一个隐藏字段,并在其中添加感谢页面网址。

[hidden thankyouURL id:thankyouURL default:http://example.com/thank-you/ "http://example.com/thank-you/"]

步骤2:在DOM事件中,从字段中获取感谢网址并重定向用户。

<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
    var thankyouURL = document.getElementById("thankyouURL").value;
    location = thankyouURL;
}, false );
</script>

就是这样。

答案 1 :(得分:1)

我正在尝试做同样的事情,但却没有成功。即将推出on_sent_ok。查看页面末尾的DOM EVENTS页面,您可以找到特定表单的代码。

答案 2 :(得分:1)

****轻松解决方案****

使用EventListener脚本的选项对我不起作用,但是我找到了一个超级简单的解决方案。只需添加名为“联系表7重定向”的Wordpress插件即可。 (请看下面的截图)。

enter image description here

安装插件后,当您进入任何已创建的联系表时,将出现一个名为“重定向设置”的新选项卡(请看第二张屏幕截图)。在这里,您可以选择将项目的现有定制页面之一设置为重定向URL,或为此目的设置外部URL。您还可以使用其他选项,例如设置重定向延迟等。

enter image description here

答案 3 :(得分:0)

functions.php 中添加以下代码(位于主题 - &gt; themeName文件夹中)

add_action( 'wp_footer', 'mycustom_wp_footer' );

function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( e ) {
    var str = window.location.href;
    if( str.includes("flp") ){
        window.location.href = "http://www.YourWebsite.com/facebook-thank-you";
    } else if( str.includes("glp") ){
        window.location.href = "http://www.YourWebsite.com/google-thank-you";
    }
}, false );
</script>
<?php
}

答案 4 :(得分:0)

如果同一页上有多个表单,该怎么办?使用当前答案,这可能是一个问题(例如,ID必须是唯一的,或者重定向ID在页面上,但用户提交了其他表单)。

以下代码尝试修复这些潜在问题。此答案使用CF7中的隐藏表单字段,但允许您为每个表单具有唯一的重定向URL,而不必每次创建新表单时都编辑JS代码(只需使用一致的名称,例如“ url_redirect”,如图所示)即可。下面的代码):

联系表格7:

[hidden url_redirect "http://customurl.com?customvar=1"]

Javascript:

document.addEventListener( 'wpcf7mailsent', function( e ) {

    var url_redirect = '';

    var inputs = e.detail.inputs;
    for ( var i = 0; i < inputs.length; i++ ) {

        if( 'url_redirect' == inputs[i].name ) {//used for misc forms
            url_redirect = inputs[i].value;//set the redirect value from current submitted form
        }

    }

    //Check for redirect 
    if( url_redirect ){
        location = url_redirect;
    }

}, false );