upskill-event-manager/templates/certificates/generate-certificates-content.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

166 lines
No EOL
7.5 KiB
PHP

<?php
/**
* Generate Certificates Content Template (without page wrapper)
* Used by shortcode to output just the content
*
* @package HVAC_Community_Events
*/
// Exit if accessed directly
if (!defined('ABSPATH')) {
exit;
}
// Ensure proper CSS classes for styling
echo '<div class="hvac-generate-certificates-content">';
// Get current user ID
$current_user_id = get_current_user_id();
$trainer_profile = get_user_meta($current_user_id, 'hvac_trainer_profile', true);
// Get Events
global $wpdb;
$events_query = $wpdb->prepare("
SELECT DISTINCT p.ID, p.post_title
FROM {$wpdb->posts} p
WHERE p.post_type = 'tribe_events'
AND p.post_status = 'publish'
AND p.post_author = %d
ORDER BY p.post_date DESC
", $current_user_id);
$events = $wpdb->get_results($events_query);
// Check for selected event
$selected_event_id = isset($_GET['event_id']) ? absint($_GET['event_id']) : 0;
$attendees = array();
if ($selected_event_id) {
// Get attendees for the selected event
$attendees_query = $wpdb->prepare("
SELECT a.*, c.certificate_number
FROM {$wpdb->prefix}hvac_attendees a
LEFT JOIN {$wpdb->prefix}hvac_certificates c ON a.id = c.attendee_id AND c.event_id = %d
WHERE a.event_id = %d
ORDER BY a.name ASC
", $selected_event_id, $selected_event_id);
$attendees = $wpdb->get_results($attendees_query);
}
?>
<div class="hvac-generate-certificates-content">
<div class="hvac-page-header">
<h1><?php _e('Generate Certificates', 'hvac-community-events'); ?></h1>
<p><?php _e('Select an event and generate certificates for attendees.', 'hvac-community-events'); ?></p>
</div>
<!-- Event Selection -->
<div class="hvac-event-selection">
<h2><?php _e('Select Event', 'hvac-community-events'); ?></h2>
<?php if (empty($events)): ?>
<div class="hvac-notice hvac-notice-info">
<p><?php _e('You don\'t have any events yet. Create your first event to start generating certificates.', 'hvac-community-events'); ?></p>
<a href="/trainer/event/manage/" class="hvac-button hvac-button-primary"><?php _e('Create Event', 'hvac-community-events'); ?></a>
</div>
<?php else: ?>
<form method="get" action="" class="hvac-event-select-form">
<div class="hvac-form-group">
<label for="event_id"><?php _e('Choose Event:', 'hvac-community-events'); ?></label>
<select name="event_id" id="event_id" onchange="this.form.submit()">
<option value=""><?php _e('-- Select an Event --', 'hvac-community-events'); ?></option>
<?php foreach ($events as $event): ?>
<option value="<?php echo esc_attr($event->ID); ?>" <?php selected($selected_event_id, $event->ID); ?>>
<?php echo esc_html($event->post_title); ?>
</option>
<?php endforeach; ?>
</select>
</div>
</form>
<?php endif; ?>
</div>
<?php if ($selected_event_id && !empty($attendees)): ?>
<!-- Attendee List -->
<div class="hvac-attendees-section">
<h2><?php _e('Event Attendees', 'hvac-community-events'); ?></h2>
<form id="hvac-generate-certificates-form" method="post">
<?php wp_nonce_field('hvac_generate_certificates', 'hvac_generate_nonce'); ?>
<input type="hidden" name="event_id" value="<?php echo esc_attr($selected_event_id); ?>">
<div class="hvac-actions-bar">
<button type="button" id="select-all" class="hvac-button hvac-button-secondary">
<?php _e('Select All', 'hvac-community-events'); ?>
</button>
<button type="button" id="deselect-all" class="hvac-button hvac-button-secondary">
<?php _e('Deselect All', 'hvac-community-events'); ?>
</button>
<button type="submit" name="generate_certificates" class="hvac-button hvac-button-primary">
<?php _e('Generate Selected Certificates', 'hvac-community-events'); ?>
</button>
</div>
<div class="hvac-table-wrapper">
<table class="hvac-attendees-table">
<thead>
<tr>
<th><input type="checkbox" id="check-all"></th>
<th><?php _e('Name', 'hvac-community-events'); ?></th>
<th><?php _e('Email', 'hvac-community-events'); ?></th>
<th><?php _e('Certificate Status', 'hvac-community-events'); ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($attendees as $attendee): ?>
<tr>
<td>
<input type="checkbox" name="attendee_ids[]"
value="<?php echo esc_attr($attendee->id); ?>"
<?php echo $attendee->certificate_number ? 'disabled' : ''; ?>>
</td>
<td><?php echo esc_html($attendee->name); ?></td>
<td><?php echo esc_html($attendee->email); ?></td>
<td>
<?php if ($attendee->certificate_number): ?>
<span class="hvac-status hvac-status-generated">
<?php echo esc_html__('Generated', 'hvac-community-events'); ?>
(<?php echo esc_html($attendee->certificate_number); ?>)
</span>
<?php else: ?>
<span class="hvac-status hvac-status-pending">
<?php _e('Not Generated', 'hvac-community-events'); ?>
</span>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</form>
</div>
<?php elseif ($selected_event_id && empty($attendees)): ?>
<div class="hvac-notice hvac-notice-warning">
<p><?php _e('No attendees found for this event. Add attendees to generate certificates.', 'hvac-community-events'); ?></p>
<a href="/trainer/event/manage/?event_id=<?php echo $selected_event_id; ?>" class="hvac-button hvac-button-primary">
<?php _e('Manage Event', 'hvac-community-events'); ?>
</a>
</div>
<?php endif; ?>
</div>
<script>
jQuery(document).ready(function($) {
// Select all checkbox
$('#check-all, #select-all').on('click', function() {
$('.hvac-attendees-table input[type="checkbox"]:not(:disabled)').prop('checked', true);
});
// Deselect all
$('#deselect-all').on('click', function() {
$('.hvac-attendees-table input[type="checkbox"]').prop('checked', false);
});
});
</script>