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

Ссылка скопирована
1 ответ

Подскажите, как можно реализовать такое: https://nizhny-tagil-atmosfera.another-world.com/ac Перепробовал различные плагины, но результаты никакие. Требуется именно возможность подгрузки новых полей (карточек игроков) при нажатии кнопки "ДОБАВИТЬ ЕЩЕ УЧАСТНИКА". Помогите люди добрые

Дополнительно:

Причём тут какая-то "вариативная"? И пиши словами что конкретно тебе нужно.

  • Refguser, ну да, криво написал. Нужно сделать точно такую же форму, что бы можно было добавлять новые данные нажав на кнопку добавить (ещё игрока). Все остальное решается стандартными средствами cf7. Но как сделать так, что бы подгружалссь форма с полями, я не понимаю.
  • Василий, исправь вопрос.
  • Refguser, поправил
  • Василий, не знаю что ты поправил, но в вопросе ничего нет о задаче
  • Сдклал, не оправилось первый раз, извините
  • Требуется именно возможность подгрузки новых полей (карточек игроков) при нажатии кнопки "ДОБАВИТЬ ЕЩЕ УЧАСТНИКА".

    К CF7 есть разные дополнения. Например https://wordpress.org/plugins/cf7-repeatable-fields/

    • Спасибо, попробую
    • ОГРОМНОЕ СПАСИБО, СРАБОТАЛО!
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Игорь NetOps Ответ

    Вам нужна повторяемая группа полей на фронте: пользователь нажимает «Добавить ещё участника», и появляется ещё один набор полей. В Contact Form 7 это можно сделать, но не очень удобно, потому что CF7 из коробки не умеет repeater-группы. Проще использовать плагин форм с repeater-полями или написать небольшой JS.

    Если оставаться на CF7, схема такая: в форме заранее создаёте контейнер для участников и кнопку, а JS клонирует шаблон полей. Важно, чтобы имена полей были массивами:

    <div id="players">
      <div class="player-row">
        [text players_name[] placeholder "Имя игрока"]
        [text players_age[] placeholder "Возраст"]
      </div>
    </div>
    <button type="button" id="add-player">Добавить ещё участника</button>

    <div id="players"> <div class="player-row"> [text players_name[] placeholder "Имя игрока"] [text players_age[] placeholder "Возраст"] </div> </div> <button type="button" id="add-player">Добавить ещё участника</button>

    Но CF7 может не всегда корректно обработать массивы в письме без дополнительной настройки. Поэтому часто делают отдельный hidden field и перед отправкой собирают данные JS-ом в одну строку/JSON.

    Более удобные плагины для такой задачи:

    • Gravity Forms Repeater;
    • Formidable Forms Repeater;
    • Fluent Forms Repeater Field;
    • ACF frontend forms, если данные должны сохраняться как записи.

    Если данные участников должны просто прийти на почту, form plugin с repeater — лучший вариант. Если каждый участник должен стать отдельной записью/заявкой в базе, лучше делать кастомный обработчик или использовать плагин, который умеет сохранять repeater-данные.

    Не пытайтесь подгружать новый shortcode CF7 при каждом клике. Нужно не новую форму грузить, а добавлять ещё один набор input внутри той же формы. Тогда отправка будет одна, валидация понятная, и пользователь не потеряет введённые данные.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно