@Shustoff_od

Как передать значение произвольного поля типа repeater в Contact Form 7 в виде радио-кнопок?

Итак, стоит следующая задача:
1) Есть поле типа repeater в постах (сделано при помощи плагина Advanced Custom Fields)
2) Есть форма в CF7

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

Знания WP у меня хорошие, php - средние. Сам такой модуль не напишу. Единственный вариант, который пришёл в голову - генерация подобной формы через php-mailer. Но как-то некомильфо его на WP использовать.
  • Вопрос задан
  • 1652 просмотра
Пригласить эксперта
Ответы на вопрос 2
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Никогда не сталкивался с подобной задачей, но думаю она решаема.
Например, можно взять за основу плагин Contact Form 7 Dynamic Text Extension. У него в функционале заявлена возможность получения мета-данных. (Retrieve custom fields from the current post/page. Just set the custom field as the key in the shortcode.).
Разобраться как он работает и смастерить своё поле для Contact Form 7. Ну и документация по добавлению своих тегов в Contact Form 7 в помощь.
Ответ написан
@xaruki
Пример для select. Для checkbox меняйте под себя.

1 - Создаете поле в cf7 без значений [select menu-71 id:roomtype]
2 - Запускаете acf repeater где-нибудь в подвале и формируете html типа
<div class="type__item">
	<h3><?php echo $modal_roomtype_repeater_name; ?></h3>
	<h4><?php echo $modal_roomtype_repeater_price; ?></h4>
</div>

3 - Ниже, с помощью jquery через each function проходитесь по .type__item, собираете значения и добавляете в cf7
$('.type__item').each(function() {
	      var title = ($(this).find('h3').text());
	      var price = ($(this).find('h4').text());
	      $('<option>').val(title).attr('data-price', price).text(title).appendTo('#roomtype');
	    });
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы