联系表单7重定向on_sent_ok dons'不起作用

Contact Form 7 redirect with on_sent_ok doesn't work?

本文关键字:dons 不起作用 ok sent 表单 重定向 on 联系      更新时间:2023-09-26

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

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

为什么这不起作用?

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

联系表格7感谢页面重定向旧方法:不再建议使用on_set_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>

我自己的Wordpress主题也有同样的问题。一个小时后,我明白了忘记在footer.php中添加<?php wp_footer(); ?>,所以重要的是无法加载Contact 7脚本。当我加上它时,一切都奏效了。

on_sent_ok不在联系表单7中工作通常表示Javascript与您当前的WordPress主题或您正在使用的其他插件发生冲突-请参阅联系表单7电子邮件问题-那里有一个链接涵盖了Javascript冲突

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

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

使用Firebug或Chrome开发工具来详细检查Javascript冲突。

请参阅http://wiki.simple-press.com/installation/troubleshooting/plugin-conflicts/以获得一般指导。

试试这个。。。

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

在附加设置中

我尝试过这两种解决方案:on_set_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/");效果不错。

联系表单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/

我在最新版本4.8.1的联系表格7中遇到了同样的问题。

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

if ($('.wpcf7-form.sent').length) {
      $(location).attr('href', 'http://www.example.com')
    }

注意:联系表单7表单成功提交,将类"已发送"到表单字段。

我使用以下代码。我把它放在一行中只是为了保存几个字符。如果有必要,您仍然可以使用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)。