Skip to content

Commit ea4664b

Browse files
committed
tabbed and repeater fields not resetting when using Section Reset
1 parent 3626f85 commit ea4664b

File tree

1 file changed

+30
-3
lines changed

1 file changed

+30
-3
lines changed

redux-core/inc/classes/class-redux-options-constructor.php

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -840,10 +840,36 @@ public function validate_options( array $plugin_options ) {
840840
}
841841

842842
foreach ( $core->sections[ $plugin_options['redux-section'] ]['fields'] as $field ) {
843-
if ( isset( $core->options_defaults[ $field['id'] ] ) ) {
844-
$plugin_options[ $field['id'] ] = $core->options_defaults[ $field['id'] ];
843+
if ( 'tabbed' === $field['type'] ) {
844+
if ( ! empty( $field['tabs'] ) ) {
845+
foreach ( $field['tabs'] as $val ) {
846+
if ( ! empty( $val['fields'] ) ) {
847+
foreach ( $val['fields'] as $f ) {
848+
if ( isset( $core->options_defaults[ $f['id'] ] ) ) {
849+
$plugin_options[ $f['id'] ] = $core->options_defaults[ $f['id'] ];
850+
} else {
851+
$plugin_options[ $f['id'] ] = '';
852+
}
853+
}
854+
}
855+
}
856+
}
857+
} elseif ( 'repeater' === $field['type'] ) {
858+
if ( ! empty( $field['fields'] ) ) {
859+
foreach ( $field['fields'] as $f ) {
860+
if ( isset( $core->options_defaults[ $f['id'] ] ) ) {
861+
$plugin_options[ $f['id'] ] = $core->options_defaults[ $f['id'] ];
862+
} else {
863+
$plugin_options[ $f['id'] ] = '';
864+
}
865+
}
866+
}
845867
} else {
846-
$plugin_options[ $field['id'] ] = '';
868+
if ( isset( $core->options_defaults[ $field['id'] ] ) ) {
869+
$plugin_options[ $field['id'] ] = $core->options_defaults[ $field['id'] ];
870+
} else {
871+
$plugin_options[ $field['id'] ] = '';
872+
}
847873
}
848874

849875
if ( isset( $field['compiler'] ) ) {
@@ -862,6 +888,7 @@ public function validate_options( array $plugin_options ) {
862888
}
863889

864890
$core->transients['changed_values'] = array();
891+
865892
foreach ( $core->options as $key => $value ) {
866893
if ( isset( $plugin_options[ $key ] ) && $plugin_options[ $key ] !== $value ) {
867894
$core->transients['changed_values'][ $key ] = $value;

0 commit comments

Comments
 (0)