build_control_header($control_key, $label, 'TEXTAREA', $is_responsive); // Add TEXTAREA-specific properties FIRST $content .= $this->build_textarea_properties($field); // Add common properties $content .= $this->build_common_properties($field); // Close control $content .= $this->build_control_footer(); return $content; } /** * Build TEXTAREA-specific properties * * @param array $field Field configuration * @return string */ protected function build_textarea_properties($field) { $content = ''; // Rows - number of visible text lines if (isset($field['rows']) && $field['rows'] !== '' && $field['rows'] !== null) { $content .= $this->format_number_property('rows', intval($field['rows'])); } return $content; } protected function default_label() { return 'Textarea'; } protected function get_type_specific_config($field) { $config = []; if (isset($field['rows']) && $field['rows'] !== '' && $field['rows'] !== null) { $config['rows'] = intval($field['rows']); } return $config; } }