Contact Form 7 – Присвоить класс каждому чекбоксу?

Вопрос или проблема

Я использую Contact Form 7 и у меня есть группа чекбоксов в форме.
Я хочу присвоить каждому чекбоксу класс.
CF7 позволяет добавлять класс, но это относится только к родительскому объекту.
Я хочу добавить свой собственный класс к внутренним div.

Я хочу добавить пользовательский класс, потому что использую Bootstrap 4, и хочу, чтобы в строке было 3 чекбокса (например), присвоив класс ‘col-4’.

Картинка для помощи в объяснении

Я что-то упускаю?
Мне понадобится использовать JavaScript?

с использованием jQuery в footer.php

jQuery(document).ready(function($){  
  $('.wpcft-form-control div.checkbox').addClass('col-4');  
}

или через css (вам придется подстроить под разные разрешения экрана и провести некоторые тесты)

<style>  
.wpcft-form-control div.checkbox{width:33%;max-width:33%;float:left}  
</style>  

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

<div class="col-4">[checkbox checkbox-x  "option1"]</div>  
<div class="col-4">[checkbox checkbox-x  "option2"]</div>  
<div class="col-4">[checkbox checkbox-x  "option3"]</div>  

в редакторе формы

В настоящее время вы можете использовать class:yourclass в шорткоде. Это относится к .wpcf7-form-control div.

[checkbox checkbox-name class:yourclass “option”]

Ответ или решение

Для того чтобы добавить класс каждому чекбоксу в плагине Contact Form 7, существует несколько подходов. К сожалению, сама система CF7 напрямую не поддерживает добавление класса к каждому отдельному чекбоксу внутри группы, но вы можете использовать несколько различных методов для достижения желаемого результата.

1. Использование отдельных чекбоксов

Самый простой и эффективный способ — это создать отдельные чекбоксы для каждого варианта и обернуть каждый из них в div с нужным классом Bootstrap. Это позволит вам легко управлять стилями через класс "col-4" для достижения нужного размещения:

<div class="col-4">[checkbox checkbox-x "option1"]</div>
<div class="col-4">[checkbox checkbox-x "option2"]</div>
<div class="col-4">[checkbox checkbox-x "option3"]</div>

2. Использование jQuery

Если вы уже имеете группу чекбоксов и не хотите их разделять, вы можете использовать jQuery для добавления класса к необходимым элементам. Вот пример кода, который можно добавить в файл footer.php или в файл JavaScript вашей темы:

jQuery(document).ready(function($) {
  $('.wpcf7-form-control div.checkbox').addClass('col-4');
});

Этот код добавит класс col-4 к каждому div с классом checkbox, который содержит ваш чекбокс.

3. Использование CSS-кода

Если вы хотите управлять шириной чекбоксов через CSS, вы можете применить следующий стиль. Этот метод может требовать некоторых тестов по адаптивному дизайну:

<style>
.wpcf7-form-control div.checkbox {
  width: 33%;
  max-width: 33%;
  float: left;
}
</style>

4. Использование расширенного синтаксиса шорткодов

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

[checkbox checkbox-name class:yourclass "option1" "option2" "option3"]

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

Заключение

Каждый из вышеупомянутых методов имеет свои преимущества. Если вам необходимо точно контролировать макет и стили, использование отдельных шорткодов для каждого чекбокса будет наилучшим выбором. Если вы желаете сохранить структуру в группе, вы можете воспользоваться jQuery или CSS.

Если у вас есть дополнительные вопросы или проблемы, пожалуйста, дайте знать, и я с радостью помогу вам!

Оцените материал
Добавить комментарий

Капча загружается...