2016-12-01 5 views
0

Мне нужно использовать контакт 7, чтобы иметь встроенную форму, которая отправляет информацию на мою учетную запись вирусных циклов.Контактная форма 7: несколько строк javascript на submit

Необходимо запустить следующий код после того, как форма отправлена, т.е. on_sent_ok:

VL.options.form_fields.form_firstName = $("#firstname").val(); //capture the first name 
VL.options.form_fields.form_email = $("#email").val(); //capture the email 
VL.options.form_fields.form_lastName = $("#lastname").val(); //capture the last name (if applicable in your form) 
//submit the participant to Viral Loops 
VL.createLead(function() { 
//any logic to run after the participation 
}); 

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

Заранее спасибо! :)

+1

Это не самый читаемый, но почему бы не просто поместить все ваши js на одну строку? Точка с запятой позаботится о том, чтобы отличить конец какого-либо одного утверждения. –

+0

Это или вы могли бы поместить его как функцию во внешний файл JS, который вы указали (https://developer.wordpress.org/reference/functions/wp_enqueue_script/), и вызвать функцию из on_sent_ok – Jonathan

ответ

2

Как уже упоминалось в комментариях, либо преуменьшать его:

on_sent_ok: "VL.options.form_fields.form_firstName = $('#firstname').val();VL.options.form_fields.form_email = $('#email').val();VL.options.form_fields.form_lastName = $('#lastname').val();VL.createLead(function() {});" 

Или вы можете создать файл JavaScript в вашем (ребенок) директории темы в js/script.js, а затем добавить это к functions.php в вашем (ребенок) тематический каталог:

/** 
* Enqueue a script with jQuery as a dependency. 
*/ 
function so_40916565_enqueue() { 
    wp_enqueue_script('so-40916565', get_stylesheet_directory_uri() . '/js/script.js', array('jquery')); 
} 
add_action('wp_enqueue_scripts', 'so_40916565_enqueue'); 

и вновь созданный файл JavaScript:

function js_40916565() { 
    VL.options.form_fields.form_firstName = $("#firstname").val(); //capture the first name 
    VL.options.form_fields.form_email = $("#email").val(); //capture the email 
    VL.options.form_fields.form_lastName = $("#lastname").val(); //capture the last name (if applicable in your form) 
    //submit the participant to Viral Loops 
    VL.createLead(function() { 
    //any logic to run after the participation 
    }); 
} 

И в контактной форме 7:

on_sent_ok: "js_40916565();" 

Я на самом деле не проверял, поэтому, если он не работает прямо из коробки, оставьте комментарий.

+0

Это не работает :( Если мои JS имеют это в начале? '[текст * Имя заполнителем "Имя *"]

[текст * фамилия placeholder "фамилия *"]

[электронная почта * Адрес электронной почты заполнителем "E-mail адрес *"]

[Текст * страна заполнитель "Страна *"]

[отправить "Отправить"]

'Я также добавил строка страны в сценарий 'VL.options.form_fields.form_country = $ (" # страна "). val(); // захватить страну (если применимо в вашей форме) ' –

+0

Нет, извините. Возможно, мой пост недостаточно ясен. Код в блоке 'function js_40916565' должен находиться в вашем файле' js/script.js', ничего больше (если файл уже не существует). 'Enqueue сценарий с jQuery как блок зависимости 'должен находиться в вашем файле' functions.php', а on_sent_ok должен явно находиться в Contact Form 7 в администраторе WordPress. – Jonathan

+0

Да, я сделал это, но я использую тему Gem, в которой есть пользовательские js в параметрах темы - я добавил бит 'function'. Бит 'enqueue' находится в моем файле functions.php, в файле уже был'