【发布时间】:2012-07-05 04:47:21
【问题描述】:
只是在玩Wordpress / Contact Form 7。
是否可以在成功的电子邮件发送事件中添加自定义 javascript 函数?
【问题讨论】:
-
也许这对wordpress.stackexchange.com有好处
只是在玩Wordpress / Contact Form 7。
是否可以在成功的电子邮件发送事件中添加自定义 javascript 函数?
【问题讨论】:
在联系表单配置页面底部的附加设置中写入:
on_sent_ok: "some js code here"
更新: 你可以用它来调用这样的函数:
on_sent_ok: "your_function();"
或者写一些代码(这个重定向到感谢页面):
on_sent_ok: "document.location='/thank-you-page/';"
【讨论】:
[text* name id:your-name] 设置你的表单,然后在on_sent_ok 上使用像这样jQuery('#your-name').val() 的jQuery 来获取它的价值。
your_function 需要在页面的任何位置或页面中包含的 javascript 文件中定义。它与任何其他 javascript 函数一样,只是需要在调用之前定义。
Contact Form 7 发出许多 Javascript 事件,这些事件冒泡到文档对象。在 4.1 版中,它们可以在 contact-form-7/includes/js/scripts.js 中找到。如果你使用 jQuery,你可以像这样访问这些事件:
$(document).on('spam.wpcf7', function () {
console.log('submit.wpcf7 was triggered!');
});
$(document).on('invalid.wpcf7', function () {
console.log('invalid.wpcf7 was triggered!');
});
$(document).on('mailsent.wpcf7', function () {
console.log('mailsent.wpcf7 was triggered!');
});
$(document).on('mailfailed.wpcf7', function () {
console.log('mailfailed.wpcf7 was triggered!');
});
【讨论】:
试试这个:
$( document ).ajaxComplete(function( event,request, settings ) {
if($('.sent').length > 0){
console.log('sent');
}else{
console.log('didnt sent');
}
});
【讨论】:
示例 1:
on_sent_ok: "location = 'http://mysite.com/thanks/';"
示例 2: 在表单脚本中:
<div id="hidecform">
<p>You name<br />
[text* your-name] </p>
...
</div>
然后在“附加设置”下的管理页面底部输入以下内容:
on_sent_ok: "document.getElementById('hidecform').style.display = 'none';"
【讨论】:
请注意,不推荐使用 on_sent_ok。
Contact form 7 现在使用事件监听器,像这样;
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
if ( '11875' == event.detail.contactFormId ) { // if you want to identify the form
// do something
}
}, true );
</script>
然后将其添加到 wp_footer 操作中。
像这样;
add_action( 'wp_footer', 'wp1568dd4_wpcf7_on_sent' );
function wp1568dd4_wpcf7_on_sent() {
// the script above
}
【讨论】: