- Added responsive field grouping requirements (same row -> columns) - Rich text editor specifications for event description - Featured image upload with preview/replace capabilities - Virtual event toggle functionality - Enhanced toggle controls for RSVP/Ticketing sections - Advanced multi-select components for organizer/categories - Single-select searchable venue field - Modal popup forms for creating new entities - Fixed missing form field labels documentation - Implementation priority and technical considerations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			434 lines
		
	
	
		
			No EOL
		
	
	
		
			14 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			434 lines
		
	
	
		
			No EOL
		
	
	
		
			14 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Template and Ticketing System Requirements
 | |
| 
 | |
| ## Overview
 | |
| This document outlines the requirements for integrating TEC ticketing system with the HVAC event creation form and updating the template system with real class templates.
 | |
| 
 | |
| ## TEC Ticketing Integration Requirements
 | |
| 
 | |
| ### Core Requirements
 | |
| - Connect form to TEC plugins' ticketing system
 | |
| - Same CRUD capabilities as regular TEC events
 | |
| - Support for tickets with prices, season passes, RSVPs
 | |
| - Mandatory collection of attendee information
 | |
| 
 | |
| ### Trainer Limitations
 | |
| - Trainers don't need to set SKUs (simplified interface)
 | |
| - Each ticket should have mandatory registration collection:
 | |
|   - First name
 | |
|   - Last name
 | |
|   - Fields from TEC Ticket Fieldset Post ID 6235
 | |
| 
 | |
| ### Ticketing Features Needed
 | |
| - Ticket creation with pricing
 | |
| - Season pass support
 | |
| - RSVP functionality
 | |
| - Attendee information collection
 | |
| - Integration with TEC core ticketing system
 | |
| 
 | |
| ## Template System Updates
 | |
| 
 | |
| ### Current Issues
 | |
| - Modal popup not properly centered (positioned bottom-right, cropped)
 | |
| - Sample templates need replacement with real class templates
 | |
| 
 | |
| ### Required Templates
 | |
| Based on cleaned template data from `docs/reference/EVENT_TEMPLATES_2025-09-25.md`:
 | |
| 
 | |
| 1. **Transform Your HVAC Business with Manual J LiDAR**
 | |
|    - Source: Post ID 1658
 | |
|    - Type: Half-day introductory training
 | |
|    - Category: Business/Technology
 | |
|    - Default Time: 8:00 AM - 12:00 PM
 | |
|    - Default Price: $99 per person
 | |
| 
 | |
| 2. **Master Static Pressure & Airflow: The Keys to Profitable Service**
 | |
|    - Source: Post ID 1661
 | |
|    - Type: Half-day introductory training
 | |
|    - Category: Technical/Performance
 | |
|    - Default Time: 1:00 PM - 5:00 PM
 | |
|    - Default Price: $99 per person
 | |
| 
 | |
| 3. **Full-Day A/C and Heat Pump Commissioning & Diagnostics Mastery with measureQuick**
 | |
|    - Source: Post ID 5295
 | |
|    - Type: Full-day advanced training
 | |
|    - Category: Technical/Diagnostics
 | |
|    - Default Time: 8:00 AM - 5:00 PM
 | |
|    - Default Price: $99 per person
 | |
| 
 | |
| 4. **ACCA QI5 Quality Installation Certificates - VSP and VEO**
 | |
|    - Source: Post ID 1663
 | |
|    - Type: Full-day intermediate certification
 | |
|    - Category: Certification/Standards
 | |
|    - Default Time: 8:00 AM - 4:00 PM
 | |
|    - Default Price: $129 per person
 | |
| 
 | |
| 5. **Advanced Class: Building Science Meets HVAC Performance**
 | |
|    - Source: Post ID 1665
 | |
|    - Type: Three-day advanced training
 | |
|    - Category: Advanced/Building Science
 | |
|    - Default Time: 8:00 AM - 5:00 PM (3 days)
 | |
|    - Default Price: $1200 per person
 | |
| 
 | |
| 6. **measureQuick for Gas Heating**
 | |
|    - Source: Post ID 5737
 | |
|    - Type: Half-day product training
 | |
