diff --git a/Lib/WeDevs_Settings_API.php b/Lib/WeDevs_Settings_API.php
index 35af847a0..dda8008a6 100644
--- a/Lib/WeDevs_Settings_API.php
+++ b/Lib/WeDevs_Settings_API.php
@@ -141,6 +141,7 @@ function admin_init() {
'step' => isset( $option['step'] ) ? $option['step'] : '',
'is_pro_preview' => ! empty( $option['is_pro_preview'] ) ? $option['is_pro_preview'] : false,
'depends_on' => ! empty( $option['depends_on'] ) ? $option['depends_on'] : '',
+ 'depends_on_value' => ! empty( $option['depends_on_value'] ) ? $option['depends_on_value'] : '',
);
add_settings_field( $section . '[' . $option['name'] . ']', $option['label'], (isset($option['callback']) ? $option['callback'] : array($this, 'callback_' . $type )), $section, $section, $args );
@@ -180,10 +181,19 @@ function callback_text( $args ) {
$placeholder = empty( $args['placeholder'] ) ? '' : ' placeholder="' . $args['placeholder'] . '"';
$disabled = ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ? 'disabled' : '';
$depends_on = ! empty( $args['depends_on'] ) ? $args['depends_on'] : '';
+ $depends_on_value = ! empty( $args['depends_on_value'] ) ? $args['depends_on_value'] : '';
+
+ // Handle array dependencies
+ if (is_array($depends_on)) {
+ $depends_on_json = esc_attr( json_encode($depends_on) );
+ $depends_on_value = ''; // Not used for array format
+ } else {
+ $depends_on_json = esc_attr( $depends_on );
+ }
$html = sprintf(
- '',
- $type, $size, $args['section'], $args['id'], $value, $placeholder, $disabled, $depends_on
+ '',
+ $type, $size, $args['section'], $args['id'], $value, $placeholder, $disabled, $depends_on_json, esc_attr( $depends_on_value )
);
$html .= $this->get_field_description( $args );
@@ -191,7 +201,7 @@ function callback_text( $args ) {
$html .= wpuf_get_pro_preview_html();
}
- echo wp_kses( $html, array('input' => ['type' => [],'class' => [],'id' => [],'name' => [],'value' => [],'disabled' => [],'data-depends-on' => []], 'p' => ['class' => []], 'div' => ['class' => []], 'a' => ['href' => [],'target' => [],'class' => []], 'span' => ['class' => []], 'svg' => ['width' => [],'height' => [],'viewBox' => [],'fill' => [],'xmlns' => [],],));
+ echo wp_kses( $html, array('input' => ['type' => [],'class' => [],'id' => [],'name' => [],'value' => [],'disabled' => [],'data-depends-on' => [],'data-depends-on-value' => []], 'p' => ['class' => []], 'div' => ['class' => []], 'a' => ['href' => [],'target' => [],'class' => []], 'span' => ['class' => []], 'svg' => ['width' => [],'height' => [],'viewBox' => [],'fill' => [],'xmlns' => [],],));
}
/**
@@ -372,8 +382,18 @@ function callback_select( $args ) {
$value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
$disabled = ! empty( $args['is_pro_preview'] ) && $args['is_pro_preview'] ? 'disabled' : '';
$size = isset( $args['size'] ) && ! is_null( $args['size'] ) ? $args['size'] : 'regular';
+ $depends_on = ! empty( $args['depends_on'] ) ? $args['depends_on'] : '';
+ $depends_on_value = ! empty( $args['depends_on_value'] ) ? $args['depends_on_value'] : '';
+
+ // Handle array dependencies
+ if (is_array($depends_on)) {
+ $depends_on_json = esc_attr( json_encode($depends_on) );
+ $depends_on_value = ''; // Not used for array format
+ } else {
+ $depends_on_json = esc_attr( $depends_on );
+ }
- $html = sprintf( '