WordPress contact form 7 дополнительные настройки

Я уже вам расказывал как можно добавить событие отправленного сообщения в contact form 7 и как отслеживать цели в WordPress, но с версии 4.2 плагин CF7 позволяет указывать больше настроек. Сегодня поговорим о всех дополнительных настройках а также пользовательских событиях (они же Custom DOM Events) для плагина WordPress Contact Form 7.

В этой статье описывается блок посвященный только дополнительным настройкам плагина, если вы искали пошаговую настройку для добавления Contact Form 7 на сайт перейдите по этой ссылке: CF7 или воспользуйтесь навигацией по странице ниже.

Если нужно решить проблему с плагином: contact form 7 не работает - можно перейти по указанной ссылке.

 
Навигация по странице:
  1. дерево клиентских событий contact form 7 Custom DOM Events
  2. contact form 7 дополнительные настройки
  3. contact form 7 google analytics
  4. contact form 7 цели метрика
  5. событие для кнопки submit / отправить
  6. событие сообщение отправлено
  7. вывод CF7

Если вы искали информацию о том, как создать форму обратная связь wordpress без плагина или вам нужна красивая обратная связь wordpress - вы можете перейти по ссылкам и прочитать интересующею вас инфу.

Пользовательские события Custom DOM Events для Contact Form 7

к менюВ связи с тем, что разработчики плагина CF7 решили убрать дополнительную настройку "on_sent_ok" и "on_submit", в плагин с версии 4.9 была добавлена возможность создания дерева пользовательских / клиентских событий. Ниже я приведу пример всех событий и покажу как переписать функцию чтоб перейти с on_sent_ok и on_submit на события wpcf7mailsent и wpcf7submit.

Новые события CF7:

wpcf7submit: - событие, которое возникает после отправки формы, не зависимо от результата. Это новый аналог настройки "on_submit", который сработает в любом случаи когда нажали на кнопку отправить форму. Даже если пользователь не заполнил все поля или получил ошибку это событие будет срабатывать. Пример использования:

document.addEventListener( 'wpcf7submit', function( event ) {
if(event.detail.contactFormId=="32"){ // 32 это id формы для отслеживания
alert("У формы №32 была нажата кнопка отправить");
}
}, false );

wpcf7mailsent: - новый аналог "on_sent_ok", срабатывает только когда пользователь получит сообщение о том что его сообщение "успешно отправленно".

document.addEventListener( 'wpcf7mailsent', function( event ) {
if(event.detail.contactFormId=="32"){ // 32 это id формы для отслеживания
alert("Формы №32 была отправлена успешно");
}
}, false );

wpcf7invalid: - событие, которое сработает если пользователь пытался отправить форму с не заполоненным обязательным полем

document.addEventListener( 'wpcf7invalid', function( event ) {
if(event.detail.contactFormId=="32"){ // 32 это id формы для отслеживания
alert("Формы №32 не была отправлена, заполнены не все поля");
}
}, false );

wpcf7spam: - срабатывает, когда есть подозрение что это спам и отправка формы не идет

wpcf7mailfailed: - новое событие, которое срабатывает когда сервер не может отправить письмо. (Очень удобно, для тех кто дорожит каждым заказом и хочет в метрике или аналитике отследить всех пользователей что не смогли отправить сообщение из сайта)

 

Как пользоваться новыми событиями Contact Form 7

Пошаговая инструкция для добавления клиентских событий dom в Contact Form 7:

1) Создать файл яваскрипт, например myscript.js у себя на ПК

2) Записать в него нужный код, например вот этот:

document.addEventListener( 'wpcf7submit', function( event ) {
if(event.detail.contactFormId=="32"){ // 32 это id формы для отслеживания
alert("У формы №32 была нажата кнопка отправить");
}
}, false );

Учтите что ваша форма может иметь другой ИД, не 32. ИД можно посмотреть вот так:

3) Сохранить файл.

4) Записать его в вашу тему на сервере, можно в корень темы.

5) Открыть файл темы functions.php и в самое начало добавить код подключения этого файла:

add_action('wp_enqueue_scripts', 'add_scripts_1');
function add_scripts_1(){
wp_enqueue_script("cf7_list_function", get_bloginfo('stylesheet_directory').'/myscript.js',array('jquery'),"0.1",true);
}

6) Сохранить изменения.

 

Дополнительные настройки для Contact Form 7

к менюс версии плагина 4.9 список дополнительных настроек для contact form 7 - уменьшен

on_sent_ok: - (согласно документации CF7 эта дополнительная настройка будет отключена в 2017 году) событие contact form 7, срабатывает, когда сообщение было успешно отправлено. Подходит для отслеживания информации в яндекс метрике (цели) или в целях google analytics. Для того чтоб воспользоваться этим событием достаточно вставить функцию вызова javascript кода или сам код, например вот так:

on_sent_ok: "alert('сообщение отправлено успешно');"

on_submit: - (согласно документации CF7 эта дополнительная настройка будет отключена в 2017 году) событие contact form 7, срабатывает когда была нажата кнопка отправить / send / submit. Идеально подходит для целей google analytics и яндекс метрика цели, ведь вы всегда можете узнать почему успешная отправка сообщения не произошла. Использовать это событие можно аналогично предыдущему on_sent_ok:

on_submit: "alert('вы нажали на кнопку отправить');"

demo_mode: - дополнительный параметр CF7, который позволяет тестировать работу формы без отправки сообщения по почте. Так сказать тестовый режим формы. Чтобы включить его, достаточно написать в дополнительные настройки вот такой код:

demo_mode: on

acceptance_as_validation: - дополнительный параметр CF7, он работает с чекбоксом acceptance и делает кнопку отправки сообщения активной для нажатия, даже когда acceptance равняется false. Включается в дополнительных настройках CF7 вот такой опцией:

acceptance_as_validation: on

На данный момент это все contact form 7 дополнительные настройки, следите за этим постом чтобы быть в курсе событий. Новые настройки этого плагина будут публиковаться здесь после их выхода.

 

Настройка целей google analytics в contact form 7

к меню Сейчас поробую расказать вам как настроить цели в contact form 7 google analytics.

Извините, по состоянию на 26.06.17 этот код не актуальный в связи с тем что гугл обновил код вызова целей. Ожидайте новой информации. Спасибо.

Для начала вы должны зарегистрироваться в google analytics ( www.google.com/analytics), а также зайти в "Администратор", выбрать "Аккаунт" и "Ресурс", создать "Представление" и там настроить цели.

Читать более детально

Создаем представление:

contact form-7 google analytics

А также делаем цель с настройками, текстовые поля могут отличаться:

CF7 цели google analytics

После того как вы создали цель к ней можно доступиться по через такой код:

_gaq.push(['_trackEvent', 'order', 'view'])

 

[свернуть]

Предположим у нас есть вот такой код для создания цели в google analytics: _gaq.push(['_trackEvent', 'order', 'view']) , теперь мы можем написать обработчик события отправленного сообщения в contact form 7:

on_sent_ok: "_gaq.push(['_trackEvent', 'order', 'view']);"

если мы хотим отслеживать все успешные отправки формы, или вот такой код:

on_submit: "_gaq.push(['_trackEvent', 'order', 'view']);"

если нам нужны все клики (с удачной и неудачной отправкой формы) по кнопке "Отправить"

