使用on_sent_ok联系表单7重定向不起作用?

时间:2013-07-29 09:57:38

标签: javascript wordpress wordpress-plugin contact-form-7

我尝试在联系表单7(Wordpress插件)的表单提交后使用on_sent_ok重定向,但由于某些原因它无效:

on_sent_ok: "location.replace('http://www.company.com/thank-you/');"

为什么这不起作用?

我使用的是CF7版本2.2.1和Wordpress 3.5.0。

8 个答案:

答案 0 :(得分:4)

联系表格7感谢您页面重定向旧方法:不再推荐使用on_sent_ok挂钩。我有一个可以复制和粘贴的代码。您可以在functions.php文件的底部添加该方法,添加以下代码:

<pre>
<code>
add_action( 'wp_footer', 'mycustom_wp_footer' );

function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
   if ( '97' == event.detail.contactFormId ) { 
    location = 'http://www.vizistata.com/affordable-logo-designs.php';
    } 
    else if ( '634' == event.detail.contactFormId ) { // 634 is the form id
        location = 'http://www.vizistata.com/#blog';
    } 

    else if ( '635' == event.detail.contactFormId ) { // 635 is the form id
        location = 'http://www.vizistata.com/#contact';
    } 

    else if ( '636' == event.detail.contactFormId ) { 
        location = 'http://www.vizistata.com/#services';
    } 

    else if ( '94' == event.detail.contactFormId ) { 
        location = 'http://www.vizistata.com/#about';
    } 


    else { // Sends submissions on all unaccounted for forms to the third thank you page
        location = 'http://www.vizistata.com/';
    }
}, false );
</script>
<?php
}</pre>
</code>

答案 1 :(得分:3)

试试这个......

on_sent_ok: "location = 'http://example.com/';"

在其他设置中

答案 2 :(得分:2)

我自己的Wordpress主题遇到了同样的问题。一小时后,我明白忘记在footer.php中添加<?php wp_footer(); ?>,因此无法加载重要的Contact 7脚本。当我添加它时,它可以工作。

答案 3 :(得分:1)

on_sent_ok在联系表单7中不起作用通常表示Javascript与您当前的WordPress主题或您正在使用的其他插件之一发生冲突 - 请参阅Contact Form 7 Email Issues - 其中有一个链接 Javascript Conflicts

请记住,一个脚本中的问题可能会导致另一个脚本出现问题。 例如,一些jQuery错误可以阻止jQuery处理更多脚本,这可能使罪魁祸首难以找到。

您的某个插件或主题javascript文件中的jQuery错误可能会在进入CF7脚本之前停止jQuery处理。

使用FirebugChrome Dev Tools详细检查Javascript冲突。

有关一般指导,请参阅http://wiki.simple-press.com/installation/troubleshooting/plugin-conflicts/

答案 4 :(得分:1)

我已尝试过两种解决方案:on_sent_ok无法正常工作,添加重定向javascript也无法完成此任务。 最后,我发现自己在'contact-form-7'的'modules'文件夹中编辑了'submissions.php'文件。 寻找:private function submit() 在那里,找一下elseif ( $this->mail()我评论了$this->response = $contact_form->message( 'mail_sent_ok' );,然后放header("Location: www.somesite.com/"); 效果很好。

答案 5 :(得分:1)

联系表单7提交后重定向到另一个URL

首先,您需要在新版本上更新联系表单7我在v7.4.9上尝试,然后在任何页面中放置联系表单短代码并将此JS脚本放在页面的任何位置并更改需要重定向页面的URL提交后

<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
location = 'http://example.com/';
}, false );
</script> 

如需更多信息,请点击联系表格7官方网站https://contactform7.com/redirecting-to-another-url-after-submissions/

答案 6 :(得分:0)

我在联系表格7最新版本4.8.1中面临同样的问题。

最终使用自定义jquery代码解决了问题。

# Note the auto.assign = FALSE parameter specification (this will avoid assigning the data to JDIA in the global environment.:

dataTableTemp <- getSymbols('DJIA', src='FRED', auto.assign = FALSE)
x = data.table("date" = index(dataTableTemp), coredata(dataTableTemp))

注意:联系表格7表格成功提交添加课程&#34;已发送&#34;形成领域。

答案 7 :(得分:0)

为此,我使用以下代码。我把它放在一行中只是保存了几个字符。如有必要,您仍然可以使用is_page之类的东西,以便仅对还包含表单的页面输出JavaScript。

/* Inline script for redirect cf7 to thank you page */
// https://contactform7.com/redirecting-to-another-url-after-submissions/
add_action('wp_footer', 'cf7__redirect_thankyoupage');
function cf7__redirect_thankyoupage() {
    ?><script>document.addEventListener('wpcf7mailsent',function(event) {location='/thank-you';}, false );</script><?php
}

如果您正在使用WPML,而只想将其输出为一种语言,则可以使用以下代码:

if (null !== ICL_LANGUAGE_CODE && ICL_LANGUAGE_CODE == "en"){ ... }

最好将“感谢页面”设置为Noindex(通过Robots.txt / Meta)。