CF7: перенаправить на другой URL в случае ошибки отправки - PullRequest
0 голосов
/ 11 ноября 2018

Я создал форму, используя плагин Contact Form 7. для WordPress.

Моя форма выглядит так:

<label> User Name*
    [text* your-name] </label>

<label> Email Adress*
    [email* your-email] </label>

[submit "Register"]

Я могу определить, пытается ли кто-либо использовать тот же адрес электронной почты (уже зарегистрированный) в этом руководстве, https://cfdbplugin.com/?page_id=904

Но, пока отображается сообщение об ошибке, как я могу позволить странице перенаправить его на другой URL-адрес через некоторое время? Например, чтобы "/ homesite /? Para ="

Может быть, мне нужно что-то сделать с этим кодом

if (is_already_submitted($formName, $fieldName, $_POST[$name])) {
        $result->invalidate($tag, $errorMessage);
    }
}
return $result;

Но я не знаю, как мне изменить этот код. Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 12 ноября 2018

Вы можете сделать это, используя DOM Events. CF7 имеет собственные события DOM, которые можно использовать для перенаправления пользователей на другую страницу. Поскольку вы хотите перенаправить, когда данные формы недействительны, вам нужно использовать wpcf7invalid событие.

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

Быстрый пример:

function my_awesome_cf7_custom_events () { ?>
    <script type="text/javascript">
        document.addEventListener( 'wpcf7invalid', function( event ) {
            if ( 'FORM_ID' == event.detail.contactFormId ) {//<===replace FORM_ID with form id
                location.replace('https://your-new-url/');
            }
        }, false );
    </script>
<?php }
add_action( 'wp_footer', 'my_awesome_cf7_custom_events' );

Замените FORM_ID на свой идентификатор формы и установите свой URL.

Подробнее о событиях DOM CF7

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