Контактная форма 7 - Выполнить код ПОСЛЕ отправки почты [закрыто]


Я уже понял, как что-то сделать РАНЬШЕ отправка почты, но мне также нужно, чтобы действие произошло ПОСЛЕ ее отправки.

Я пытался wpcf7_after_send_mail, но безуспешно...

Любая помощь по этому вопросу была бы весьма признательна.

Author: Menno van der Krift, 2015-07-30

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, который позволяет подключаться, когда электронная почта не работает.

 13
Author: adamtomat, 2017-01-05 14:10:19

РЕДАКТИРОВАТЬ:

Пожалуйста, обратите внимание, что с 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');"

Теперь это работает для меня как заклинание. Надеюсь, это поможет и другим разработчикам в будущем.

enter image description here

Я знаю, что изображение на голландском языке... но вы не можете пропустить это с большими красными линиями вокруг названия вкладки.

 7
Author: Menno van der Krift, 2017-11-08 13:39:26

Использование on_sent_ok, как описано в contactform7.com/additional-settings может быть очень полезно для добавления некоторых простых JavaScript, таких как перенаправление на другую страницу.

Однако он довольно подвержен сбоям из-за конфликтов Javascript либо с вашей текущей темой WordPress, либо с одним из других плагинов, которые вы используете.

On_sent_ok - это абсолютно последнее, что выполняется в контактной форме 7, поэтому любой вмешивающийся конфликт Javascript может остановить это завершение.

В качестве альтернативы Контактная форма 7 содержит большое количество крючков, которые перечислены в http://hookr.io/plugins/contact-form-7 /. Они могут обеспечить более целенаправленное и надежное решение.

 2
Author: buzztone, 2015-08-01 05:42:36