upskill-event-manager/templates/certificates/certificate-fix.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

135 lines
No EOL
5.1 KiB
PHP

<?php
/**
* Certificate Fix Admin Page
*/
// Security check
if (!current_user_can('manage_options')) {
wp_die('Unauthorized access');
}
// Get header
get_header();
?>
<div class="hvac-container">
<div class="hvac-content-wrapper">
<h1>Certificate System Diagnostics</h1>
<div class="hvac-admin-section">
<h2>Rewrite Rules</h2>
<p>If certificate download URLs are returning 404 errors, flush the rewrite rules.</p>
<form method="post" action="">
<?php wp_nonce_field('hvac_flush_rewrite_rules', 'hvac_flush_nonce'); ?>
<button type="submit" name="flush_rewrite_rules" class="button button-primary">
Flush Rewrite Rules
</button>
</form>
<?php
if (isset($_POST['flush_rewrite_rules']) && wp_verify_nonce($_POST['hvac_flush_nonce'], 'hvac_flush_rewrite_rules')) {
// Initialize certificate security to ensure rules are added
if (class_exists('HVAC_Certificate_Security')) {
HVAC_Certificate_Security::instance();
}
flush_rewrite_rules();
echo '<div class="notice notice-success"><p>Rewrite rules have been flushed!</p></div>';
}
?>
<p><a href="<?php echo admin_url('admin.php?test_certificate_rewrite=1'); ?>" class="button">
Test Certificate Rewrite Rules
</a></p>
</div>
<div class="hvac-admin-section">
<h2>Certificate Database</h2>
<?php
global $wpdb;
$cert_table = $wpdb->prefix . 'hvac_certificates';
// Check if table exists
$table_exists = $wpdb->get_var("SHOW TABLES LIKE '$cert_table'") === $cert_table;
if ($table_exists) {
$total = $wpdb->get_var("SELECT COUNT(*) FROM $cert_table");
$active = $wpdb->get_var("SELECT COUNT(*) FROM $cert_table WHERE revoked = 0");
$revoked = $wpdb->get_var("SELECT COUNT(*) FROM $cert_table WHERE revoked = 1");
echo "<p>✅ Certificate table exists</p>";
echo "<ul>";
echo "<li>Total certificates: $total</li>";
echo "<li>Active certificates: $active</li>";
echo "<li>Revoked certificates: $revoked</li>";
echo "</ul>";
} else {
echo "<p>❌ Certificate table does not exist!</p>";
}
?>
</div>
<div class="hvac-admin-section">
<h2>Certificate Files</h2>
<?php
$upload_dir = wp_upload_dir();
$cert_dir = $upload_dir['basedir'] . '/hvac-certificates';
if (is_dir($cert_dir)) {
echo "<p>✅ Certificate directory exists: <code>$cert_dir</code></p>";
// Count PDF files
$pdf_count = count(glob($cert_dir . '/*.pdf'));
echo "<p>Total PDF files: $pdf_count</p>";
// Check .htaccess
if (file_exists($cert_dir . '/.htaccess')) {
echo "<p>✅ .htaccess file exists for security</p>";
} else {
echo "<p>⚠️ .htaccess file missing - certificates may not be protected</p>";
}
} else {
echo "<p>❌ Certificate directory does not exist!</p>";
}
?>
</div>
<div class="hvac-admin-section">
<h2>Recent Certificate Activity</h2>
<?php
if ($table_exists) {
$recent = $wpdb->get_results("
SELECT c.*, p.post_title as event_title
FROM $cert_table c
LEFT JOIN {$wpdb->posts} p ON c.event_id = p.ID
ORDER BY c.generated_date DESC
LIMIT 10
");
if ($recent) {
echo '<table class="wp-list-table widefat fixed striped">';
echo '<thead><tr><th>ID</th><th>Event</th><th>Generated</th><th>Status</th></tr></thead>';
echo '<tbody>';
foreach ($recent as $cert) {
$status = $cert->revoked ? 'Revoked' : 'Active';
echo '<tr>';
echo '<td>' . $cert->certificate_id . '</td>';
echo '<td>' . esc_html($cert->event_title) . '</td>';
echo '<td>' . date('Y-m-d H:i', strtotime($cert->generated_date)) . '</td>';
echo '<td>' . $status . '</td>';
echo '</tr>';
}
echo '</tbody></table>';
} else {
echo '<p>No certificates found.</p>';
}
}
?>
</div>
</div>
</div>
<?php get_footer(); ?>