/** * Validate, and set fields property * * @since 1.3.0 * * @access protected * * @param array $fields Fields array * @param array $config Proccessor config * @param array $form Form config */ protected function set_fields($fields, $config, $form) { $message_pattern = __('%s is required', 'caldera-forms'); $default_args = array('message' => false, 'default' => false, 'sanatize' => 'strip_tags', 'magic' => true, 'required' => true); foreach ($fields as $field => $args) { if (0 == $field || is_int($field)) { if (is_string($args)) { $key = $field; $fields[$field] = $default_args; unset($fields[$field]); } elseif (0 == $field || is_int($field) && is_array($args) && isset($args['id'])) { $key = $args['id']; $fields[$key] = $args; unset($fields[$field]); } else { unset($fields[$field]); continue; } } else { $key = $field; } $fields[$key] = wp_parse_args($args, $default_args); if (isset($config[$key])) { $_field = Caldera_Forms::get_field_by_slug(str_replace('%', '', $config[$key]), $form); } else { $_field = null; } if (is_array($_field)) { $fields[$key]['config_field'] = $_field['ID']; } else { $fields[$key]['config_field'] = false; } if (false === $fields[$key]['message']) { $fields[$key]['message'] = sprintf($message_pattern, $args['label']); } } $this->fields = $fields; }