WP_REST_Request::has_valid_params(): true|WP_Error

In this article

Checks whether this request is valid according to its attributes.

Return

true|WP_Error True if there are no parameters to validate or if all pass validation, WP_Error if required parameters are missing.

Source

public function has_valid_params() {	// If JSON data was passed, check for errors.	$json_error = $this->parse_json_params();	if ( is_wp_error( $json_error ) ) {	return $json_error;	}	$attributes = $this->get_attributes();	$required = array();	$args = empty( $attributes['args'] ) ? array() : $attributes['args'];	foreach ( $args as $key => $arg ) {	$param = $this->get_param( $key );	if ( isset( $arg['required'] ) && true === $arg['required'] && null === $param ) {	$required[] = $key;	}	}	if ( ! empty( $required ) ) {	return new WP_Error(	'rest_missing_callback_param',	/* translators: %s: List of required parameters. */	sprintf( __( 'Missing parameter(s): %s' ), implode( ', ', $required ) ),	array(	'status' => 400,	'params' => $required,	)	);	}	/* * Check the validation callbacks for each registered arg. * * This is done after required checking as required checking is cheaper. */	$invalid_params = array();	$invalid_details = array();	foreach ( $args as $key => $arg ) {	$param = $this->get_param( $key );	if ( null !== $param && ! empty( $arg['validate_callback'] ) ) {	/** @var bool|\WP_Error $valid_check */	$valid_check = call_user_func( $arg['validate_callback'], $param, $this, $key );	if ( false === $valid_check ) {	$invalid_params[ $key ] = __( 'Invalid parameter.' );	}	if ( is_wp_error( $valid_check ) ) {	$invalid_params[ $key ] = implode( ' ', $valid_check->get_error_messages() );	$invalid_details[ $key ] = rest_convert_error_to_response( $valid_check )->get_data();	}	}	}	if ( $invalid_params ) {	return new WP_Error(	'rest_invalid_param',	/* translators: %s: List of invalid parameters. */	sprintf( __( 'Invalid parameter(s): %s' ), implode( ', ', array_keys( $invalid_params ) ) ),	array(	'status' => 400,	'params' => $invalid_params,	'details' => $invalid_details,	)	);	}	if ( isset( $attributes['validate_callback'] ) ) {	$valid_check = call_user_func( $attributes['validate_callback'], $this );	if ( is_wp_error( $valid_check ) ) {	return $valid_check;	}	if ( false === $valid_check ) {	// A WP_Error instance is preferred, but false is supported for parity with the per-arg validate_callback.	return new WP_Error( 'rest_invalid_params', __( 'Invalid parameters.' ), array( 'status' => 400 ) );	}	}	return true; } 

Changelog

VersionDescription
4.4.0Introduced.

User Contributed Notes

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