Поля в Carbon fields являются строительным блоком каждого контейнера. Новое поле создается с помощью метода make Field:: make( $type, $name, $label = null), где: $type –  тип поля. $name – имя поля. Используется в качестве ключа при хранении в базе данных и для получения его значения. Обратите внимание, что все поля имеют свои имена автоматически с префиксом подчеркивания при хранении (например, bgcolor становится _bgcolor). $label (необязательно) – метка поля отображается только в фоновом режиме, где виден контейнер. Если параметр опущен, он автоматически выводится из $name, если этот параметр опущен, и $name начинается с crb_, часть crb не будет отображаться в сгенерированной метке. Примеры // Создать поле изображения с именем “customer_photo” и меткой ” Photo ” Плагин Carbon fields. Часть 4 – Использование полей
Field::make( ‘image’, ‘crb_customer_photo’, ‘Photo’ )
// Метод цепочки Плагин Carbon fields. Часть 4 – Использование полей
Field::make( ‘select’, ‘crb_color’ ) -> add_options( array(‘red’, ‘blue’, ‘green’) ) -> set_help_text( ‘Pick a color’ )
Все типы полей происходят из одного класса с именем Field и наследуют следующие основные функции:

Значение по умолчанию

Можно назначить значение по умолчанию для каждого поля в каждом контейнере. Значение по умолчанию используется, когда в настоящее время нет значения для конкретного поля в базе данных. Это происходит, например, при добавлении новой записи или нового поля параметров темы в существующий контейнер. Чтобы назначить значение по умолчанию, используйте: Field::make(…)->set_default_value( $default_value ) Например
->add_fields( array( Field::make( ‘text’, ‘crb_title’,__( ‘Title’ ) ) ->set_default_value( “value” )  // по умолчанию
Плагин Carbon fields. Часть 4 – Использование полей

Требуемые поля

Вы можете пометить любое поле по мере необходимости, в этом случае пользователю необходимо будет заполнить его перед отправкой. Чтобы задать необходимое поле, используйте: Field::make(…)->set_required( true ) Плагин Carbon fields. Часть 4 – Использование полей Вот полная запись:
Container::make( ‘theme_options’, __( ‘Customize Background’ ) ) ->add_fields( array( Field::make( ‘text’, ‘crb_title’,__( ‘Title’ ) ) ->set_default_value( “value” ) ->set_required( true ) ) );

Текст справки

Текст справки используется как подсказка пользователю, который будет использовать поле. Он обычно отображается под полем и содержит больше информации о том, что он должен содержать – требования, примеры, ссылки и т. д. HTML теги разрешены. Текст справки добавляется с помощью: Field::make(…)->set_help_text( $text )

Ширина

Вы можете установить ширину полей, которые находятся рядом друг с другом, и они будут выровнены по одной строке. Чтобы задать ширину поля в %, используйте: Field::make(…)->set_width( 50 ) Например
Field::make( ‘text’, ‘crb_title’,__( ‘Title’ ) ) ->set_default_value( “value” ) ->set_required( true ) ->set_width( 80 ) , Field::make( ‘text’, ‘crb_title1’,__( ‘Title1’ ) ) ->set_width( 20 ) ,
Плагин Carbon fields. Часть 4 – Использование полей

Классы

Пользовательские классы полей могут быть добавлены с помощью метода set_classes (), например:
Field::make(…)->set_classes( ‘my-custom-class’ )

Атрибуты

Некоторые атрибуты полей можно переопределить с помощью метода set_attribute() полей на основе <input> и <textarea>:
Field::make( ‘text’, ‘crb_phone’, ‘Phone’ ) -> set_attribute( ‘placeholder’, ‘(***) ***-****’ );

Условная логика

Вы можете применить условную логику к полю, используя set_conditional_logic( $rules ), чтобы показать или скрыть его на основе других полей в том же контейнере. Синтаксис аналогичен meta_query. Условные правила передаются в двумерном массиве, и каждое правило может иметь следующие аргументы в виде пар ключ=>значение:
Ключ Описание Тип Знач-е по умолчанию Обязательный
field Имя поля, к которому применяется правило. Имя должно быть таким же, как определено в контейнере. string Yes
value Значение поля. Это может быть массив только тогда, когда compare это IN, NOT IN, INCLUDES or EXCLUDES. String или array “” No
compare Оператор для проверки. Возможные значения: =, <, >, <=, >=, IN, NOT IN, INCLUDES, EXCLUDES. string = No
При необходимости можно передать ключ связи и задать для него значение AND (по умолчанию) или OR. Он определяет отношение, когда существует более одного правила. Например, сделаем 2 поля, если в первом значится «yes» показываем второе, если «no» – срываем.
Field::make( ‘select’, ‘crb_show_socials’, ‘Show Socials’ ) ->add_options( array( ‘yes’ => ‘Yes’, ‘no’ => ‘No’, ) ), Field::make( ‘text’, ‘crb_facebook’, ‘Facebook URL’ ) ->set_conditional_logic( array( ‘relation’ => ‘AND’, // Необязательно, по умолчанию “AND” array( ‘field’ => ‘crb_show_socials’, ‘value’ => ‘yes’, // Необязательно, по умолчанию “”. ‘compare’ => ‘=’, // Необязательно, по умолчанию “=”. Доступные операторы: =, <, >, <=, >=, IN, NOT IN ) ) ),
Плагин Carbon fields. Часть 4 – Использование полей Поля условной логики ограничены родственными полями текущего поля. Чтобы зависеть от родительских полей, добавьте к их именам префикс parent. Например, чтобы зависеть от поля crb_in_production, которое находится на 2 уровня выше, используйте parent.parent.crb_in_production. Пример:
Field::make( ‘checkbox’, ‘crb_in_production’, ‘In Production’ ), Field::make( ‘complex’, ‘crb_makes’, ‘Makes’ ) ->add_fields( array( Field::make( ‘complex’, ‘models’, ‘Models’ ) ->add_fields( array( Field::make( ‘text’, ‘name’, ‘Name’ ), Field::make( ‘text’, ‘price’, ‘Price’ ) ->set_conditional_logic( array( array( ‘field’ => ‘parent.parent.crb_in_production’, ‘value’ => true, ) ) ) ) ) ) ),
Плагин Carbon fields. Часть 4 – Использование полей Плагин Carbon fields. Часть 4 – Использование полей