Давайте разделим задачу на две составляющие
чекбокс и произвольное поле
чекбокс - это элемент. Внешний элемент.
Произвольное поле - это.. как бы сформулировать.. сущность базы.. некий массив - ключ\значение.. тостеры поправлят..
Суть в том, что выводить поле можно как угодно. Любым элементом практически. Как кнопку, слой(div) список, чекбокс итд.
Таким образом, когда Вы запрашиваете произвольное поле, Вы можете вывести его как чекбокс
<div class="form-check form-check-inline custom-checkbox">
<div class="custom-control custom-checkbox mr-2">
<input type="checkbox" class="custom-control-input" id="slug поля">
label class="custom-control-label" for="slug поля">Значение переменной</label>
</div>
</div>
Выводить поля можно циклом, если нужно.
У чекбокса есть состояние checked. Сохраняя или выводя значения как поле со значением аки true или false Вы получите нужный результат