Используйте хук действия «при отправке ok» для двух действий — контактная форма 7/WordPress

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

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

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

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


person Charles Ingalls    schedule 28.01.2014    source источник


Ответы (4)


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

изменить:

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

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

function mySentOkFunction(param1, param2){
    fnTransaction(param1, param2);
    location.replace('http://xxxxx.com/thank-you');
}
person hildende    schedule 28.01.2014
comment
fnTransaction() предоставляется сторонней компанией PPC, поэтому, к сожалению, я не могу редактировать эту функцию. - person Charles Ingalls; 28.01.2014

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

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

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

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';"
person Daniel Kossmann    schedule 29.10.2014

Чистый подход — использовать хук wpcf7_contact_form_properties в пользовательском плагине, вот плагин:

/*
Plugin Name: Multiple WPCF7's on_sent_ok
Plugin URI: http://kadimi.com/wpcf7-javascript-programmatically
Description: Use WPCF7's 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.

Источник:

Код взят из моего сообщения в блоге здесь.

person Nabil Kadimi    schedule 13.07.2016