Tribe__Validate::__construct( string $field_id, array $field, mixed $value, $additional_args = array() )
Class constructor
Contents
Parameters
- $field_id
-
(string) (Required) The field ID to validate
- $field
-
(array) (Required) The field object to validate
- $value
-
(mixed) (Required) The value to validate
Source
File: src/Tribe/Validate.php
public function __construct( $field_id, $field, $value, $additional_args = array() ) {
// prepare object properties
$this->result = new stdClass;
$this->field = $field;
$this->field['id'] = $field_id;
$this->value = $value;
$this->additional_args = $additional_args;
// if the field is invalid or incomplete, fail validation
if ( ! is_array( $this->field ) || ! ( isset( $this->field['validation_type'] ) || isset( $this->field['validation_callback'] ) ) ) {
$this->result->valid = false;
$this->result->error = esc_html__( 'Invalid or incomplete field passed', 'tribe-common' );
$this->result->error .= ( isset( $this->field['id'] ) ) ? ' (' . esc_html__( 'Field ID:', 'tribe-common' ) . ' ' . $this->field['id'] . ' )' : '';
}
// call validation callback if a validation callback function is set
if ( isset( $this->field['validation_callback'] ) ) {
if ( is_callable( $this->field['validation_callback'] ) || function_exists( $this->field['validation_callback'] ) ) {
if ( ( ! isset( $_POST[ $field_id ] ) || ! $_POST[ $field_id ] || $_POST[ $field_id ] == '' ) && isset( $this->field['can_be_empty'] ) && $this->field['can_be_empty'] ) {
$this->result->valid = true;
} else {
$this->result->valid = call_user_func( $this->field['validation_callback'], $value );
if ( ! $this->result->valid ) {
$this->result->error = esc_html__( 'Invalid or incomplete field passed', 'tribe-common' );
$this->result->error .= ( isset( $this->field['id'] ) ) ? ' (' . esc_html__( 'Field ID:', 'tribe-common' ) . ' ' . $this->field['id'] . ' )' : '';
}
}
}
}
if ( isset( $this->field['validation_type'] ) ) {
if ( method_exists( $this, $this->field['validation_type'] ) ) {
// make sure there's a field validation type set for this validation and that such method exists
$this->type = $this->field['validation_type'];
$this->label = isset( $this->field['label'] ) ? $this->field['label'] : $this->field['id'];
if ( ( ! isset( $_POST[ $field_id ] ) || ! $_POST[ $field_id ] || $_POST[ $field_id ] == '' ) && isset( $this->field['can_be_empty'] ) && $this->field['can_be_empty'] ) {
$this->result->valid = true;
} else {
call_user_func( array( $this, $this->type ) ); // run the validation
}
} else {
// invalid validation type set, validation fails
$this->result->valid = false;
$this->result->error = esc_html__( 'Non-existant field validation function passed', 'tribe-common' );
$this->result->error .= ( isset( $this->field['id'] ) ) ? ' (' . esc_html__( 'Field ID:', 'tribe-common' ) . ' ' . $this->field['id'] . ' ' . _x( 'with function name:', 'non-existant function name passed for field validation', 'tribe-common' ) . ' ' . $this->field['validation_type'] . ' )' : '';
}
}
}