Записывать этот код нужно в дополнительные настройки contact form 7.

 

Настройка contact form 7 цели метрика

к менюНастройка целей в метрике немного попроще чем в гугле. Механизм работы аналогичный, создаем аккаунт в метрике, создаем цель и получаем код.

Не знаете как получить код, воспользуйтесь инструкцией ниже:

В связи с тем что плагин Contact Form 7 прекратит в этом году поддержку on_sent_ok и on_submit мы вынуждены переписать пошаговую инструкцию. Смотрите внимательно какая у вас версия плагина, возможно его нужно обновить чтоб инструкция заработала

Инструкция для версии плагина CF7 4.9 и выше

1) Регистрируемся в яндекс метрике. Для этого можно воспользоваться ссылкой метрика. Если у вас нет аккаунта на яндексе, то можно тут зарегистрироваться.

2) Добавляем наш сайт в метрику и закидываем себе на сайт код, который дает яндекс. Код метрики можно добавить в файл footer.php или header.php вашей темы.

3) В разделе настройка, выбираем вкладку цели, смотрите скин ниже, он открывается во всплывающем окне:

img-cf7-metr-1

4) Нажимаем на кнопку "добавить цель"  и заполняем ее как у меня на скине, в конце нужно нажать кнопку "Добавить цель"

img-cf7-metr-2

5) У нас есть цель, если вы задали ее имя как я "Form1" то вам нужно по этой схеме вставить код вызова:

yaCounterXXXXXX.reachGoal('TARGET_NAME');
где:
XXXXXX — номер вашего id из метрики;
TARGET_NAME — идентификатор вашей цели (у меня это "Form1")

Как получить идентифакотр, да очень просто, в коде, который вы добавляли на сайт, от метрики, можно его подсмотреть, вот например у меня он такой:

