Предотвратить перенаправление cf7 на спасибо при ошибке в WordPress - PullRequest
1 голос
/ 23 мая 2019

У меня есть cf7 с 3 полями: имя, адрес электронной почты и поле выбора и в раскрывающемся списке, в зависимости от выбора формы перенаправления на разные страницы благодарности. Проблема заключается в том, что если форма показывает какое-либо сообщение об ошибке, например, произошла ошибка при отправке сообщения, неверный ввод и т. Д., Форма не должна перенаправляться на страницу с благодарностью.

Я пытался связаться с формой 7 пользовательских событий DOM, таких как wpcf7mailfailed, wpcf7invalid.

function cf7_footer_script(){ ?>

<script>
document.addEventListener( 'wpcf7submit', function( event ) {
    if ( '7084' == event.detail.contactFormId ) {

      var lpLocation =  document.getElementById("careers").value;

      if (lpLocation == "Hire better employees") {
        location = 'url1';
      } else if (lpLocation == "I want to match people to the best careers") {
        location = 'url2';
      }
      else if(lpLocation=="I want to learn more about both"){
        location = 'url3';
      }

    }
}, false ); 
</script>

<?php } 

add_action('wp_footer', 'cf7_footer_script');

Я хочу предотвратить перенаправление при ошибке.

Ответы [ 3 ]

1 голос
/ 23 мая 2019

Вам просто нужно изменить пользовательскую DOM-форму контактной формы 7, использовать wpcf7mailsent вместо wpcf7submit.

wpcf7mailsent - Срабатывает, когда отправка формы Ajax успешно завершена и письмо отправлено.


<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
    if ( '7084' == event.detail.contactFormId ) {

      var lpLocation =  document.getElementById("careers").value;

      if (lpLocation == "Hire better employees") {
        location = 'url1';
      } else if (lpLocation == "I want to match people to the best careers") {
        location = 'url2';
      }
      else if(lpLocation=="I want to learn more about both"){
        location = 'url3';
      }

    }
}, false ); 
</script>

<?php } 

add_action('wp_footer', 'cf7_footer_script');
0 голосов
/ 23 мая 2019

Используйте wpcf7mailsent вместо wpcf7submit событие.

0 голосов
/ 23 мая 2019
You can try with this "document.addEventListener( 'wpcf7mailsent', function( event ) "
function cf7_footer_script(){ ?>

<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
    if ( '7084' == event.detail.contactFormId ) {

      var lpLocation =  document.getElementById("careers").value;

      if (lpLocation == "Hire better employees") {
        location = 'url1';
      } else if (lpLocation == "I want to match people to the best careers") {
        location = 'url2';
      }
      else if(lpLocation=="I want to learn more about both"){
        location = 'url3';
      }

    }
}, false ); 
</script>

<?php } 

add_action('wp_footer', 'cf7_footer_script');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...