@@ -141,6 +141,11 @@ public function status() {
141
141
* @throws Exception When $settings_data is not an array of arrays.
142
142
*
143
143
* @param array $settings_data Settings data, mapping setting IDs to arrays containing `value` and optionally additional params.
144
+ * @param array $options {
145
+ * Additional options.
146
+ *
147
+ * @type bool $skip_validation Whether to skip validation. Optional, defaults to false.
148
+ * }
144
149
* @return array {
145
150
* Result.
146
151
*
@@ -149,7 +154,7 @@ public function status() {
149
154
* @type array $validities Setting validities.
150
155
* }
151
156
*/
152
- public function set ( array $ settings_data ) {
157
+ public function set ( array $ settings_data, array $ options = array () ) {
153
158
$ error = new \WP_Error ();
154
159
$ result = array (
155
160
'errors ' => null ,
@@ -188,26 +193,29 @@ public function set( array $settings_data ) {
188
193
)
189
194
);
190
195
191
- // Validate.
192
- if ( method_exists ( $ customize_manager , 'validate_setting_values ' ) ) {
193
- $ result ['validities ' ] = $ customize_manager ->validate_setting_values ( $ unsanitized_values );
194
- } else {
195
- // @codeCoverageIgnoreStart
196
- $ result ['validities ' ] = array_map (
197
- function ( $ sanitized ) {
198
- if ( is_null ( $ sanitized ) ) {
199
- return new \WP_Error ( 'invalid_value ' , __ ( 'Invalid value ' , 'customize-snapshots ' ) );
200
- } else {
201
- return true ;
202
- }
203
- },
204
- $ unsanitized_values
205
- );
206
- // @codeCoverageIgnoreEnd
196
+ $ invalid_setting_ids = array ();
197
+ if ( empty ( $ options ['skip_validation ' ] ) ) {
198
+ // Validate.
199
+ if ( method_exists ( $ customize_manager , 'validate_setting_values ' ) ) {
200
+ $ result ['validities ' ] = $ customize_manager ->validate_setting_values ( $ unsanitized_values );
201
+ } else {
202
+ // @codeCoverageIgnoreStart
203
+ $ result ['validities ' ] = array_map (
204
+ function ( $ sanitized ) {
205
+ if ( is_null ( $ sanitized ) ) {
206
+ return new \WP_Error ( 'invalid_value ' , __ ( 'Invalid value ' , 'customize-snapshots ' ) );
207
+ } else {
208
+ return true ;
209
+ }
210
+ },
211
+ $ unsanitized_values
212
+ );
213
+ // @codeCoverageIgnoreEnd
214
+ }
215
+ $ invalid_setting_ids = array_keys ( array_filter ( $ result ['validities ' ], function ( $ validity ) {
216
+ return is_wp_error ( $ validity );
217
+ } ) );
207
218
}
208
- $ invalid_setting_ids = array_keys ( array_filter ( $ result ['validities ' ], function ( $ validity ) {
209
- return is_wp_error ( $ validity );
210
- } ) );
211
219
212
220
// Sanitize.
213
221
foreach ( $ unsanitized_values as $ setting_id => $ unsanitized_value ) {
0 commit comments