LLMS_Form_Validator::validate_field( mixed $posted_value, array $field )

Validate a posted value


Parameters Parameters

$posted_value

(mixed) (Required) Posted data.

$field

(array) (Required) LifterLMS Form Field settings array.


Top ↑

Return Return

(WP_Error|true)


Top ↑

Source Source

File: includes/forms/class-llms-form-validator.php

	public function validate_field( $posted_value, $field ) {

		// Validate field by type.
		$type_map = array(
			'email'  => array( $this, 'validate_field_email' ),
			'number' => array( $this, 'validate_field_number' ),
			'tel'    => array( $this, 'validate_field_tel' ),
			'url'    => array( $this, 'validate_field_url' ),
		);

		// Turn the submitted value into array, so to unify validation of scalar and array posted values.
		$to_validate = is_array( $posted_value ) ? $posted_value : array( $posted_value );

		foreach ( $to_validate as $value ) {

			$valid = isset( $type_map[ $field['type'] ] ) ? call_user_func( $type_map[ $field['type'] ], $value, $field ) : true;
			if ( is_wp_error( $valid ) ) { // Return as soon as a field is not valid.
				return $valid;
			}

			// HTML Attribute Validations.
			if ( ! empty( $field['attributes']['minlength'] ) ) {
				$valid = $this->validate_field_attribute_minlength( $value, $field['attributes']['minlength'], $field );
				if ( is_wp_error( $valid ) ) {
					return $valid;
				}
			}
		}

		// Perform special validations for special field types (scalar by their nature).
		$extra_map = array(
			'llms_voucher'     => array( $this, 'validate_field_voucher' ),
			'password_current' => array( $this, 'validate_field_current_password' ),
			'user_email'       => array( $this, 'validate_field_user_email' ),
			'user_login'       => array( $this, 'validate_field_user_login' ),
		);
		$valid     = isset( $extra_map[ $field['id'] ] ) ? call_user_func( $extra_map[ $field['id'] ], $posted_value ) : true;
		if ( is_wp_error( $valid ) ) {
			return $valid;
		}

		return true;

	}


Top ↑

Changelog Changelog

Changelog
Version Description
5.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

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