我尝试在联系表单7(Wordpress插件)的表单提交后使用on_sent_ok
重定向,但由于某些原因它无效:
on_sent_ok: "location.replace('http://www.company.com/thank-you/');"
为什么这不起作用?
我使用的是CF7版本2.2.1和Wordpress 3.5.0。
答案 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处理。
使用Firebug或Chrome 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)。