Tribe__Settings::validate()
validate the settings
Return
(void)
Source
File: src/Tribe/Settings.php
public function validate() { do_action( 'tribe_settings_validate_before_checks' ); // check that the right POST && variables are set if ( isset( $_POST['tribeSaveSettings'] ) && isset( $_POST['current-settings-tab'] ) ) { // check permissions if ( ! current_user_can( 'manage_options' ) ) { $this->errors[] = esc_html__( "You don't have permission to do that.", 'tribe-common' ); $this->major_error = true; } // check the nonce if ( ! wp_verify_nonce( $_POST['tribe-save-settings'], 'saving' ) ) { $this->errors[] = esc_html__( 'The request was sent insecurely.', 'tribe-common' ); $this->major_error = true; } // check that the request originated from the current tab if ( $_POST['current-settings-tab'] != $this->currentTab ) { $this->errors[] = esc_html__( "The request wasn't sent from this tab.", 'tribe-common' ); $this->major_error = true; } // bail if we have errors if ( count( $this->errors ) ) { remove_action( 'shutdown', array( $this, 'deleteOptions' ) ); add_option( 'tribe_settings_errors', $this->errors ); add_option( 'tribe_settings_major_error', $this->major_error ); wp_redirect( $this->url ); exit; } // some hooks do_action( 'tribe_settings_validate' ); do_action( 'tribe_settings_validate_tab_' . $this->currentTab ); // set the current tab and current fields $tab = $this->currentTab; $fields = $this->current_fields = $this->fields_for_save[ $tab ]; if ( is_array( $fields ) ) { // loop through the fields and validate them foreach ( $fields as $field_id => $field ) { // get the value $value = ( isset( $_POST[ $field_id ] ) ) ? $_POST[ $field_id ] : null; $value = apply_filters( 'tribe_settings_validate_field_value', $value, $field_id, $field ); // make sure it has validation set up for it, else do nothing if ( ( ! isset( $field['conditional'] ) || $field['conditional'] ) && ( ! empty( $field['validation_type'] ) || ! empty( $field['validation_callback'] ) ) ) { // some hooks do_action( 'tribe_settings_validate_field', $field_id, $value, $field ); do_action( 'tribe_settings_validate_field_' . $field_id, $value, $field ); // validate this field $validate = new Tribe__Validate( $field_id, $field, $value ); if ( isset( $validate->result->error ) ) { // uh oh; validation failed $this->errors[ $field_id ] = $validate->result->error; } elseif ( $validate->result->valid ) { // validation passed $this->validated[ $field_id ] = new stdClass; $this->validated[ $field_id ]->field = $validate->field; $this->validated[ $field_id ]->value = $validate->value; } } } // do not generate errors for dependent fields that should not show if ( ! empty( $this->errors ) ) { $keep = array_filter( array_keys( $this->errors ), array( $this, 'dependency_checks' ) ); $compare = empty( $keep ) ? array() : array_combine( $keep, $keep ); $this->errors = array_intersect_key( $this->errors, $compare ); } // run the saving method $this->save(); } } }