9

只是玩弄Wordpress / Contact Form 7

是否可以在成功的电子邮件发送事件中添加自定义 javascript 函数?

4

5 回答 5

27

在联系表单配置页面底部的附加设置中写入:

on_sent_ok: "some js code here"

更新:您可以使用它来调用这样的函数:

on_sent_ok: "your_function();"

或者写一些代码(这个重定向到感谢页面):

on_sent_ok: "document.location='/thank-you-page/';"
于 2012-07-04T17:19:27.747 回答
27

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!');
});
于 2015-03-03T21:59:45.833 回答
3

试试这个:

$( document ).ajaxComplete(function( event,request, settings ) {
   if($('.sent').length > 0){
       console.log('sent');
   }else{
       console.log('didnt sent');
   }

});
于 2015-08-17T14:18:33.787 回答
2

示例 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';"
于 2013-06-10T10:30:51.617 回答
2

请注意,不推荐使用 on_sent_ok 。

联系表格 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
}
于 2017-10-23T14:03:12.520 回答