formFields = $formFields; } public function render() { foreach ($this->formFields as $name => $field) { $field['name'] = $name; $this->renderField($field); } } private function renderField($field) { $type = $field['type']; $label = $field['label'] ?? ''; $name = $field['name']; $required = $field['required'] ?? false; $options = $field['options'] ?? []; $value = $field['value'] ?? ''; $readonly = $field['readonly'] ?? false; $atts = array_filter([ 'type' => in_array($type, ['text', 'email', 'password']) ? $type : '', 'id' => 'fcom_' . $name, 'name' => $name, 'value' => $value, 'required' => '',//$required ? 'required' : '', 'readonly' => $readonly ? 'readonly' : '', 'placeholder' => $field['placeholder'] ?? '', 'class' => $field['input_class'] ?? '', ]); echo "
"; if ($label): echo "
"; endif; echo "
"; if (isset($atts['type'])) { echo "printAtts($atts) . ">"; } elseif ($type === 'select') { echo ""; } else if ($type === 'inline_checkbox') { echo "
"; echo "printAtts($atts) . ">"; echo ""; echo "
"; } else if ($type === 'textarea') { echo ""; } echo "
"; } private function printAtts($atts) { $result = ''; foreach ($atts as $key => $value) { $result .= " " . esc_attr($key) . "='" . esc_attr($value) . "'"; } return $result; } }