Контактная форма 7 - Выполнить код ПОСЛЕ отправки почты [закрыто]
Я уже понял, как что-то сделать РАНЬШЕ отправка почты, но мне также нужно, чтобы действие произошло ПОСЛЕ ее отправки.
Я пытался wpcf7_after_send_mail
, но безуспешно...
Любая помощь по этому вопросу была бы весьма признательна.
3 answers
Для тех, кто все еще приземляется здесь, ища способ запустить какой-либо PHP-код после отправки электронного письма, в контактной форме 7 есть крючок wpcf7_mail_sent
именно для этого. Использование выглядит примерно так:
// ...in functions.php
add_action('wpcf7_mail_sent', function ($cf7) {
// Run code after the email has been sent
});
Также есть wpcf7_mail_failed
, который позволяет подключаться, когда электронная почта не работает.
РЕДАКТИРОВАТЬ:
Пожалуйста, обратите внимание, что с 2017 года 'on_sent_ok' устарел. Это означает, что ваш код перестанет работать в какой-то момент в будущем (вероятно, к концу 2017 года). Рекомендуемым решением является прямое использование прослушивателей событий DOM. Например, если вы использовали:
on_sent_ok: "ga( 'send', 'event', 'Contact Form', 'submit' );"
Вы должны заменить его на:
document.addEventListener( 'wpcf7mailsent', function( event ) {
ga( 'send', 'event', 'Contact Form', 'submit' );
}, false );
Код JavaScript может быть размещен, например, в нижнем колонтитуле вашей страницы.
ОРИГИНАЛЬНЫЙ ОТВЕТ:
Ладно, разобрался. В настройках конкретной формы перейдите на вкладку Дополнительные поля. Введите следующее:
on_sent_ok: "location.replace('http://www.website-redirect.com');"
Теперь это работает для меня как заклинание. Надеюсь, это поможет и другим разработчикам в будущем.
Я знаю, что изображение на голландском языке... но вы не можете пропустить это с большими красными линиями вокруг названия вкладки.
Использование on_sent_ok, как описано в contactform7.com/additional-settings может быть очень полезно для добавления некоторых простых JavaScript, таких как перенаправление на другую страницу.
Однако он довольно подвержен сбоям из-за конфликтов Javascript либо с вашей текущей темой WordPress, либо с одним из других плагинов, которые вы используете.
On_sent_ok - это абсолютно последнее, что выполняется в контактной форме 7, поэтому любой вмешивающийся конфликт Javascript может остановить это завершение.
В качестве альтернативы Контактная форма 7 содержит большое количество крючков, которые перечислены в http://hookr.io/plugins/contact-form-7 /. Они могут обеспечить более целенаправленное и надежное решение.