|    - Category: Product Training/Gas Systems
 | |
|    - Default Time: 8:00 AM - 2:00 PM
 | |
|    - Default Price: $150 per person
 | |
| 
 | |
| ### Template Data Structure
 | |
| Each template should include:
 | |
| - Title
 | |
| - Description (from source post)
 | |
| - Start time (time only, no date)
 | |
| - End time (time only, no date)
 | |
| - Default ticket structure
 | |
| - Category classification
 | |
| - Duration/type indicators
 | |
| 
 | |
| ## Implementation Plan
 | |
| 
 | |
| ### Phase 1: Analysis and Planning
 | |
| 1. Analyze current TEC integration points
 | |
| 2. Examine TEC Ticket Fieldset Post ID 6235 structure
 | |
| 3. Review existing form builder capabilities
 | |
| 4. Identify required modifications to HVAC_Event_Form_Builder
 | |
| 
 | |
| ### Phase 2: TEC Ticketing Integration
 | |
| 1. Extend HVAC_Event_Form_Builder with TEC ticketing fields
 | |
| 2. Implement mandatory attendee information collection
 | |
| 3. Connect to TEC ticket creation API
 | |
| 4. Add ticket pricing and management fields
 | |
| 5. Integrate with TEC RSVP system
 | |
| 
 | |
| ### Phase 3: Template System Fixes
 | |
| 1. Fix modal positioning CSS issues
 | |
| 2. Fetch real template data from specified post IDs
 | |
| 3. Create template data structure with proper categorization
 | |
| 4. Update template modal with real class information
 | |
| 5. Implement template application with ticket data
 | |
| 
 | |
| ### Phase 4: Testing and Validation
 | |
| 1. Test TEC ticketing integration
 | |
| 2. Validate attendee information collection
 | |
| 3. Test template modal positioning
 | |
| 4. Verify template application functionality
 | |
| 5. End-to-end testing of event creation flow
 | |
| 
 | |
| ## Technical Considerations
 | |
| 
 | |
| ### TEC Integration Points
 | |
| - TEC Core ticketing API
 | |
| - TEC Community Events integration
 | |
| - TEC Tickets Plus (if applicable)
 | |
| - Custom field integration
 | |
| 
 | |
| ### Database Requirements
 | |
| - Integration with TEC events tables
 | |
| - Ticket information storage
 | |
| - Attendee data collection
 | |
| - Custom field mappings
 | |
| 
 | |
| ### UI/UX Considerations
 | |
| - Simplified trainer interface
 | |
| - Mandatory field validation
 | |
| - Modal positioning fixes
 | |
| - Responsive template selection
 | |
| 
 | |
| ## Implementation Plan
 | |
| 
 | |
| ### Analysis Results
 | |
| 
 | |
| #### Current Architecture
 | |
| - **HVAC_Event_Form_Builder** (1296 lines): Core form builder with template integration
 | |
| - **HVAC_TEC_Integration** (357 lines): URL routing and iframe embedding, lacks ticketing
 | |
| - **page-tec-create-event.php**: Contains modal with hardcoded sample templates and positioning issues
 | |
| 
 | |
| #### Key Findings
 | |
| 1. **Template System**: Uses hardcoded JavaScript sample data instead of real posts
 | |
| 2. **TEC Integration**: Handles iframe embedding but lacks ticketing system integration
 | |
| 3. **Modal Issues**: CSS positioning causes bottom-right placement and cropping
 | |
| 4. **Missing Components**: No direct TEC ticketing API integration, no fieldset integration
 | |
| 
 | |
| ### Phase-by-Phase Implementation
 | |
| 
 | |
| #### Phase 1: Modal Positioning Fix (Immediate - 30 minutes)
 | |
| **Files to modify:**
 | |
| - `templates/page-tec-create-event.php`
 | |
| 
 | |
| **Changes required:**
 | |
| ```css
 | |
| /* Fix modal positioning in CSS section */
 | |
| .template-modal {
 | |
|     position: fixed;
 | |
|     top: 50%;
 | |
|     left: 50%;
 | |
|     transform: translate(-50%, -50%); /* Center the modal */
 | |
|     z-index: 10000;
 | |
|     max-height: 80vh;
 | |
|     overflow-y: auto;
 | |
| }
 | |
| ```
 | |
| 
 | |
| #### Phase 2: Template System Updates (1-2 hours)
 | |
| **Files to modify:**
 | |
| - `templates/page-tec-create-event.php` (JavaScript section)
 | |
| - `includes/class-hvac-event-form-builder.php` (template loading methods)
 | |
| 
 | |
| **Changes required:**
 | |
| 1. Replace hardcoded template JavaScript with real template data
 | |
| 2. Create template data structure from cleaned template reference
 | |
| 3. Update template loading to use standardized format
 | |
| 4. Add template categorization and filtering
 | |
| 
 | |
| **Template Data Format:**
 | |
| ```javascript
 | |
| const templates = [
 | |
|     {
 | |
|         id: 'manual-j-lidar',
 | |
|         title: 'Transform Your HVAC Business with Manual J LiDAR',
 | |
|         category: 'Business/Technology',
 | |
|         duration: 'Half Day',
 | |
|         difficulty: 'Introductory',
 | |
|         defaultTime: { start: '08:00', end: '12:00' },
 | |
|         defaultPrice: 99,
 | |
|         description: 'Master iPad-based Manual J calculations and measureQuick fundamentals...',
 | |
|         requirements: 'No special Heating Cooling Equip. Needs, good Internet connection',
 | |
|         maxStudents: null
 | |
|     }
 | |
|     // ... other templates
 | |
| ];
 | |
| ```
 | |
| 
 | |
| #### Phase 3: TEC Ticketing Integration (3-4 hours)
 | |
| **Files to modify:**
 | |
| - `includes/class-hvac-event-form-builder.php`
 | |
| - `includes/class-hvac-tec-integration.php`
 | |
| - Create new: `includes/class-hvac-tec-tickets.php`
 | |
| 
 | |
| **Changes required:**
 | |
| 1. **Analyze TEC Ticket Fieldset Post ID 6235**
 | |
|    - Extract field definitions and requirements
 | |
|    - Map mandatory fields: first name, last name, custom fields
 | |
| 
 | |
| 2. **Extend HVAC_Event_Form_Builder with ticketing fields:**
 | |
|    ```php
 | |
|    // Add methods
 | |
|    private function add_ticket_fields()
 | |
|    private function add_tec_fieldset_integration()
 | |
|    private function validate_ticket_requirements()
 | |
|    ```
 | |
| 
 | |
| 3. **Create TEC tickets integration class:**
 | |
|    ```php
 | |
|    class HVAC_TEC_Tickets {
 | |
|        public function create_event_tickets($event_id, $ticket_data)
 | |
|        public function get_fieldset_fields($fieldset_id = 6235)
 | |
|        public function validate_attendee_data($attendee_data)
 | |
|        private function integrate_with_tec_api()
 | |
|    }
 | |
|    ```
 | |
| 
 | |
| 4. **Add ticket management UI elements:**
 | |
|    - Ticket pricing fields
 | |
|    - Season pass options
 | |
|    - RSVP configuration
 | |
|    - Attendee information requirements
 | |
| 
 | |
| #### Phase 4: Fieldset Integration (1-2 hours)
 | |
| **Files to investigate:**
 | |
| - TEC Ticket Fieldset Post ID 6235 structure
 | |
| - TEC Community Events ticket field mapping
 | |
| 
 | |
| **Changes required:**
 | |
| 1. Extract fieldset field definitions from Post ID 6235
 | |
| 2. Create dynamic form field generation based on fieldset
 | |
| 3. Add validation for mandatory attendee information
 | |
| 4. Integrate with TEC ticket creation workflow
 | |
| 
 | |
| #### Phase 5: Testing and Validation (2-3 hours)
 | |
| **Testing checklist:**
 | |
| 1. Modal positioning fixes across different screen sizes
 | |
| 2. Template selection and form population
 | |
| 3. TEC ticket creation with proper fieldset integration
 | |
| 4. Attendee information collection and validation
 | |
| 5. End-to-end event creation workflow
 | |
| 6. Integration with existing TEC Community Events
 | |
| 
 | |
| ### Technical Implementation Details
 | |
| 
 | |
| #### Modal Fix Implementation
 | |
| ```css
 | |
| /* Replace existing modal CSS with: */
 | |
| .template-modal {
 | |
|     position: fixed;
 | |
|     top: 50%;
 | |
|     left: 50%;
 | |
|     transform: translate(-50%, -50%);
 | |
|     width: 90%;
 | |
|     max-width: 800px;
 | |
|     max-height: 80vh;
 | |
|     background: white;
 | |
|     border-radius: 8px;
 | |
|     box-shadow: 0 4px 20px rgba(0,0,0,0.3);
 | |
|     z-index: 10000;
 | |
|     overflow-y: auto;
 | |
| }
 | |
| ```
 | |
| 
 | |
| #### Template Data Integration
 | |
| ```php
 | |
| // In HVAC_Event_Form_Builder
 | |
| private function get_real_templates() {
 | |
|     return [
 | |
|         [
 | |
|             'id' => 'manual-j-lidar',
 | |
|             'title' => 'Transform Your HVAC Business with Manual J LiDAR',
 | |
|             'description' => $this->get_template_description('manual-j-lidar'),
 | |
|             'default_start_time' => '08:00',
 | |
|             'default_end_time' => '12:00',
 | |
|             'default_price' => 99,
 | |
|             'category' => 'Business/Technology',
 | |
|             'difficulty' => 'Introductory',
 | |
|             'duration' => 'Half Day'
 | |
|         ]
 | |
|         // ... other templates
 | |
|     ];
 | |
| }
 | |
| ```
 | |
| 
 | |
| #### TEC Ticketing Integration
 | |
| ```php
 | |
| // New class: HVAC_TEC_Tickets
 | |
| class HVAC_TEC_Tickets {
 | |
| 
 | |
|     public function create_tickets_for_event($event_id, $tickets_data) {
 | |
|         foreach ($tickets_data as $ticket) {
 | |
|             $ticket_id = $this->create_tec_ticket($event_id, $ticket);
 | |
|             $this->add_fieldset_requirements($ticket_id, 6235);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private function get_tec_fieldset_fields($fieldset_id) {
 | |
|         // Extract field definitions from TEC Ticket Fieldset
 | |
|         $fieldset_post = get_post($fieldset_id);
 | |
|         return $this->parse_fieldset_structure($fieldset_post);
 | |
|     }
 | |
| }
 | |
| ```
 | |
| 
 | |
| ### Priority Order
 | |
| 1. **IMMEDIATE**: Fix modal positioning (30 minutes)
 | |
| 2. **HIGH**: Replace sample templates with real data (1-2 hours)
 | |
| 3. **MEDIUM**: Implement TEC ticketing integration (3-4 hours)
 | |
| 4. **LOW**: Add fieldset integration (1-2 hours)
 | |
| 5. **FINAL**: Comprehensive testing (2-3 hours)
 | |
| 
 | |
| ### Risk Assessment
 | |
| - **Low Risk**: Modal positioning fix, template data replacement
 | |
| - **Medium Risk**: TEC ticketing API integration (requires understanding TEC internals)
 | |
| - **High Risk**: Fieldset integration (depends on TEC Ticket Fieldset structure)
 | |
| 
 | |
| ### Success Metrics
 | |
| 1. Modal centers properly on all screen sizes
 | |
| 2. Real templates load with correct data and formatting
 | |
| 3. TEC tickets can be created with mandatory attendee information
 | |
| 4. Form maintains existing functionality while adding new features
 | |
| 5. Integration works seamlessly with existing TEC Community Events
 | |
| 
 | |
| ## Additional UI/UX Enhancement Requirements (September 2025)
 | |
| 
 | |
| ### Form Layout Improvements
 | |
| 
 | |
| #### Field Grouping and Responsive Design
 | |
| - **Same Row Fields (Desktop) → Column Layout (Mobile):**
 | |
|   - Ticket Price ($) & Ticket Capacity
 | |
|   - Ticket Sales Start & Ticket Sales End
 | |
