Settings Field Visibility
Learn how to show or hide a setting depending on the value of other settings.
Note: This tutorial series is intended for advanced users. At least a basic understanding of coding in PHP and JavaScript is required.
The visibility of a module setting can depend on the value of other settings by including one or both of the parameters described below in the setting definition.
Setting Visibility Parameters
show_if (array)
setting (string|string[]) — Setting value(s)
show_if_not (array)
setting (string|string[]) — Setting value(s)
Setting Visibility Examples
Only show setting_a when:
setting_b is on
array(
'label' => esc_html__( 'Setting A', 'myex-my-extension' ),
'type' => 'text',
'option_category' => 'basic_option',
'description' => esc_html__( 'Input something here.', 'myex-my-extension' ),
'toggle_slug' => 'main_content',
'show_if' => array(
'setting_b' => 'on',
),
),
'setting_b' => array(
...
),
);
}
...
view raw
module-setting-field-definition.php
hosted with by GitHub
Only show setting_c when:
setting_b is on
AND setting_a is not some_value
array(
...
),
'setting_b' => array(
...
),
'setting_c' => array(
'label' => esc_html__( 'Setting C', 'myex-my-extension' ),
'type' => 'text',
'option_category' => 'basic_option',
'description' => esc_html__( 'Input something else here.', 'myex-my-extension' ),
'toggle_slug' => 'main_content',
'show_if' => array(
'setting_b' => 'on',
),
'show_if_not' => array(
'setting_a' => 'some value',
),
),
);
}
...
view raw
module-settings-definition.php
hosted with by GitHub
Only show setting_a when:
setting_b is one of value_1, value_3, value_4
AND setting_c is not some_value
AND setting_d is not one of value_1, value_4
array(
'label' => esc_html__( 'Setting A', 'myex-my-extension' ),
'type' => 'text',
'option_category' => 'basic_option',
'description' => esc_html__( 'Input something here.', 'myex-my-extension' ),
'toggle_slug' => 'main_content',
'show_if' => array(
'setting_b' => array( 'value_1', 'value_3', 'value_4' ),
),
'show_if_not' => array(
'setting_c' => 'some_value',
'setting_d' => array( 'value_1', 'value_4' ),
),
),
'setting_b' => array(
...
),
'setting_c' => array(
...
),
'setting_d' => array(
...
),
);
}
...
view raw
pseudo-code.php
hosted with by GitHub