#php #wordpress
#php #wordpress
Вопрос:
Я разрабатываю расширение beaver builder, и все работает нормально, но проблема в том, что я хочу предоставить клиенту несколько доступных опций, чтобы он / она мог выбирать их соответствующие опции, и мы можем предоставить функциональность в соответствии с их выбором.
Например, я хочу предоставить 2 варианта. Вариант первый, выберите тип вашего сообщения? Опции «post», «пользовательская запись» … теперь, если он / она выбирает «опубликовать», я хочу показать некоторые параметры, относящиеся только к публикации, но если он / она выбирает «пользовательское сообщение», я хочу показать параметры, связанные с пользовательским сообщением. Я сделал это в Visual composer, но пока не смог сделать в beaver builder.
Вот часть моего кода:
'sections' => array( // Tab Sections
'general' => array( // Section
'title' => __('Section Title', 'fl-builder'), // Section Title
'fields' => array( // Section Fields
'select_field' => array(
'type' => 'select',
'label' => __('Show Filter or Not?', 'fl-builder'),
'default' => 'option-1',
'options' => array(
'option-1' => __('Yes', 'fl-builder'),
'option-2' => __('No', 'fl-builder')
)
),
'no_of_posts' => array(
'type' => 'my-custom-field',
'label' => __('Provide your desired number of Posts', 'fl-builder'),
'default' => '8'
),
'no_of_cols' => array(
'type' => 'select',
'label' => __('Provide your desired number of Cols', 'fl-builder'),
'default' => 'option-2',
'options' => array(
'option-1' => __('2', 'fl-builder'),
'option-2' => __('3', 'fl-builder'),
'option-3' => __('4', 'fl-builder'),
'option-4' => __('6', 'fl-builder')
)
),
'show_overlay' => array(
'type' => 'select',
'label' => __('Do You Want to Show Overlay?', 'fl-builder'),
'default' => 'option-1',
'options' => array(
'option-1' => __('Yes', 'fl-builder'),
'option-2' => __('No', 'fl-builder')
)
),
'show_lightbox' => array(
'type' => 'select',
'label' => __('Do You Want to Open Image in lightbox?', 'fl-builder'),
'default' => 'option-1',
'options' => array(
'option-1' => __('Yes', 'fl-builder'),
'option-2' => __('No', 'fl-builder')
)
),
'show_lightbox_link' => array(
'type' => 'select',
'label' => __('Do You Want to show Link Icon in Lightbox?', 'fl-builder'),
'default' => 'option-1',
'options' => array(
'option-1' => __('Yes', 'fl-builder'),
'option-2' => __('No', 'fl-builder')
)
),
'show_title' => array(
'type' => 'select',
'label' => __('Do You Want to show Post Title?', 'fl-builder'),
'default' => 'option-1',
'options' => array(
'option-1' => __('Yes', 'fl-builder'),
'option-2' => __('No', 'fl-builder')
)
),
'show_title_link' => array(
'type' => 'select',
'label' => __('Do You Want to use Link in Post Title?', 'fl-builder'),
'default' => 'option-1',
'options' => array(
'option-1' => __('Yes', 'fl-builder'),
'option-2' => __('No', 'fl-builder')
)
),
'show_content' => array(
'type' => 'select',
'label' => __('Do You Want to show Post Content?', 'fl-builder'),
'default' => 'option-1',
'options' => array(
'option-1' => __('Yes', 'fl-builder'),
'option-2' => __('No', 'fl-builder')
)
),
'show_link' => array(
'type' => 'select',
'label' => __('Do You Want to show Post Link?', 'fl-builder'),
'default' => 'option-1',
'options' => array(
'option-1' => __('Yes', 'fl-builder'),
'option-2' => __('No', 'fl-builder')
)
),
Суть опять проста: я хочу показывать свои параметры только тогда, когда выбран какой-либо другой соответствующий параметр.
Например, если пользователь выбирает опцию «post», то это должно быть сделано
'no_of_cols' => array(
'type' => 'select',
'label' => __('Provide your desired number of Cols', 'fl-builder'),
'default' => 'option-2',
'options' => array(
'option-1' => __('2', 'fl-builder'),
'option-2' => __('3', 'fl-builder'),
'option-3' => __('4', 'fl-builder'),
'option-4' => __('6', 'fl-builder')
)
),
Означает, что я хочу показывать параметры для выбора, только если выбран post и т. Д. Надеюсь, я четко изложил свою проблему.
Ответ №1:
Возможно, я слишком поздно для этого!
Но вам просто нужно использовать ‘toggle’.
'select_field' => array(
'type' => 'select',
'label' => __('Show Filter or Not?', 'fl-builder'),
'default' => 'option-1',
'options' => array(
'option-1' => __('Yes', 'fl-builder'),
'option-2' => __('No', 'fl-builder')
),
'toggle' => array(
'option-1' = array(
'fields' => array('another_field')
)
)
),
'another_field' => array()