Automattic\WooCommerce\Blocks\Domain\Services
CheckoutFields::get_validate_callback
Returns the validate callback for a given field.
Method of the class: CheckoutFields{}
No Hooks.
Returns
callable. The validate callback.
Usage
$CheckoutFields = new CheckoutFields(); $CheckoutFields->get_validate_callback( $field, $document_object );
- $field(array) (required)
- The field.
- $document_object(DocumentObject|null)
- The document object.
Default:null
CheckoutFields::get_validate_callback() CheckoutFields::get validate callback code WC 10.8.1
public function get_validate_callback( $field, $document_object = null ) {
if ( is_string( $field ) ) {
$field = $this->additional_fields[ $field ] ?? [];
}
if ( $document_object && $this->contains_valid_rules( $field['validation'] ) ) {
return function ( $field_value, $field ) use ( $document_object ) {
$errors = new WP_Error();
// Only validate if we have a field.
if ( ! $field ) {
return true;
}
// Evaluate custom validation schema rules on the field.
$validate_result = $this->is_valid_field( $field, $document_object );
if ( is_wp_error( $validate_result ) ) {
/* translators: %s: is the field label */
$error_message = sprintf( __( 'Please provide a valid %s', 'woocommerce' ), $field['label'] );
$error_code = 'woocommerce_invalid_checkout_field';
$errors->add( $error_code, $error_message );
}
return $errors->has_errors() ? $errors : true;
};
}
return $field['validate_callback'] ?? null;
}