Automattic\WooCommerce\StoreApi\Schemas\V1
AbstractAddressSchema::validate_callback()
Validate the given address object.
Метод класса: AbstractAddressSchema{}
Хуков нет.
Возвращает
true|\WP_Error
.
Использование
$AbstractAddressSchema = new AbstractAddressSchema(); $AbstractAddressSchema->validate_callback( $address, $request, $param );
- $address(массив) (обязательный)
- Value being sanitized.
- $request(\WP_REST_Request) (обязательный)
- The Request.
- $param(строка) (обязательный)
- The param being sanitized.
Заметки
- Смотрите: rest_validate_value_from_schema
Код AbstractAddressSchema::validate_callback() AbstractAddressSchema::validate callback WC 7.5.1
public function validate_callback( $address, $request, $param ) { $errors = new \WP_Error(); $address = $this->sanitize_callback( $address, $request, $param ); $validation_util = new ValidationUtils(); if ( ! empty( $address['country'] ) && ! in_array( $address['country'], array_keys( wc()->countries->get_countries() ), true ) ) { $errors->add( 'invalid_country', sprintf( /* translators: %s valid country codes */ __( 'Invalid country code provided. Must be one of: %s', 'woocommerce' ), implode( ', ', array_keys( wc()->countries->get_countries() ) ) ) ); return $errors; } if ( ! empty( $address['state'] ) && ! $validation_util->validate_state( $address['state'], $address['country'] ) ) { $errors->add( 'invalid_state', sprintf( /* translators: %1$s given state, %2$s valid states */ __( 'The provided state (%1$s) is not valid. Must be one of: %2$s', 'woocommerce' ), esc_html( $address['state'] ), implode( ', ', array_keys( $validation_util->get_states_for_country( $address['country'] ) ) ) ) ); } if ( ! empty( $address['postcode'] ) && ! \WC_Validation::is_postcode( $address['postcode'], $address['country'] ) ) { $errors->add( 'invalid_postcode', __( 'The provided postcode / ZIP is not valid', 'woocommerce' ) ); } if ( ! empty( $address['phone'] ) && ! \WC_Validation::is_phone( $address['phone'] ) ) { $errors->add( 'invalid_phone', __( 'The provided phone number is not valid', 'woocommerce' ) ); } return $errors->has_errors( $errors ) ? $errors : true; }