Используйте крючок действия "на отправленном ok" для двух действий - Контактная форма 7/WordPress

77
7

Мне нужно использовать on sent ok action hook для двух действий: 1) для отслеживания адреса электронной почты и 2) для отправки пользователя на страницу с благодарностью. Я попытался добавить это в раздел "Дополнительные настройки" на панели Contact Form 7, но я не уверен, что он работает правильно. По крайней мере, у меня разные результаты при использовании двух разных форм.

on_sent_ok: "fnTransaction('Contacted', 'userid=' + [your-email]);"

on_sent_ok: "location.replace('http://xxxxx.com/thank-you');"

Можно ли использовать дважды два действия, или я могу как-то объединить это? Буду признателен за вашу помощь!

спросил(а) 2021-01-25T18:51:28+03:00 4 месяца, 4 недели назад
1
Решение
100

Вы не могли бы просто вызвать location.replace('http://xxxxx.com/thank-you'); внутри fnTransaction() -function?

редактировать:

напишите новую функцию, которая сочетает в себе:

on_sent_ok: "mySentOkFunction('Contacted', 'userid=' + [your-email]);"

function mySentOkFunction(param1, param2){
fnTransaction(param1, param2);
location.replace('http://xxxxx.com/thank-you');
}

ответил(а) 2021-01-25T18:51:28+03:00 4 месяца, 4 недели назад
46

Я не знаю контактную форму 7, но вы пробовали это:

on_sent_ok: "function(){ fnTransaction('Contacted', 'userid=' + [your-email]);location.replace('http://xxxxx.com/thank-you');}"

ответил(а) 2021-01-25T18:51:28+03:00 4 месяца, 4 недели назад
45

Вы можете использовать:

on_sent_ok: "fnTransaction('Contacted', 'userid=' + [your-email]); location.replace('http://xxxxx.com/thank-you');"

Здесь location.replace не работал, поэтому я использую:

location = 'http://xxxxx.com/thank-you';

Это будет конечный код:

on_sent_ok: "fnTransaction('Contacted', 'userid=' + [your-email]); location = 'http://xxxxx.com/thank-you';"

ответил(а) 2021-01-25T18:51:28+03:00 4 месяца, 4 недели назад
46

wpcf7_contact_form_properties подходом является использование hook wpcf7_contact_form_properties в пользовательском плагине, вот плагин:

/*
Plugin Name: Multiple WPCF7 on_sent_ok
Plugin URI: http://kadimi.com/wpcf7-javascript-programmatically
Description: Use WPCF7 on_sent_ok many times.
Author: Nabil Kadimi
Version: 1.0
Author URI: http://kadimi.com/
*/

function se_21402617_wpcf7_properties( $properties, $contact_form_obj, $unused ){
$properties[ 'additional_settings' ] .=
"\n"
. 'on_sent_ok: "console.log(1);"' . "\n"
. 'on_sent_ok: "console.log(2);"' . "\n"
. 'on_sent_ok: "console.log(3);"' . "\n"
;
return $properties;
}
add_filter( 'wpcf7_contact_form_properties', 'se_21402617_wpcf7_properties' , 10, 2 );

Как вы можете видеть в коде плагина, я использовал on_sent_ok 3 раза.

Вы можете отфильтровать, на какую форму влияет проверка $contact_form_object.

Источник:

Код получен из моего сообщения в блоге.

ответил(а) 2021-01-25T18:51:28+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема