WP_Customize_Manager::validate_setting_values( array $setting_values, array $options = array() ): array

Validates setting values.


Description

Validation is skipped for unregistered settings or for values that are already null since they will be skipped anyway. Sanitization is applied to values that pass validation, and values that become null or WP_Error after sanitizing are marked invalid.

Top ↑

See also


Top ↑

Parameters

$setting_values array Required
Mapping of setting IDs to values to validate and sanitize.
$options array Optional
Options.
  • validate_existencebool
    Whether a setting's existence will be checked.
  • validate_capabilitybool
    Whether the setting capability will be checked.

Default: array()


Top ↑

Return

array Mapping of setting IDs to return value of validate method calls, either true or WP_Error.


Top ↑

Source

File: wp-includes/class-wp-customize-manager.php. View all references

public function validate_setting_values( $setting_values, $options = array() ) {
	$options = wp_parse_args(
		$options,
		array(
			'validate_capability' => false,
			'validate_existence'  => false,
		)
	);

	$validities = array();
	foreach ( $setting_values as $setting_id => $unsanitized_value ) {
		$setting = $this->get_setting( $setting_id );
		if ( ! $setting ) {
			if ( $options['validate_existence'] ) {
				$validities[ $setting_id ] = new WP_Error( 'unrecognized', __( 'Setting does not exist or is unrecognized.' ) );
			}
			continue;
		}
		if ( $options['validate_capability'] && ! current_user_can( $setting->capability ) ) {
			$validity = new WP_Error( 'unauthorized', __( 'Unauthorized to modify setting due to capability.' ) );
		} else {
			if ( is_null( $unsanitized_value ) ) {
				continue;
			}
			$validity = $setting->validate( $unsanitized_value );
		}
		if ( ! is_wp_error( $validity ) ) {
			/** This filter is documented in wp-includes/class-wp-customize-setting.php */
			$late_validity = apply_filters( "customize_validate_{$setting->id}", new WP_Error(), $unsanitized_value, $setting );
			if ( is_wp_error( $late_validity ) && $late_validity->has_errors() ) {
				$validity = $late_validity;
			}
		}
		if ( ! is_wp_error( $validity ) ) {
			$value = $setting->sanitize( $unsanitized_value );
			if ( is_null( $value ) ) {
				$validity = false;
			} elseif ( is_wp_error( $value ) ) {
				$validity = $value;
			}
		}
		if ( false === $validity ) {
			$validity = new WP_Error( 'invalid_value', __( 'Invalid value.' ) );
		}
		$validities[ $setting_id ] = $validity;
	}
	return $validities;
}


Top ↑

Changelog

Changelog
Version Description
4.6.0 Introduced.

Top ↑

User Contributed Notes

You must log in before being able to contribute a note or feedback.