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.
- 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 anddata-conditional-value
which should match the conditional value
data-conditional-id
which should match the conditional feild ID.data-conditional-value
which should match the conditional value.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' ) ),
),