it-roy-ru.com

Контактная форма 7 - добавить пользовательскую функцию при отправке электронной почты

Просто играть с Wordpress / Contact Form 7.

Можно ли добавить пользовательскую функцию JavaScript при успешном событии отправки по электронной почте?

9
Iladarsda

Запишите это в дополнительных настройках внизу страницы конфигурации контактной формы:

on_sent_ok: "some js code here"

ОБНОВЛЕНИЕ: Вы можете использовать его для вызова таких функций:

on_sent_ok: "your_function();"

Или напишите некоторый код (этот перенаправляет на страницу с благодарностью):

on_sent_ok: "document.location='/thank-you-page/';"
27
Igor Jerosimić

Контактная форма 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!');
});
26
likesalmon

попробуй это:

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

});
3
Erez Lieberman

Просто быстрое замечание, что 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
}
1
Chris Pink

Пример 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';"
1
Clevelus