null, 'isAudienceSegmentationWidgetHidden' => false, ); } /** * Merges an array of settings to update. * * @since 1.124.0 * * @param array $partial Partial settings array to save. * @return bool True on success, false on failure. */ public function merge( array $partial ) { $settings = $this->get(); $partial = array_filter( $partial, function ( $value ) { return null !== $value; } ); $allowed_settings = array( 'configuredAudiences' => true, 'isAudienceSegmentationWidgetHidden' => true, ); $updated = array_intersect_key( $partial, $allowed_settings ); return $this->set( array_merge( $settings, $updated ) ); } /** * Gets the callback for sanitizing the setting's value before saving. * * @since 1.124.0 * * @return callable Sanitize callback. */ protected function get_sanitize_callback() { return function ( $settings ) { if ( ! is_array( $settings ) ) { return array(); } $sanitized_settings = array(); if ( isset( $settings['configuredAudiences'] ) ) { $sanitized_settings['configuredAudiences'] = Sanitize::sanitize_string_list( $settings['configuredAudiences'] ); } if ( isset( $settings['isAudienceSegmentationWidgetHidden'] ) ) { $sanitized_settings['isAudienceSegmentationWidgetHidden'] = false !== $settings['isAudienceSegmentationWidgetHidden']; } return $sanitized_settings; }; } }