Настройка параметров модуля beaver builder выбрала able?

#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()