w.yaCounter24933886 = new Ya.Metrika({id:24933886,

где 24933886 и есть мой ИД. В итоге код будет вот таким:

yaCounter24933886.reachGoal('Form1');

Предположим что у нас получился вот такой код: yaCounter2015xxxx.reachGoal('Form1'); теперь нам нужно открыть в редакторе файл темы footer.php и после кода подключения метрики добавить вот такой код:

<script>
document.addEventListener( 'wpcf7submit', function( event ) {
if(event.detail.contactFormId=="6946"){ // 6946 это id формы для отслеживания
yaCounter2015xxxx.reachGoal('Form1');
}
}, false );
</script>

 

вместо wpcf7submit можно подставить событие wpcf7mailsent

Как вы поняли id формы мы берем от сюда:

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

 

Событие contact form 7 для кнопки submit / отправить

к менюЯ хотел бы более детально остановится на событиях плагина. Событие wpcf7submit позволяет отслеживать нажатие по кнопке отправить или submit. Это довольно удобный функционал в дополнительных настройках, который позволяет делать собственные эффекты при клике по кнопке отправить и многое другое. Для вызова достаточно в скриптах или в футере прописать вот такой слушатель события:

document.addEventListener( 'wpcf7submit', function( event ) {
goBlackFon();
}, false );

, где goBlackFon - это ваша функция с записанными спец эффектами.

Список событий позволяет менять настройки, например если использовать wpcf7invalid то мы можем изменить стиль сайта, когда пользователь не заполнил все поля.

Событие сообщение отправлено в contact form 7

к менюwpcf7mailsent - срабатывает когда сообщение было отправлено успешно и не работает когда человек не заполнил полностью нужные данные. На базе этого события можно реализовать: гугл и яндекс цели, разного рода эффекты на страница после отправки сообщения, редиректы на другие страницы после отправки почты, добавление или расширение функционала (после того как человек заполнил и успешно отправил контактные данные о себе), вызов аякс приложения для последующей работы с ним и многое другое. Мне приходилось реализовывать генерацию ссылки на скрытый файл после заполнения формы и это удалось только благодаря событию wpcf7mailsent. Предположим нам нужно вызвать свою функцию после отправки сообщения, это делается вот так:

document.addEventListener( 'wpcf7mailsent', function( event ) {
myFunction();
}, false );

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

Например, очень затребованная задача, редирект после отправки формы с сайта, делается вот так:

document.addEventListener('wpcf7mailsent', function( event ) {
if(event.detail.contactFormId=="6946"){ // 6946 это id формы для отслеживания
setTimeout(function(){window.location.href='https://help-wp.ru';},1);
}
}, false );

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

Вывод Contact Form 7 в шаблон

к менюРешил немножко дополнить этот пост информацией о выводе плагина CF7 в произвольное место шаблона, так как многих читателей интересует именно этот вопрос.

Сделать вывод Contact Form 7 в виджет или пост довольно просто, нам нужно банально взять шорткод и вставить в нужное место, а вот с произвольным выводом в шаблон придется повозится.

Для вывода CF7 в шаблон WP я использую вот такой код:

<?php echo do_shortcode('ваш шорткод для CF7');?>

Более детально о Contact Form 7 настройка можно прочитать перейдя по ссылке.

Комментарии к записи «WordPress contact form 7 дополнительные настройки»:
  1. Алексей:

    Возникла проблема с этим плагином. Всё работает идеально, кроме прикрепления файлов. Видимо 20 файлов это лимит, даже если они совсем маленькие. А необходимо до 30 файлов отправлять. Буду очень признателен за помощь.

    • admin:

      Добрый день.
      Я никогда не сталкивался с таким ограничением, так как задач по отправке такого большого количества файлов не было. Да и не удобно 20 раз кликать чтоб отправить так много файлов. Может проще поменять реализацию задачи?? Или задать этот вопрос в поддержке плагина.
      Извините, я в этом вопросе помочь не смогу.

  2. Александр:

    Благодарю автора за статью!
    С помощью нее настроил быстро и просто редирект на другую страницу при отправке формы регистрации в мероприятии!
    Сам файл.js
    document.addEventListener( 'wpcf7mailsent', function( event ) {
    if(event.detail.contactFormId=="124"){
    location = '(-url-)';
    }
    }, false );

    Единственно, что вставка в начало fuctions.php не прокатывает, надо вставлять после:
    function twentyseventeen_setup() {

    add_action('wp_enqueue_scripts', 'add_scripts_1');
    function add_scripts_1(){
    wp_enqueue_script("cf7_list_function", get_bloginfo('stylesheet_directory').'/readres.js',array('jquery'),"0.1",true);
    }

  3. Александр:

    для тех у кого шаблон AVADA или подобные если пригодиться)
    протестировал и заметил, код

    document.addEventListener( 'wpcf7mailsent', function( event ) {
    yaCounter100000.reachGoal('myForm');
    }, false );

    можно просто добавить в кодовый блок на нужной странице, где есть та форма

    https://help-wp.ru/wp-content/uploads/2017/09/cf7-file-1.png
    https://help-wp.ru/wp-content/uploads/2017/09/cf7-file-2.png

    при этом даже не добавляя в доп. настройки самой формы

    Цель срабатывает, все норм

    • admin:

      Добрый день.
      Большое спасибо за наглядный пример.
      Этот вариант подойдет если у вас форма в контактах или на другой странице используется один раз.
      Если же у вас форма в попап, одна на всех страницах, то лучше использовать вариант описанный на сайте.

    • Александр:

      У меня на 7 страницах - 7 разных попапформ - 7 разных целей ("оформить медсправку", на другой "оформить медкнижку" и тд), если форма находится в попапе, в настройках попапа установите, что бы он показывался только на нужной странице
      (-url-)
      а на страницах установите выше описанный код, меняя только имя цели.
      И все работает гуд

    • admin:

      Для 2-3 страниц решение нормальное, не спорю, но для блогов где по 100 -200 страниц/постов это уже накладно. А если придется менять код, то надеяться надо только на парсинг через mysql тогда :))
      Например, у меня на сайте практически на всех страницах есть попап

  4. Эдуард:

    Добрый день.
    Подскажите такой вопрос. После успешной отправки формы в браузер пользователя загружался указанный файл по внешней ссылке. Спасибо.

    • Эдуард:

      Извините. Спешил. Вероятно не понятно написал. Хотел спросить, как добавить функцию скачивания файла после успешной отправки формы. Ссылка на внешний источник скачиваемого файла. Буду благодарен если кто подскажет как это возможно решить.

    • admin:

      Добрый день.
      Ну как вариант редиректить на яваскрипте после события on_sent_ok.
      Можно вот так попробовать:

      on_sent_ok:"setTimeout(function(){window.location.href='ваша ссылка';},1);"

      а можно в яваскрипт файлах создать функцию и в on_sent_ok сделать ее вызов.

    • Эдуард:

      Спасибо за ответ. Попробую.

  5. Ден:

    А как прописать этот самый иденфикатор в самой Contact Form. Перепахал уже всё, делал по написанному гугл нормально собирает, с метрикой траблы ищу ошибку 🙂

    • admin:

      вот рабочий код on_sent_ok: "yaCounter2015xxxx.reachGoal('Form1');"

      где yaCounter2015xxxx надо взять из кода который вам дает метрика для добавления на сайт

      Form1 - это название вашей цели в метрике

    • Ден:

      Уже видимо не работает ... сообщение отправляется, но сообщения об удачной отправке не выводиться, ну и ноль в метрике. (

    • Ден:

      Я имею ввиду on_sent_ok on submit не отрабатывают. У меня прописано в хеадер

      document.addEventListener( 'wpcf7mailsent', function( event ) {
      ga('send', 'event', 'myForm1', 'submit');
      yaCounter3222ххх.reachGoal('myForm1');
      }, false );

      ... вот я и думаю где можно прописать идентиф. кроме поля дополнительные настройки и как это сделать.

    • admin:

      Если нужна помощь покажите сайт, код благополучно работает на десятках сайтов, в том числе и на этом.

    • Ден:

      (-url-)

    • admin:

      у вас код отслеживания метрики:
      w.yaCounter44447368 = new Ya.Metrika

      а вы посылаете запрос из yaCounter32222256.reachGoal

      правильный код 44447368 по этому и ошибка

    • Ден:

      А я упрямо ставлю id цели.... баран 🙂

  6. Сергей:

    Приветствую! Решаю следующую задачу: На сайте есть раздел контакты и я хочу поставить на кнопку "отправить" цель. Создал цель в метрике, прописал идентификатор и в админке сайта, в разделе дополнительные настройки формы прописал вот так >> (-url-)

    Пробовал отправить сообщение с сайта, в целях по "0" То есть не работает. Что сделал не так? Если не трудно отпиши в скайп

    • admin:

      Добрый день.
      Да вроде все правильно должен работать. Может у вас ошибки яваскрипт на странице??

  7. Дмитрий:

    Здравствуйте. А как сделать так, чтоб на почту приходила еще и ссылка, где эта форма была заполнена?

  8. Михаил:

    Здравствуйте!
    Подскажите, как можно организовать отправку писем с разным содержанием на разные адреса одновременно? Пользователю одно сообщение, а админу сайта другое.

    • Михаил:

      Не совсем точно выразился. Админу сайта отправляется письмо с полным набором полей из формы, а нескольким пользователям, почта которых берется из базы данных, другое письмо с другим набором полей.

    • admin:

      Добрый день.
      Есть несколько способов решения проблемы, один из них создать копию письма, смотрите CF7, вкладка "письмо" (это вторая вкладка слева в настройках вашей формы). В самом низу можно поставить чек "Использовать почту (2)" и там указать другие адреса через запятую и другие данные.
      Или как вариант обратить свое внимание в сторону пхп, есть хук wpcf7_before_send_mail которым можно перехватывать сообщения с contact form 7

    • Михаил:

      Первый вариант не подойдет, т.к. адреса заранее не известны, а выбираются из базы исходя из значений заполненных полей. Значит буду смотреть в сторону wpcf7_before_send_mail.

    • Михаил:

      Только не пойму как записать нужное значение в получателей
      function wpcf7_mail_processing($contact_form){
      $contact_form->mail[recipient] = "[email protected]";
      }
      Так не получается, остается старое значение в получателях. Видимо нужно форме обратно отправить массив contact_form, но как?

    • admin:

      Вы немного неправильно пишите, там нужно как то так:

      function wpcf7_mail_processing($contact_form){
      $mail=$contact_form->prop('mail');
      $mail['recipient']="[email protected]";
      $contact_form->set_properties(array('mail'=>$mail));
      }

      а если у вас не первый а второй шаблон письма то prop('mail_2')

    • Михаил:

      Все заработало, спасибо.

  9. Дмитрий:

    А как в on_sent_ok передавать данные полей?

    Задача настроть отправку данных в коллтеркинг (роистат, в моем случае).

    Вот такой код:
    "roistatGoal.reach({name: 'Имя', phone: '79111234567'})"

    Пробую так:
    on_sent_ok: "roistatGoal.reach({name: 'text-195', phone: 'tel-541'});"

    и так:
    on_sent_ok:"roistatGoal.reach({name: '[text-195'], phone: ['tel-541']});"

    На почту приходят шорткоды:
    Имя клиента text-195
    Телефон [tel-541]

    Как передавать значения полей?
    Спасибо!

    • Дмитрий:

      Решил сам:

      Указываем так:

      phone: $('#wpcf7-f35-o2 [name="tel-664"]').val()

      где #wpcf7-f35-o2 - ID вашей формы

    • admin:

      Добрый день.
      Да вы совершенно правы. Чет замотался, не успел ответить 🙂

  10. Евгений:

    На официальном сайте компонента говориться, что данный способ подключения целей скоро будет отключен: (-url-)

    В связи с чем возникает вопрос, как теперь добавить цель на отправку формы в соответствии с новым методом?

    • admin:

      Добрый день.
      Да как не странно они хотят отказаться от этого способа. Посмотрим что из этого получится. Пока ничего не могу советовать по этому поводу 🙁
      На данный момент способ работает, как будет дальше посмотрим.

  11. Равиль:

    Здравствуйте! А возможно ли с помощью CF7 сделать так:
    пользователь выбирает один из вариантов (к примеру возраст) и ему показывается определённая фраза или предложение в форме?
    Например: "Выберите ваш возраст:"
    - 20 - 30
    - 30 - 40
    - 40 - 50

    пользователь выбирает один (только один) вариант и в зависимости от того, что он выбрал ему показывается, допустим какой-то текст

    Как можно так сделать?

    • admin:

      Добрый день.
      Яваскрипт, это все можно сделать на нем. Пример кода не покажу так как готового нет, да и задача не до конца ясна. Но на javascript такое делается.

    • Равиль:

      Понятно, спасибо

  12. Артём:

    Добрый день! Подскажите - после ввода данных в форму и нажатой кнопки отправить попап закрывается, но пропадает скрол у страницы

    (-url-)

    on_sent_ok: "setTimeout(function(){$('#pum-6212').fadeIn('slow');},100);"
    on_sent_ok: "setTimeout(function(){$('#pum-6212').fadeOut('slow');},3000);"

    • admin:

      Добрый день.
      Смотрел из мазилы, вроде все ок. Прокрутка не пропадает. Возможно вы уже что то изменили.

  13. Jora:

    Здравствуйте, у меня вместо кнопки отправить нужно вставить ссылку на popup кнопку. Как мне можно реализовать?

    • admin:

      Добрый день.
      Не сильно понял что вам нужно. Возможно по клику на кнопку на сайте вызывать popup форму? Если да, то вот тут я описывал как сделать такую форму и такой вызов https://help-wp.ru/vsplyvayushhaya-forma-wordpress/

  14. Павел:

    Здравствуйте!
    Подскажите, можно ли сделать счетчик успешно отправленных форм, чтоб он отображался рядом с формой на странице?
    Хочу сделать анкету-опросник. Цель счетчика - мотивировать людей к заполнения анкеты.

    • admin:

      Добрый день.
      Думаю что можно. Для этого надо сделать в базе значение, можно через пользовательское поле ВП и туда на аякс отправлять информацию когда форма заполненная и получилось отправить, когда не получилось не отправлять.

  15. Роман:

    Можно ли для 2-х разных форм сделать 2 разных дизайна. То есть через стили я оформил форму, теперь мне нужно добавить ещё одну форму, но уже с другим оформлением, как это сделать?

    • admin:

      Все зависит от того как вы для первой формы прописывали CSS, но в любом случаи вы можете для новой формы добавить уникальный класс или ид например #form2 и писать стили для всех блоков типа
      #form2 input{стиль для ввода}
      #form2 textarea{стиль для ввода}
      #form2 input[type=submit]{стиль для кнопки } и так далее

    • Роман:

      Спасибо за быстрый ответ, но я не понимаю как присвоить свой стиль определённой контактной форме. То есть я вставляю форму через шорт-код [contact-form-7 404 "Not Found"], мне сам этот код обернуть в див с назначенным стилем, или как-то через дополнительные настройки на странице редактирования формы делать?

    • Роман:

      В первом варианте у меня просто в файле стилей темы прописаны стили для .wpcf7:
      .wpcf7 {

      }

      .wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 textarea{

      }

      .wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 textarea{

      }

      .wpcf7-submit{

      }

      .wpcf7-submit:hover{

      }

    • admin:

      закиньте этот код в функции своей темы, файл functions.php

      add_shortcode( 'myForm2', 'myForm2');
      function myForm2(){
      $str='<div id="form2">'.do_shortcode('[contact-form-7 id="1"]').'</div>';
      return $str;
      }

      где [contact-form-7 404 "Not Found"] вы должны заменить на свой код вызова формы, который дает CF7. Теперь чтобы вызвать свою форму в записе вам достаточно написать такой шорткод туда [myForm2]

      а к стилям можно прибавлять id form2, типа
      #form2 .wpcf7 input[type="text"], #form2 .wpcf7 input[type="email"], #form2 .wpcf7 textarea{}

  16. Михаил:

    Задача: нужно установить код события Facebook на сайт. Базовый код пикселя Facebook установлен и работает.

    Код события должен срабатывать при нажатии кнопки определенной формы сайта.

    Код события имеет вид:

    fbq('track', 'Lead');

    Проблема: на сайте для форм используется плагин Contact Form 7. Сделана попытка вставить код события в соответствующую форму в раздел "дополнительные настройки" вместе с кодами целей Яндекс.Метрики и Google Analytics. Данные в дополнительных настройках сейчас выглядят так:
    on_submit: "yaCounterXXXXXXXX.reachGoal('price'); ga('send', 'event', 'form', 'price'); fbq('track', 'Lead');"

    Цели Метрики и Analytics соответственно Яндекс и Гугл видят, а вот Facebook код события не видит.

    • admin:

      Думаю что вам нужно создать отдельный яваскрипт файл, забросить туда все вызовы, которые вам нужны, в отдельную функцию, например:
      function my_echo(){
      yaCounterXXXXXXXX.reachGoal('price');
      ga('send', 'event', 'form', 'price');
      fbq('track', 'Lead');
      }

      не забыть подключить файл, и в самом CF7 вызвать эту функцию on_submit:"my_echo();"

      Попробуйте, должно так работать

    • Михаил:

      Попробовали, не работает.
      В чем может быть причина?

    • admin:

      Проверьте fbq('track', 'Lead'); возможно он вообще ничего не отправляет, не знаю навесте его на клик по какой-то тестовой кнопке или ссылке.

      Возможно вы неправильно подключили основной код, который и разрешает fbq отправлять запросы

    • Михаил:

      1. Основной код подключен корректно, по нему происходит отслеживание событий (могу выслать скрин).

      2. Был написал файл scripts/counters.js, который имеет такой вид:

      function counters(){
      yaCounter40317265.reachGoal('price');
      ga('send', 'event', 'form', 'price');
      fbq('track', 'Lead');
      }

      3. В Contact Form 7 в соответствующей форме в дополнительных настройках указано следующее:

      on_submit: "counters();"

      При этом данные по целям поступают в Яндекс.Метрику и Google Analitics.

    • admin:

      Ну на лицо проблема с вызовом fbq('track', 'Lead'); там проблема.
      Пробовали подключать на отдельное событие onclick мне кажется просто этот код не отправляет запросы, но предсказать я этого не могу так как нужно смотреть сайт. Не думаю что эта проблема связанная с CF7

    • Михаил:

      Нашли проблему.
      Она была не Contact Form 7. Причем после устранения проблемы Facebook видит код события fbq('track', 'Lead')прямо в дополнительных настройках формы в Contact Form 7, без дополнительного явафайла.

      Проблема был вот в чем:
      Facebook рекомендует устанавливать код базового пикселя между тегами , причем после всего содержимого перед последним из этих тегов. После установки кода между его окончанием и тегом у нас была пустая строка. Это оказалось критичным для Facebook. После удаления этой строки он стал видеть код события в Contact Form 7.

  17. Дмитрий:

    Я так понимаю что не догружается какой то скрипт... Выявил закономерность: например находимся на главной, нажимаем "Контакты" , далее отправляем письмо - первый раз отправляется с перезагрузкой странички. 2) если перейти в "Контакты", потом обновить страничку и тогда отправлять - уходит через аякс без перезагрузки странички. Что может влиять на такую работу?

    • Дмитрий:

      В каких файлах вообще искать подключенные скрипты которые могут конфликтовать?

  18. Дмитрий:

    Добрый день. Проблема такова. Первый раз захожу на страничку контакты и отправляю через форму сообщение - отправляет с перезагрузкой. Второй раз если обновить - отправляет с аяксом без перезагрузки странички. ЧТо это может быть?

    • admin:

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

      Мне не приходилось сталкиваться с такой проблемой 🙁

    • Дмитрий:

      Кэш почистил. Все равно. Может есть возможность выявить причину?

    • admin:

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

      Ну функции wp_head(); и wp_footer(); у вас думаю что прописанные.
      Смотрите может какая то ошибка яваскрипт у вас происходит.

      Дайте ссылку на сайт может что то больше скажу, хотя не факт

  19. Igor:

    Добрый день! Подскажите как реализовать следующее:
    Есть несколько чекбоксов, у каждого по 1му варианту для выбора. Как в тело письма занести вариант, чтобы когда человек не поставил галку, приходило в письме что-то в духе Not select ???

    • admin:

      Добрый день.
      Ну особо простого пути так сделать наверное нет. Как вариант сделать первый пункт с таким значением и спрятать его на цсс или яваскрипт и потом на яваскрипт автивировать всегда первым это значение (хотя если у вас чекбокс то всегда это значение будет приходить, это ж не радио батон)

      Ну или вклинивать на пхп проверку, в функции

      add_filter( 'wpcf7_before_send_mail', 'wpcf7_before_send_mail_my' );
      function wpcf7_before_send_mail_my($cf7){
      if($cf7->id==8){//id вашей формы заменить на свой
      if(!$_POST['your-check']){$_POST['your-check']="Not select";}
      }

      }

      Она может не точная, попробуйте допилить проверку и думаю будет все норм работать. your-check - название вашего поля чекбокс.

  20. Алексей:

    Подскажите пожалуйста, какой код нужно вставить, чтобы после отправки формы, она очищалась и можно снова отправлять.

    • admin:

      По умолчанию форма очищается после успешной отправки сама.
      Возможно у вас в теме в файле footer.php отсутствует код wp_footer();

  21. Стас:

    Подскажите в чем может быть проблема. Ставлю в настройках параметр acceptance_as_validation: on по сути форма не должна отправляться пока пользователь не примет соглашение, но отправка идет даже если условие не принято. Спасибо.

    • admin:

      Добрый день.
      А какой у вас тип чекбокса для вашего условия? Там в доке acceptance должен быть, обычный чекбокс не будет работать.

  22. Алексей:

    Подскажите пожалуйста, мне нужно вместо стандартного всплывающего сообщения, после успешной отправки формы переадресовывать человека на страницу /thanks-for-request/ на этом же сайте. Как это правильно прописать? Пробовал вариант описанный выше
    setTimeout('window.location.assign("/thanks-for-request/")', 500); но он не срабатывает.

    • admin:

      Добрый день.
      Вот этот варинт с работающего сайта:
      setTimeout(function(){window.location.href="ваша ссылка";},5);

      Тот пример что вы взяли из кода пользователя "Илья" у него немного другая ситуация была видимо.

      И путь переадресации нужно писать польностью начиная с http

  23. Иван:

    Забыл добавить. Спасибо за статью! Подродно и доходчиво написано.

  24. Иван:

    А как прописать цель на заполнение полей формы без отправки?То есть если посетитель заполнил несколько полей но не отправил форму и покинул страницу

    • admin:

      Уточните плз.. какая у вас форма: всплывающая по клику на что либо или встроенная на страницу??

      Это важно так как для всплывающей можно отслеживать клик по кнопке для показа формы, а вот для встроенной сложно ответить. Ну сейчас в голову приходить что можно на яваскрипте отслеживать изменения в полях инпут, хотя у вас буде очень много событий тогда 🙁

    • Иван:

      Форма вставлена на страницу, не всплывающая. Мне нужно что бы цель определялась заполнением хотя бы одного поля формы ну или нажатием на поле. Можно пример: если есть?

    • admin:

      Примера нет, тестить нет времени, но должно как то так быть:
      1) добавьте для поля в форме класс или ид
      2) в скипт нужно забросить что то в этом роде $(".input_class").change(function(){код вызова метрики});

    • Иван:

      А если платно,сможешь сделать с подробным описанием и протестить ? Отпишись на мыло.

  25. Роман:

    Здравствуйте! не могу понять как мне прописать несколько почтовых адресов для отправки для одного отдела например:
    Выберите получателя (обязательно)
    [select* menu-3 "Отдел кадров|Ver****@gmail.com,****[email protected], ******@ru"]
    [select* menu-1 "Отдел менеджеров|Ver****@gmail.com,****[email protected], ******@ru"]

    • Роман:

      Забыл уточнить, надо чтобы адреса были как скрытая копия

      bcc:****@1.ru

    • admin:

      Добрый вечер.
      Я правильно вас понимаю, вам нужно в блоке select указать почтовые адреса, куда будет почта приходить?? Или я не понял вас?
      В общем если вставить в поле кому: [menu-3], [menu-1] то почта должна уйти и первому и второму пользователю.

    • Александр:

      Добрый день!
      Подскажите, пожалуйстаЮ, а как можно сделать чтобы при выборе
      [select* menu-1 "Отдел кадров|[email protected]] - письмо уходило по этому адресу, а при выборе [select* menu-2 "Отдел менеджеров|[email protected]] письмо уходило по этому адресу?
      Спасибо!

  26. Ирина:

    Здравствуйте! Подскажите как сделать что бы при нажатии кнопки "Отправить" Всплывало модальное окно с текстом "Благодарим"?
    Пробовала так - не получается:
    Вариант 1:
    on_submit: "setTimeout(function(){span class="eModal-3"
    Вариант 2:
    on_submit: "setTimeout(function(){window.location.href = "eModal-3"

    • admin:

      Добрый день. Думаю есть смысл попробовать написать функцию, вот все что вы писали только в отдельную функцию, и подключить раньше вызова cf7.

      Например, вот такая функция:
      function showMessInCf7(){
      alert("Благодарим");
      }

      а в самой форме подключать вызов:

      on_sent_ok: "showMessInCf7();"

    • Ирина:

      Добрый день!
      Подскажите, как правильно составить "фразу" чтобы при нажатии Submit всплывающее окно контактной формы закрывалось?
      сайт (-url-)
      сейчас такой код, где функции с .close - не срабатывают ((

      demo_mode: on

      on_sent_ok: "alert('Ваша заявка отправлена. Мы вам перезвоним в рабочее время с 08.00 до 20.00 ежедневно без выходных');"

      on_sent_ok: "$(function(){$('.popup2, .close')
      on_sent_ok: $.popup2.close();

      on_sent_ok: "$(function(){$('.popup2, .overlay2').css('opacity','0');$('.popup2, .overlay2').css('visibility','hidden');$('.popup3, .overlay2').css('opacity','1');$('.popup3, .overlay2').css('visibility','visible');});yaCounter30683938.reachGoal('record');"

    • admin:

      А вы где то в доке видели что можно вот так по несколько раз использовать on_sent_ok мне кажется что так нельзя.
      Вам нужно создать файл например script.js в файле функцию, например my_test() и туда записать все действия что вам нужно. Далее нужно подключить этот файл к странице, а в самом доп. поле потом вызвать
      on_sent_ok: "my_test();"

      думаю что это самый правильный вариант. Только не забудьте правильно оформить файл, чтоб библиотека jQuery у вас работала, я смотрю вы ее используете.

  27. Евгений:

    День добрый) перерыл уже все и тут читал как перенапрвить после нажатия кнопки отправить вставил в код в дополниетльные натройки а все равно ничего не происходит ( помогите а то горит заказ уже не рад что связался с ней сайт (-url-) нажмите увидите) жду очень ответьте на опчту помогите

    • admin:

      Добрый день.
      1) У вас ошибка яваскрипта TypeError: $(...).mask is not a function $(".data").mask("99/99/9999");
      2) в теме видимо забыли подключить wp_head() и wp_footer() в шапке и футере соответственно - если нет одной из этих функций то вместо аякс мы видим перезагрузку страницы

      Видимо в п. 2 и есть ваша проблема хотя и п1 может такое делать

    • Евгений:

      А как осуществить пункт 2,куда это подключать и каким кодом в теме?В моем сайте?Напишите спасибо

  28. Владимир:

    Здравствуйте! Подскажите как сделать что бы при нажатии кнопки "Отправить" Всплывала новая форма для заполнения других данных?

    • admin:

      Добрый день.
      Задачка интересная. Как вариант для кнопки добавить какой-то класс или ИД и на этот селектор в яваскрипте навесить событие .on("click",function(){код для отображения второй формы; return false;});

      return false; - в вашем случае запретит делать какие либо действия с кнопкой, такие как отправка данных

  29. Оксана:

    Добрый день!
    Скажите, пожалуйста, а откуда Вы взяли код: yaCounter2015xxxx.reachGoal('Form1')

    Form1 понятно, это мы заполнили. А yaCounter2015xxxx.reachGoal где берется?
    Спасибо заранее 🙂

    • admin:

      Добрый день.
      Если посмотреть шаг 5 выше то там можно найти такой текст:

      yaCounterXXXXXX.reachGoal('TARGET_NAME');
      где:
      XXXXXX — номер вашего id из метрики;
      TARGET_NAME — идентификатор вашей цели (у меня это "Form1")

      XXXXXX находится в коде вашей метрики и перед ним уже написано yaCounter

  30. Виктор:

    Как можно использовать шорткоды в шаблона письма плагина Contact Form 7 ?

    • admin:

      Ну [your-name] в теле письма - это и есть шорткод CF7. Если вам нужно использовать шорткод в значении value для input например, то нужно установить плагин динамических полей Contact Form 7 - Dynamic Text Extension у него есть возможность вставки шорткодов там есть инструкция. Если например у вас шорткод [my_short] то поле будет так выглядеть [dynamictext dynamictext-555 "my_short"]

  31. Павел:

    Подскажите как в форму contact form 7 вывести user_email, first_name, last_name из профиля авторизации на сайте?

    • admin:

      Добрый день.
      Как я себе представляю, то нужно установить плагин динамических полей для CF7, далее взять видимо динамическое поле и забросить в него шорткод. В шорткоде сделать проверку, если юзер вошел на сайт под ником у него есть свой ИД, то по id можно получить и почту и имя и другую информацию. если нет то даем пустой ответ шорткода. как то так 🙂

  32. Евгений:

    Добрый день! Такой вопрос: как сделать отправку писем на разные ящики в зависимости от значения одного из полей?

    • admin:

      Добрый день.
      Нужно адрес отправки записать в переменную, создать скрытое поле у формы и в зависимости от значения заполнять это поле нужным значением.
      В поле to в формы вставить код скрытого поля. И будет все работать

  33. Андрей:

    Здравствуйте. Вижу что ранее разбиралась моя проблема, но решения так и не увидел. При постановки цели на форму при удачной отправке перестаёт выводить сообщение.

    • admin:

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

  34. Игорь:

    Здравствуйте,возможно ли реализовать чтобы после заполнения анкеты анкета приходила не письмом, а вносилась автоматически в excell файл.На самом деле нужно реализовать, чтобы все анкеты были в одном месте так как письмом не очень удобно когда приходит порядка 50 анкет в день, но как это сделать к сожалению не понимаю ((( Спасибо. Если кто может такое сделать готов оплатить работу )

    • admin:

      Добрый день.
      Мы не сможем взяться за такую работу.

  35. Сергей:

    Здравствуйте, подскажите пожалуйста как реализовать чтобы после нажатия на кнопку Submit человеку выводилось сообщение ваш порядковый номер к примеру - 10. А на почту ко мне приходили данные человека и этот его порядковый номер 10. Уже мозг закипел. Спасибо.

    • admin:

      Добрый день.
      Ну если вкратце, то
      1) делаем в базе поле для счетчика, как вариант опцию
      2) на яваскрипте запрещаем по клику на кнопку делать отправку данных вместо этого запускаем аякс запрос, который берет значение из базы и обновляет его на +1.
      3) по приходу аякс ответа в скрытое поле записываем динамическое значение на яваскрипте и обновляем форму, отправляем данные.
      4) если форма была отправлена показываем число.

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

  36. Дмитрий:

    Здравствуйте. есть форма проверки подключен ли дом к интернету, данные которые вводятся это улица, номер дома, подъезд. После нажатия кнопки отправить, приходит письмо, и на сайте выводится сообщение "Спасибо за Ваше сообщение. Оно было отправлено." Как сделать чтоб происходило сравнение с базой данных адреса и если он там есть вместо этого сообщения выводилось, что дом подключен или не подключен.

    • admin:

      Добрый день.
      Пропустил ваше обращение, извините.
      Из того что могу посоветовать, это рассказать как перехватить обработчик контакт форм 7. Делается это вот так:

      function wpcf7_before_send_mail_my($cf7){
      if(in_array($cf7->id,array(8,28372))){ // массив ИД форм которую отслеживаем
      делаем проверку
      если не прошли проверку то можно отправить что то вроде wp_die(); exit;
      }
      }
      add_filter( 'wpcf7_before_send_mail', 'wpcf7_before_send_mail_my' );

      Код для проверки уже смотрите сами какой должен быть.
      К полям внутри функции можно обращаться вот так: $_POST['your-name']

  37. Алексей:

    Добрый день, существует ли для CF расширение, которое позволило бы использовать введенные пользователем данные для генерации статьи? Пример: пользователь вводит имя и фамилию, отправляет данные, нажав на кнопку, и редиректится на страницу, где написано: "Здравствуйте, Имя Фамилия". Спасибо

    • admin:

      Добрый день.
      За CF7 не знаю, не встречал, но вот у Вордпреса есть встроенный механихм публикации постов, называется "Публикация через e-mail", находится в настройках вашсайт/wp-admin/options-writing.php думаю через это реально реализовать ваш задум. Ну или же фронтенд редактор использовать, кстати у плагина ACF есть функция фронтенд редактирования и добавления постов

  38. Ильнар:

    Спасибо большое)))

  39. Ильнар:

    Здравствуйте)а как реализовать чтоб при нажатии кнопки "Отправить" пользователей перекидывало на другой сайт допустим или на главную страницу?)Если можно,то по подробнее пожалуйста)Спасибо заранее)

    • admin:

      Добрый день.
      По подробнее это готовый код 🙂 ?
      Вот это закиньте в дополнительные настройки вашей формы на contact form 7:

      on_sent_ok: "setTimeout(function(){window.location.href = "http://help-wp.ru";},10);"

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

      Если вам нужно сразу по клику отправлять человека не дожидаясь результатов проверки то стоить вот такой код использовать для редиректа с формы CF7:

      on_submit: "setTimeout(function(){window.location.href = "http://help-wp.ru";},10);"

  40. Александр:

    Добрый день, подскажите, как можно сделать в contact form 7, чтобы выдавал источник и фразу по которой была сделана заявка?

    • admin:

      Добрый день.
      Я такие вещи делаю через яваскрипт + в саму форму добавляю скрытое поле. О том как добавить скрытое поле есть тут информация https://help-wp.ru/contact-form-7/#zg4 , а вот сам код яваскрипта индивидуальный. ну если вкратце, то у нас есть событие клика по кнопке или загрузка стрницы или другое действие, мы записываем нашу информацию в поле.

  41. Олег:

    Добрый день.
    После вставки кода типа: on_sent_ok: "yaCounter2015xxxx.reachGoal('Form1'); _gaq.push(['_trackEvent', 'order', 'view']);"

    Форма перестает показывать сообщение о том что она отправлена, письмо при этом сваливается, и в метрику ничего не приходит

    • admin:

      Добрый день.
      Дак вы свой код вставляете или этот из примера?? Код вызова метрики и гугл целей нужно зарегистрировать и получить отдельно и вставить как на примере и все будет работать. Возможно вы допустили ошибку в кавычках " и '

    • Павел:

      Подтверждаю
      при вставке кода on_sent_ok: "yaCounter_мой_счетчик_xxxx.reachGoal('Form1'); _gaq.push(['_trackEvent', 'order', 'view']);" в "Дополнительно"
      форма перестает отправляться

    • Анди:

      Такая же точно проблема. Опытным путем выяснил, что без проблем работает только если вставлять код для Метрики ** on_sent_ok: "yaCounterХХХХХХ.reachGoal('goalname');" **

      Если вставлять обработчик для GA (не важно - отдельно или параллельно с обработчиком для Метрики), то возникает вышеописанная проблема.

      Решил кто-нибудь?

    • Анди:

      Решил проблему, если кому интересно! И сообщение об отправке появляется, и цели считаются.

      Код такой: ** on_sent_ok: "yaCounterХХХХХХ.reachGoal('ИМЯЦЕЛИ'); ga('send', 'event', 'Contact Form', 'submit');" **

      В GA создаете цель типа "Событие", категорию события именуете "Contact Form", а действие события - "submit"

    • admin:

      Да проблема уже была решена, нужно создать функцию и туда забросить коды вызовов цели метрики и аналитики. А в самом вызове добавлять вызов функции, выше в тексте есть пример.

  42. Алекс:

    Добрый день. Подскажите, как вывести на экран количество нажатия кнопки on_submit?

    • admin:

      Добрый.
      К сожалению не сильно понимаю цель и смысл этой задачи. на кнопку сабмит можно нажать 1 раз, смысл нажимать больше раз?

      Возможно вам нужно подсчитать количество нажатий на кнопку до ее отправки, например когда человек забыл всю информацию заполнить?? в таком случае придется писать аякс запрос и сохранять в базу или же использовать сесии с яваскрипта и туда писать события по on_submit
      Готового кода к сожалению у меня нет

  43. Сергей:

    Подскажите как в ContactForm 7 сделать так, чтобы при отправке клиентом своих данных - нажатии кнопки в ContactForm 7, открывалось новая popup страничка по гиперссылке (-url-)

    • admin:

      Как вариант, нужно создать функцию, например такого плана и в нее поместить код для отображения попапа.
      function mywork(){
      ... тут код для отображения попапа
      }

      а в настройки контакт форм 7 закидываем вот такой код:
      on_sent_ok: "mywork();"
      выше в статье описано куда нужно добавлять код, не буду повторяться

  44. Александр:

    Спасибо за статью.
    у меня кнопка Отправить - отправляет данные для обратного звонка.
    установил в дополнительные настройки формы код
    on_submit: "yaCounter37111.reachGoal('zvonok');"
    on_submit: "_gaq.push(['_trackEvent', 'zakaz', 'zvonok']);"
    цель на отправку в яндекс метрики срабатывает, в гугл не фиксируется
    что может быть не так? спасибо

    • admin:

      Добрый день.
      В дополнительных настройках CF7 не предусмотрено использование события несколько раз.
      Вам нужно писать код вот такого плана:

      on_submit: "yaCounter37111.reachGoal('zvonok'); _gaq.push(['_trackEvent', 'zakaz', 'zvonok']);"

  45. Марина:

    Подключаю цель для метрики, но что то не подключается. Не могу понять как правильно сформулировать запрос, у вас 2015ХХХХ это что?

    • admin:

      Добрый день.
      Для начала вам нужно зарегистрироваться в яндекс вебмастере и добавить код метрики к себе на сайт. В коде метрики есть идентификатор, такого плана id: идут цифры.

      Вставлять нужно так:
      yaCounterXXXXXX.reachGoal('TARGET_NAME');
      где:
      XXXXXX — номер вашего id из метрики;
      TARGET_NAME — идентификатор вашей цели

      вроде все

  46. Кирилл:

    Добрый день.
    Сообщения приходят, но в почте в колонке "От" в списке писем, пишется "WordPress". Подскажите как сменить эту надпись. Спасибо.

    • admin:

      Добрый день.
      А зачем что то менять? Если вам нужна возможность отвечать через почтовик, то можно добавить код:
      Reply-To: [your-email]
      в поле "Дополнительные заголовки", которое находится во второй вкладке "Письмо",
      где your-email это ваше поле куда вводят пользователи свою почту

  47. Вадим:

    Добрый день, проблема не работает данный хук. Цель не отрабатывает и при сохранении есть сообщение "Данная форма имеет ошибку конфигурации ."

    on_sent_ok: "yaCounter34732560.reachGoal('form1');"

    • admin:

      Добрый день.
      Нужно проверить работу ваших скриптов, возможно там ошибки. Как вариант закиньте такой код и посмотрите что будет:
      on_sent_ok: "function(){alert('Сообщение отправлено успешно');}"

      Можете скинуть ссылку на сайт и я тоже посмотрю.

  48. Дмитрий:

    Добрый день. Возможно ли после отправки письма через Contact Form 7 отправить письмо отправителю с подтвержением на введенный им ящик

    • admin:

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

  49. Илья:

    Полностью согласен с вами, contact form 7 реально самый лучший плагин для отправки сообщений с сайта.
    Обратная связь просто обалденная 🙂

  50. Роман:

    Доброе время суток.
    Подскажите пожалуйста, а есть ли возможность сделать редирект писем на другой адрес?

    • admin:

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

  51. Борис:

    Здравствуйте. Необходимо в CF7 сделать редирект на различные страницы сайта в зависимости от выбранного значения в выпадающем меню. Возможно это осуществить в дополнительных настройках с помощью функции on_sent_ok?Или какие другие решения есть этой задачи? СПАСИБО.

    • admin:

      Добрый день.
      Ответил вам в разделе Вопрос/ответ.
      Редиректы с яваскрипт делать можно. on_sent_ok сработает когда сообщение отправлено успешно, цепляем на ее функцию, в которой набор редиректов и используем 🙂

  52. Николай:

    Вставил код в контактформ7
    on_sent_ok: "yaCounter16986630.reachGoal('ZAKAZ');"
    on_sent_ok: "function(){alert('Сообщение отправлено успешно');}"
    on_submit: "function(){alert('Нажата кнопка отправить');}"
    страница формы (-url-)

    Тоже крутиться стрелки, письма приходят.
    Что делать?

    • admin:

      Добрый день. А зачем вы 2 раза добавили on_sent_ok: ??

      Сейчас смотрю ваш сайт, форма работает отлично, лоадер крутится потом отправляет и вылазит зеленая вкладка, или карасная если не заполнить поля.

  53. Алексей:

    Добрый день.
    Вставляю код в текстовый виджет со своим шорткодом, но форма не выводится. При этом во всплывающем окне для заказа обратного звонка все отображается и работает работает. Смотрю исходный код. а там:

    Почему не выводится?

    • admin:

      Добрый день.
      Сори, раньше не смог ответить.
      Думаю что у вас в текстовых виджетов не включена поддержка шорткодов.
      Вот я об этом описывал тут https://help-wp.ru/ne-rabotayut-shortkody-wordpress/

  54. Андрей:

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

    • admin:

      Добрый день.
      Теоретически можно. 100% можно записать почтовые адреса в яваскрипт и потом в зависимости от урла писать их в инпут по идентивикатору.

      Можно попробовать в место где адрес вставить шорткод, а в функциях прописать шорткод, который в зависимости от страницы будет возвращать разные почтовые адреса. Второй вариант никогда не проверял, но точно знаю что contact form 7 умеет запускать пользовательские шорткоды

  55. Александра:

    ребят, помогите, пожалуйста. Второй день мучаюсь, даже не представляла себе, что есть вещи, с которыми могу столько времени сидеть.

    Вроде простая задача - поставить цель на on_sent_ok или хотя бы на on_submit

    Перепробовала уже все варианты, ни один не выводит цель в метрику.

    on_sent_ok: "yaCounter2015xxxx.reachGoal('Form1');"
    on_submit: "yaCounter2015xxxx.reachGoal('Form1');"
    с return true;
    в любой последовательности, отдельно и вместе - для проверки... никаких вариантов не осталось.

    Более того, с любом случае, на отправку, или на нажатие, при вписывании в дополнительные настройки cf7 перестают проявляться уведомления об отправке. Если прописываю дополнительно уведомления об отправке - они проходят. Цели - нет

    on_submit: "yaCounter23725456.reachGoal ('sendform');"
    on_sent_ok: "alert('Сообщение отправлено успешно');" - последний вариант

    Я понимаю, что блондинка латентная и вообще, но у меня идеи кончились

    • admin:

      Добрый день.
      Попробуйте закинуть оба варианта:
      on_sent_ok: "function(){alert('Сообщение отправлено успешно');}"
      on_submit: "function(){alert('Нажата кнопка отправить');}"

      и дайте ссылку на страницу и укажите где находится форма, если ее сразу не видно или их несколько. думаю что смогу вам помочь. (можно на почту, написал вам)

    • Андрей:

      Та же проблема, что и у Александры...

    • Андрей:

      Странно, все заработало...

  56. Дмитрий:

    Добрый день. Подскажите, как изменить стиль определенного блока 'div' , после удачной отправки формы?

    • admin:

      Добрый день.
      Создать файл яваскрипт с функцией для изменения дива, подцепить его к теме.
      А в настройках плагина contact form 7 вызвать таким вот образом

      on_sent_ok: "myFunction();"

      myFunction имя функции.
      Например такого плана:

      function myFunction(){$("#mydiv").css("color","#ff0000");}

  57. Лана:

    маленькая проблемка с плагином contact form 7, он по какой то причине не обновляет страницу отправки сообщения, жмешь кнопку - а дальше до бесконечности крутятся стрелки... письма на почту приходят и в бд все прописывается. проверила на совместимость с другими плагинами, конфликта нет...

    • admin:

      возможно у вашей темы в шапке не подключен wp_head(); а в футере wp_footer();

    • Максим:

      Также не получаю статус - отправлено/не отравлено, только вращение стрелок, сами письма приходят.
      В шаблоне есть wp_head() и wp_footer(), конфликтов нет с плагинами...

    • admin:

      Покажите ссылку на сайт, можно по почте. Написал вам с нее. Думаю у вас банально или в стилях запрещена выпадашка, или не хватает высоты блока. Или ответ сервера портится при отправке. Если дадите ссылку попробую подсказать где проблема.

  58. Илья:

    Как сделать ДВА и более действия на on_sent_ok? Вот так редиректит, но не учитывает в аналитикс:
    on_sent_ok: "ga('send', 'event', 'TROSO', 'Submit'); location = '(-url-)';"

    • admin:

      У вас редирект идет быстрее чем отправка аналитикса. Если код аналитикса правильный то нужно переписать редирект вот так:
      setTimeout("window.location.assign(ваша ссылка)",500);

    • Илья:

      Внимание к кавычкам. Вот так по-прежнему редиректит, но не учитывает в Аналитикс:
      on_sent_ok: "ga('send', 'event', 'TROSO', 'Submit'); setTimeout('window.location.assign("http://yourсайт.ru/")', 500);"

      А если добавляю еще Яндекс-цель - тоже не работает.
      yaCounter192850ХХ.reachGoal(‘TROSO’); return true;

    • admin:

      Попробуйте закинуть все в функцию и добавить ее в начало страницы или просто в яваскрипт код.

      function my_sent_ok(){
      ga('send', 'event', 'TROSO', 'Submit');
      yaCounter192850ХХ.reachGoal(‘TROSO’);
      setTimeout('window.location.assign("http://yourсайт.ru/")', 500);
      }

      и вызов тогда on_sent_ok: "my_sent_ok();"

    • Илья:

      Пробовал скрипт сверху в форме. Все равно не отправляет. А в он_сент_ок Яндекс упорно все портит. Оставил неоптимальный вариант:
      on_sent_ok: "ga('send', 'event', 'PASS', 'Submit'); setTimeout('window.location.assign("http://yourсайт.ru/thank-you/")', 500);"
      on_submit: "yaCounter192850ХХ.reachGoal('TROSO'); return true;"

  59. Макксим:

    ну новый интерфейс плагина мягко говоря неудобный. ведь то можно было все в одном месте править, теперь нужно переключаться между вкладками.
    Зато contact form 7 приобрел дополнительные настройки, которых так не хватало. Лично мне не хватало. А то в метрике отслеживаешь только удачные клики, а если клик был но не удачный то я в метрике ничего не видел. Получается реклама шла впустую

  60. Светлана:

    помогите пожалуйста, обновила плагин contact form 7 и все формы перестали работать. не идет отправка данных, пишет мол сообщение не отправлено обратитесь к администратору сайта. Дополнительные настройки плагина я точно не трогала, правок больше никаких не вносила. если сталкивались с такой проблемой буду признательная за помощь.

    • admin:

      Добрый день.
      Думаю стоить обратиться к тех. поддержке, возможно это связанно именно с их действиями, а не обновлением плагина contact form 7. У меня был случай когда хостер отключал обратную связь за спам, а заметил это пользователь когда начал тестировать форму после обновления. Дополнительные настройки на это точно никак не влияют.

  61. Стас:

    Для меня конечно хватало и одной настройки события, но тестовый режим для форм CF7 это довольно круто и удобно при разработке.
    Дополнительные настройки contact form 7 это в первую очередь помощь разработчикам, простым пользователям они и не понятны и не сильно нужны 🙂

Сделать заказ
Онлайн помощь по WordPress