【发布时间】:2016-12-15 07:23:52
【问题描述】:
我已经实现了这两个插件:
- 联系表格 7,以及
- 联系表 7 成功页面重定向。
这些插件有冲突。
首先,客户端验证不起作用。
其次,成功时它不会重定向到成功页面。
【问题讨论】:
标签: javascript php wordpress
我已经实现了这两个插件:
这些插件有冲突。
首先,客户端验证不起作用。
其次,成功时它不会重定向到成功页面。
【问题讨论】:
标签: javascript php wordpress
如果您只想在消息成功后重定向用户,那么更好的方法是使用 javascript 挂钩。
移除成功页面重定向插件。
on_sent_ok: "location = 'http://example.com/';"
只需转到联系表 7 中的“附加设置”选项卡并粘贴此内容,不带任何前导空格,将您的成功页面网址替换为 example.com。
【讨论】:
要进行客户端验证,请将这些行放在 footer.php 中
<script type='text/javascript' src='/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=3.5.2'></script>
<script type='text/javascript' src='/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js?ver=3.40.0-2013.08.13'></script>
<script type='text/javascript'>
请自行复制语法,这是 cdata .>var _wpcf7 = {"loaderUrl":"/wp-content/plugins/contact-form-7/images/ajax-loader.gif","sending":"Sending .. ."}; ]]>
现在在插件目录中的 cf7-success-page-redirects.php 中。
改变这个功能
function cf7_success_page_form_submitted( $contact_form ) {
$contact_form_id = $contact_form->id();
// Send us to a success page, if there is one
$success_page = get_post_meta( $contact_form_id, '_cf7_success_page_key', true );
if ( !empty($success_page) ) {
$items = array();
$items['mailSent'] = true;
$items['redirectLink'] =get_permalink( $success_page );
echo wp_json_encode( $items );
die();
}
}
现在在插件的联系表格7目录中找到js文件夹,然后查找script.php并替换这一堆代码。
else if (1 == data.mailSent) {
$responseOutput.addClass('wpcf7-mail-sent-ok');
$form.addClass('sent');
if (data.onSentOk) {
$.each(data.onSentOk, function(i, n) { eval(n) });
}
$(data.into).trigger('wpcf7:mailsent');
$(data.into).trigger('mailsent.wpcf7'); // deprecated
location.assign(data.redirectLink);
}
我已经在我的网站上为客户解决了这个问题,希望这对将来的人有所帮助。
【讨论】:
在 functions.php 中使用以下代码(位于主题 -> 主题名称文件夹中)。
把它放在文件的末尾。
add_action( 'wp_footer', 'mycustom_wp_footer' );
function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( e ) {
var str = window.location.href;
if( str.includes("flp") ){
window.location.href = "http://www.WebsiteName.com/facebook-thank-you";
} else if( str.includes("glp") ){
window.location.href = "http://www.WebsiteName.com/google-thank-you";
}
}, false );
</script>
<?php
}
完美运行..
【讨论】: