render_trainer_menu();
}
?>
Native Event Form Builder Test
create_event_form();
// Validate submitted data
$form_errors = $event_form->validate($_POST);
if (empty($form_errors)) {
// Sanitize data
$sanitized_data = $event_form->sanitize($_POST);
// Process the form (this would normally create the event)
$success_message = 'Event form validation successful! Data has been sanitized and is ready for processing.';
$form_submitted = true;
// In Phase 1B, this is where we would create the tribe_events post
} else {
$event_form->set_errors($form_errors);
}
} catch (Exception $e) {
$form_errors['general'] = 'Form processing error: ' . $e->getMessage();
}
} else {
$form_errors['nonce'] = 'Security check failed. Please refresh the page and try again.';
}
}
// Display success message
if ($success_message) {
echo '
' . esc_html($success_message) . '
';
}
// Display general errors
if (isset($form_errors['general'])) {
echo '
';
echo esc_html($form_errors['general']);
echo '
';
}
if (isset($form_errors['nonce'])) {
echo '
';
echo esc_html($form_errors['nonce']);
echo '
';
}
// Create and display the event form
try {
$event_form = new HVAC_Event_Form_Builder('hvac_event_form');
$event_form->create_event_form();
// Set any existing errors
if (!empty($form_errors)) {
$event_form->set_errors($form_errors);
}
// Set form data if submitted (for re-population on errors)
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$event_form->set_data($_POST);
}
// Add some custom wrapper HTML
echo '
';
echo '
Event Information
';
echo $event_form->render();
echo '';
} catch (Exception $e) {
echo '
';
echo 'Form Builder Error: ' . esc_html($e->getMessage());
echo '
';
}
?>
Phase 1A Implementation Status:
- ✅ HVAC_Event_Form_Builder class created
- ✅ DateTime field types (start/end dates, timezone, all-day)
- ✅ Venue field group (name, address, capacity, coordinates)
- ✅ Organizer field group (name, email, phone, website)
- ✅ HVAC-specific fields (trainer requirements, certifications, equipment)
- ✅ Featured image upload support
- ✅ WordPress security integration (nonce, sanitization, validation)
- ✅ Form validation and error handling
- ⏳ Next: Phase 1B - tribe_events post creation integration