/CMB2-conditional-logic

A small jQuery plugin for handling conditional logic fields for CMB2.

Primary LanguageJavaScriptGNU General Public License v2.0GPL-2.0

CMB2 conditional logic

A small jQuery plugin for handling conditional logic fields for CMB2.
I used to use cmb2-conditionals pluing but since it doesn't work properly on Group fields and not updated for 2 years, I decided to create a new one. The plugin currently supports checkboxes, radios and select lists.

Installation

  • If you like, you can use WordPress ready verion here or simply include the CMB2-conditional-logic.js file in your project using admin_enqueue_scripts
  • Adding conditional fields is just like before, just add a new attributes parameters: data-conditional-id which should match the conditional feild ID and data-conditional-value which should match the conditional value

For adding conditional fields, add a new attributes parameter:

  1. data-conditional-id which should match the conditional feild ID.
  2. data-conditional-value which should match the conditional value.
  3. data-conditional-invert use true to invert the behaviour
    $cmb_demo->add_field( array(
        'name'          => __( 'Conditional select test:', 'your-text-domain' ),
        'desc'          => __('some description', 'your-text-domain'),
        'id'            => 'test_select_id',
        'type'          => 'select',
        'options'       => array(
            'one'    => __('one', 'your-text-domain' ),
            'two'    => __('two', 'your-text-domain'),
            'three'  => __('three', 'your-text-domain'),
        ),
    ) );
    // conditional field
    $cmb_demo->add_field(array(
        'name'          => __( 'Will show on value two selected', 'your-text-domain' ),
        'desc'          => __('some description', 'your-text-domain'),
        'id'            => 'test_select_depend',
        'type'          => 'select',
        'options'       => array(
            'four'   => __('Four', 'your-text-domain'),
            'five'   => __('Five', 'your-text-domain'),
            'six'    => __('Six', 'your-text-domain'),
        ),
        'attributes'    => array(
            'data-conditional-id'     => 'test_select_id',
            'data-conditional-value'  => 'two',
            // 'data-conditional-invert' => true
        ),
    ) );

You can add more than 1 value to the data-conditional-value using php wp_json_encode( array( 'value 1', 'value 2' ) ) like so:

        'attributes'    => array(
            'data-conditional-id'     => 'test_select_id',
            'data-conditional-value'  => wp_json_encode( array( 'two', 'three' ) ),
        ),

If you like to use this plugin as a stand-alone plugin check my conditionalScript