|   - Start Date & Time & End Date & Time
 | |
| 
 | |
| #### Text Editor Enhancement
 | |
| - **Event Description Field:**
 | |
|   - Increase size to 3x current dimensions
 | |
|   - Add rich text editing toolbar (bold, italic, lists, links)
 | |
|   - Support for formatted text input
 | |
| 
 | |
| #### Form Field Issues
 | |
| - **Missing Label Issues:** Fix blank/unlabeled form sections:
 | |
|   - Blank box above "Enable Ticketing"
 | |
|   - Blank box above "Ticket Name"
 | |
|   - Two blank boxes above "Start Date & Time"
 | |
| 
 | |
| ### New Feature Requirements
 | |
| 
 | |
| #### Featured Image Upload
 | |
| - **Image Upload Component:**
 | |
|   - File upload interface with drag-and-drop
 | |
|   - Image preview functionality
 | |
|   - Replace/remove image capabilities
 | |
|   - Proper image optimization and sizing
 | |
| 
 | |
| #### Virtual Event Capability
 | |
| - **Virtual Event Toggle:**
 | |
|   - Enable/disable virtual event mode
 | |
|   - When enabled, show virtual event specific fields
 | |
|   - Integration with existing venue system
 | |
| 
 | |
| #### Enhanced Toggle Controls
 | |
| - **Interactive Toggles (show/hide subsections):**
 | |
|   - Virtual Event toggle → Virtual event configuration fields
 | |
|   - Enable RSVP toggle → RSVP configuration options
 | |
|   - Enable Ticketing toggle → Ticketing subsection fields
 | |
| 
 | |
| #### Advanced Selection Components
 | |
| 
 | |
| ##### Multi-Select with Dynamic Search
 | |
| - **Organizer Field:**
 | |
|   - Text input with autocomplete
 | |
|   - Dynamic dropdown showing all available options on focus
 | |
|   - Multi-select capability (up to 3 items)
 | |
|   - "Create New Organizer" option → Modal popup with organizer creation form
 | |
| 
 | |
| - **Categories Field (New):**
 | |
|   - Same functionality as Organizer field
 | |
|   - Text input with autocomplete search
 | |
|   - Multi-select up to 3 categories
 | |
|   - "Create New Category" option → Modal popup for category creation
 | |
| 
 | |
| ##### Single-Select with Search
 | |
| - **Venue Field Enhancement:**
 | |
|   - Convert to searchable single-select
 | |
|   - Text input with autocomplete
 | |
|   - Dynamic dropdown on focus
 | |
|   - Single selection only
 | |
|   - "Create New Venue" option → Modal popup with venue creation form
 | |
| 
 | |
| #### Modal Creation Forms
 | |
| - **New Organizer Modal:**
 | |
|   - Name, email, phone, organization fields
 | |
|   - Save and apply to event functionality
 | |
| 
 | |
| - **New Category Modal:**
 | |
|   - Category name, description, parent category
 | |
|   - Save and apply to event functionality
 | |
| 
 | |
| - **New Venue Modal:**
 | |
|   - Venue name, address, capacity, facilities
 | |
|   - Save and apply to event functionality
 | |
| 
 | |
| ### Implementation Priority
 | |
| 1. **Phase 1:** Fix existing form issues (missing labels, layout)
 | |
| 2. **Phase 2:** Implement responsive field grouping
 | |
| 3. **Phase 3:** Add rich text editor and featured image upload
 | |
| 4. **Phase 4:** Implement toggle controls and virtual event features
 | |
| 5. **Phase 5:** Create advanced selection components and modal forms
 | |
| 
 | |
| ### Technical Considerations
 | |
| - Maintain existing security measures and validation
 | |
| - Ensure mobile responsiveness across all new components
 | |
| - Integrate seamlessly with current TEC ticketing system
 | |
| - Preserve existing template and autosave functionality
 | |
| - Follow WordPress coding standards and accessibility guidelines
 | |
| 
 | |
| ---
 | |
| *Implementation plan generated during TEC integration and template system improvement project*
 | |
| *Updated September 2025 with comprehensive UI/UX enhancement requirements* |