我正在使用联系表单7,我正在尝试在成功提交联系表单后重定向到另一个页面。
我尝试使用联系表单7 - 成功页面重定向(https://nl-be.wordpress.org/plugins/contact-form-7-success-page-redirects/),但该插件与主题不兼容并出现一些错误。
有没有其他方法可以在不使用该插件的情况下重定向? 我也找到了https://contactform7.com/redirecting-to-another-url-after-submissions/,但我无法实现它。重定向也只是网站上的一个联系表单所必需的,而不是全部。
谢谢!
学家
答案 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插件即可。 (请看下面的截图)。
安装插件后,当您进入任何已创建的联系表时,将出现一个名为“重定向设置”的新选项卡(请看第二张屏幕截图)。在这里,您可以选择将项目的现有定制页面之一设置为重定向URL,或为此目的设置外部URL。您还可以使用其他选项,例如设置重定向延迟等。
答案 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 );