upskill-event-manager/templates/attendee/template-attendee-profile.php
bengizmo 37f4180e1c feat: Add massive missing plugin infrastructure to repository
🚨 CRITICAL: Fixed deployment blockers by adding missing core directories:

**Community System (CRITICAL)**
- includes/community/ - Login_Handler and all community classes
- templates/community/ - Community login forms

**Certificate System (CRITICAL)**
- includes/certificates/ - 8+ certificate classes and handlers
- templates/certificates/ - Certificate reports and generation templates

**Core Individual Classes (CRITICAL)**
- includes/class-hvac-event-summary.php
- includes/class-hvac-trainer-profile-manager.php
- includes/class-hvac-master-dashboard-data.php
- Plus 40+ other individual HVAC classes

**Major Feature Systems (HIGH)**
- includes/database/ - Training leads database tables
- includes/find-trainer/ - Find trainer directory and MapGeo integration
- includes/google-sheets/ - Google Sheets integration system
- includes/zoho/ - Complete Zoho CRM integration
- includes/communication/ - Communication templates system

**Template Infrastructure**
- templates/attendee/, templates/email-attendees/
- templates/event-summary/, templates/status/
- templates/template-parts/ - Shared template components

**Impact:**
- 70+ files added covering 10+ missing directories
- Resolves ALL deployment blockers and feature breakdowns
- Plugin activation should now work correctly
- Multi-machine deployment fully supported

🔧 Generated with Claude Code

Co-Authored-By: Ben Reed <ben@tealmaker.com>
2025-08-11 13:30:11 -03:00

149 lines
No EOL
6.5 KiB
PHP

<?php
/**
* Template for Attendee Profile Page
*
* @package HVAC_Community_Events
* @since 1.0.0
*/
// Exit if accessed directly
if (!defined('ABSPATH')) {
exit;
}
// Get data from parent scope
$profile = $attendee_data['profile'];
$stats = $attendee_data['stats'];
$timeline = $attendee_data['timeline'];
?>
<div class="hvac-attendee-profile">
<!-- Page Header -->
<div class="hvac-profile-header">
<div class="hvac-profile-title">
<h1>Attendee Profile</h1>
<span class="hvac-profile-subtitle"><?php echo esc_html($profile['name']); ?></span>
</div>
<div class="hvac-profile-actions">
<a href="mailto:<?php echo esc_attr($profile['email']); ?>" class="ast-button ast-button-primary">
<i class="fas fa-envelope"></i> Email Attendee
</a>
<button class="ast-button ast-button-secondary" onclick="window.print()">
<i class="fas fa-print"></i> Print
</button>
<a href="<?php echo esc_url(wp_get_referer() ?: home_url('/hvac-dashboard/')); ?>" class="ast-button ast-button-secondary">
<i class="fas fa-arrow-left"></i> Back
</a>
</div>
</div>
<!-- Statistics Section -->
<div class="hvac-stats-row">
<div class="hvac-stat-col">
<div class="hvac-stat-card">
<h3>Total Purchases</h3>
<div class="stat-value"><?php echo number_format($stats['total_purchases']); ?></div>
</div>
</div>
<div class="hvac-stat-col">
<div class="hvac-stat-card">
<h3>Events Registered</h3>
<div class="stat-value"><?php echo number_format($stats['events_registered']); ?></div>
</div>
</div>
<div class="hvac-stat-col">
<div class="hvac-stat-card">
<h3>Events Attended</h3>
<div class="stat-value"><?php echo number_format($stats['events_checked_in']); ?></div>
</div>
</div>
<div class="hvac-stat-col">
<div class="hvac-stat-card">
<h3>Certificates Earned</h3>
<div class="stat-value"><?php echo number_format($stats['certificates_earned']); ?></div>
</div>
</div>
</div>
<!-- Profile Information Section -->
<div class="hvac-content-section">
<h2>Contact Information</h2>
<div class="hvac-info-table">
<table class="hvac-table">
<tbody>
<tr>
<td class="hvac-label">Name</td>
<td><?php echo esc_html($profile['name']); ?></td>
</tr>
<tr>
<td class="hvac-label">Email</td>
<td><a href="mailto:<?php echo esc_attr($profile['email']); ?>"><?php echo esc_html($profile['email']); ?></a></td>
</tr>
<?php if (!empty($profile['phone'])): ?>
<tr>
<td class="hvac-label">Phone</td>
<td><a href="tel:<?php echo esc_attr($profile['phone']); ?>"><?php echo esc_html($profile['phone']); ?></a></td>
</tr>
<?php endif; ?>
<?php if (!empty($profile['company'])): ?>
<tr>
<td class="hvac-label">Company</td>
<td><?php echo esc_html($profile['company']); ?></td>
</tr>
<?php endif; ?>
<?php if (!empty($profile['state'])): ?>
<tr>
<td class="hvac-label">State</td>
<td><?php echo esc_html($profile['state']); ?></td>
</tr>
<?php endif; ?>
</tbody>
</table>
</div>
</div>
<!-- Timeline Section -->
<div class="hvac-content-section">
<h2>Activity Timeline</h2>
<?php if (empty($timeline)): ?>
<p class="hvac-no-activity">No activity recorded for this attendee.</p>
<?php else: ?>
<div class="hvac-timeline">
<?php foreach ($timeline as $index => $event): ?>
<div class="hvac-timeline-item" data-type="<?php echo esc_attr($event['type']); ?>">
<div class="hvac-timeline-date">
<?php echo date('M j, Y', strtotime($event['date'])); ?>
<span class="hvac-timeline-time"><?php echo date('g:i A', strtotime($event['date'])); ?></span>
</div>
<div class="hvac-timeline-marker" style="background-color: <?php echo esc_attr($event['color']); ?>">
<i class="<?php echo esc_attr($event['icon']); ?>"></i>
</div>
<div class="hvac-timeline-content">
<h4><?php echo esc_html($event['title']); ?></h4>
<?php if ($event['type'] === 'event' && isset($event['checked_in'])): ?>
<span class="hvac-checkin-status <?php echo $event['checked_in'] ? 'checked-in' : 'not-checked-in'; ?>">
<?php echo $event['checked_in'] ? 'Checked In' : 'Not Checked In'; ?>
</span>
<?php endif; ?>
<?php if ($event['type'] === 'certificate' && !empty($event['certificate_number'])): ?>
<span class="hvac-certificate-number">
Certificate #<?php echo esc_html($event['certificate_number']); ?>
</span>
<?php endif; ?>
<?php if (!empty($event['event_id'])): ?>
<a href="<?php echo esc_url(get_permalink($event['event_id'])); ?>" class="hvac-event-link" target="_blank">
View Event <i class="fas fa-external-link-alt"></i>
</a>
<?php endif; ?>
</div>
<?php if ($index < count($timeline) - 1): ?>
<div class="hvac-timeline-connector"></div>
<?php endif; ?>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</div>