Note: This tutorial series is intended for advanced users. An advanced 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
ison
<?php
...
public function get_fields() {
return array(
'setting_a' => 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(
...
),
);
}
...
Only show setting_c
when:
setting_b
ison
AND
setting_a
is notsome_value
<?php
...
public function get_fields() {
return array(
'setting_a' => 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',
),
),
);
}
...
Only show setting_a
when:
setting_b
is one ofvalue_1
,value_3
,value_4
AND
setting_c
is notsome_value
AND
setting_d
is not one ofvalue_1
,value_4
<?php
...
public function get_fields() {
return array(
'setting_a' => 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(
...
),
);
}
...