我尝试on_sent_ok
在联系表单 7(Wordpress 插件)的表单提交后使用重定向,但由于某种原因它不起作用:
on_sent_ok: "location.replace('http://www.company.com/thank-you/');"
为什么这行不通?
我正在使用 CF7 版本 2.2.1 和 Wordpress 3.5.0。
我尝试on_sent_ok
在联系表单 7(Wordpress 插件)的表单提交后使用重定向,但由于某种原因它不起作用:
on_sent_ok: "location.replace('http://www.company.com/thank-you/');"
为什么这行不通?
我正在使用 CF7 版本 2.2.1 和 Wordpress 3.5.0。
联系表格 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>
我自己的 Wordpress 主题也有同样的问题。一个小时后,我了解到忘记添加<?php wp_footer(); ?>
footer.php,因此无法加载重要的 Contact 7 脚本。当我添加它时,一切正常。
我已经尝试了这两种解决方案: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/");
作品很好。
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/';"
在附加设置中
联系表格 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/
我为此使用以下代码。我把它放在一行中只是为了节省几个字符。如有必要,您仍然可以使用 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)。
我在联系表格 7 最新版本 4.8.1 中遇到了同样的问题。
最后使用自定义 jquery 代码解决了问题。
if ($('.wpcf7-form.sent').length) {
$(location).attr('href', 'http://www.example.com')
}
注意:联系表单 7 表单成功提交添加类“已发送”到表单字段。