1

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

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

为什么这行不通?

我正在使用 CF7 版本 2.2.1 和 Wordpress 3.5.0。

4

8 回答 8

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>
于 2018-02-20T06:04:46.983 回答
2

我自己的 Wordpress 主题也有同样的问题。一个小时后,我了解到忘记添加<?php wp_footer(); ?>footer.php,因此无法加载重要的 Contact 7 脚本。当我添加它时,一切正常。

于 2017-02-27T19:06:43.483 回答
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/"); 作品很好。

于 2015-02-26T04:33:45.607 回答
1

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

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

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

使用FirebugChrome 开发工具详细检查 Javascript 冲突。

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

于 2014-01-05T13:40:23.940 回答
1

尝试这个...

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

在附加设置中

于 2013-07-29T15:17:55.870 回答
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/

于 2017-08-24T07:37:35.103 回答
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)。

于 2020-11-12T20:09:39.243 回答
0

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

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

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

注意:联系表单 7 表单成功提交添加类“已发送”到表单字段。

于 2017-08-09T14:48:52.197 回答