<?php
// Start output buffering to prevent "headers already sent" errors
ob_start();
$pageTitle = "My Certificates";
// Include database connection if not already included
if (!isset($conn)) {
require_once '../config/database.php';
}
// Start session if not already started
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
// Check if student is logged in
if (!isset($_SESSION['user_id']) || $_SESSION['role'] !== 'student') {
header("Location: ../login.php");
exit();
}
$userId = $_SESSION['user_id'];
$success_message = '';
$error_message = '';
// Handle flash messages
if (isset($_SESSION['success_message'])) {
$success_message = $_SESSION['success_message'];
unset($_SESSION['success_message']);
}
if (isset($_SESSION['error_message'])) {
$error_message = $_SESSION['error_message'];
unset($_SESSION['error_message']);
}
// Get fee amount from settings
$certification_fee = 0;
try {
// First try to get from site_settings table
$fee_query = "SELECT setting_value FROM site_settings WHERE setting_key = 'certificate_fee'";
$fee_result = $conn->query($fee_query);
if ($fee_result && $fee_result->num_rows > 0) {
$certification_fee = (float)$fee_result->fetch_assoc()['setting_value'];
} else {
// Try legacy settings table
$fee_query = "SELECT setting_value FROM settings WHERE setting_key = 'certificate_fee'";
$fee_result = $conn->query($fee_query);
if ($fee_result && $fee_result->num_rows > 0) {
$certification_fee = (float)$fee_result->fetch_assoc()['setting_value'];
} else {
// Default fee if not found in settings
$certification_fee = 700;
}
}
} catch (Exception $e) {
error_log("Error fetching certificate fee: " . $e->getMessage());
// Default fee if query fails
$certification_fee = 700;
}
// Get exam ID from URL if provided (from exam_results page)
$exam_id = isset($_GET['exam_id']) ? intval($_GET['exam_id']) : 0;
$from_results = isset($_GET['from_results']) ? true : false;
// Get student exam details if exam_id is provided
$student_exam = null;
if ($exam_id > 0) {
$exam_query = "
SELECT se.*, es.title as exam_title, es.passing_percentage,
c.title as course_title, c.id as course_id
FROM student_exams se
JOIN exam_schedules es ON se.exam_id = es.id
JOIN courses c ON es.course_id = c.id
WHERE se.user_id = ? AND se.exam_id = ? AND se.status = 'passed'
";
$stmt = $conn->prepare($exam_query);
$stmt->bind_param("ii", $userId, $exam_id);
$stmt->execute();
$exam_result = $stmt->get_result();
if ($exam_result->num_rows > 0) {
$student_exam = $exam_result->fetch_assoc();
}
}
// Get completed courses with passed exams and certificates
try {
$certificates_query = "
SELECT e.id as enrollment_id, e.completion_date, e.certificate_path, e.certificate_number,
c.id as course_id, c.title as course_title, c.image as course_image,
c.duration, i.first_name as instructor_first_name, i.last_name as instructor_last_name,
ec.id as exam_cert_id, ec.certificate_number as exam_cert_number, ec.verification_code,
ec.certificate_data, ec.issue_date as exam_cert_issue_date,
se.id as student_exam_id,
CASE WHEN se.percentage IS NOT NULL THEN se.percentage ELSE se.total_score END as exam_score,
se.status as exam_status, es.title as exam_title,
uc.id as unified_cert_id, uc.certificate_number as unified_cert_number,
uc.verification_code as unified_verification_code, uc.payment_status,
uc.issue_date as unified_issue_date
FROM enrollments e
INNER JOIN courses c ON e.course_id = c.id
LEFT JOIN users i ON c.instructor_id = i.id
LEFT JOIN exam_schedules es ON es.course_id = c.id
LEFT JOIN student_exams se ON se.exam_id = es.id AND se.user_id = e.user_id AND se.status = 'passed'
LEFT JOIN exam_certificates ec ON ec.student_exam_id = se.id
LEFT JOIN unified_certificates uc ON uc.course_id = c.id AND uc.enrollment_id = e.id
WHERE e.user_id = ? AND e.status = 'completed' AND se.status = 'passed'
ORDER BY e.completion_date DESC
";
$stmt = $conn->prepare($certificates_query);
$stmt->bind_param("i", $userId);
$stmt->execute();
$certificates_result = $stmt->get_result();
$certificates = [];
while ($row = $certificates_result->fetch_assoc()) {
// Group by course_id to avoid duplicates
if (!isset($certificates[$row['course_id']])) {
$certificates[$row['course_id']] = $row;
} else {
// Update with exam certificate info if available
if (!empty($row['exam_cert_id']) && empty($certificates[$row['course_id']]['exam_cert_id'])) {
$certificates[$row['course_id']]['exam_cert_id'] = $row['exam_cert_id'];
$certificates[$row['course_id']]['exam_cert_number'] = $row['exam_cert_number'];
$certificates[$row['course_id']]['exam_score'] = $row['exam_score'];
$certificates[$row['course_id']]['exam_status'] = $row['exam_status'];
$certificates[$row['course_id']]['exam_title'] = $row['exam_title'];
$certificates[$row['course_id']]['verification_code'] = $row['verification_code'];
}
// Update with unified certificate info if available
if (!empty($row['unified_cert_id']) && empty($certificates[$row['course_id']]['unified_cert_id'])) {
$certificates[$row['course_id']]['unified_cert_id'] = $row['unified_cert_id'];
$certificates[$row['course_id']]['unified_cert_number'] = $row['unified_cert_number'];
$certificates[$row['course_id']]['unified_verification_code'] = $row['unified_verification_code'];
$certificates[$row['course_id']]['payment_status'] = $row['payment_status'];
$certificates[$row['course_id']]['unified_issue_date'] = $row['unified_issue_date'];
}
}
}
// Convert to indexed array
$certificates = array_values($certificates);
} catch (Exception $e) {
$error_message = "Error loading certificates: " . $e->getMessage();
error_log("Certificate error: " . $e->getMessage());
$certificates = [];
}
// Get student details
$student_query = "
SELECT first_name, last_name, email
FROM users
WHERE id = ?
";
$stmt = $conn->prepare($student_query);
$stmt->bind_param("i", $userId);
$stmt->execute();
$student_result = $stmt->get_result();
$student = $student_result->fetch_assoc();
// Get institute information (this would usually come from settings table)
$institute_name = "Popular Computer Institute";
$institute_logo = "../assets/img/logo.png";
$institute_address = "Bhimpura No.1,Ballia,UP";
// Check for unified certificate table
$tableExists = false;
try {
$tableCheck = $conn->query("SHOW TABLES LIKE 'unified_certificates'");
$tableExists = ($tableCheck && $tableCheck->num_rows > 0);
if (!$tableExists) {
// Create unified_certificates table if it doesn't exist
$createUnifiedTable = "
CREATE TABLE IF NOT EXISTS `unified_certificates` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`enrollment_id` int(11) NOT NULL,
`student_exam_id` int(11) NULL,
`course_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`certificate_number` varchar(50) NOT NULL,
`verification_code` varchar(50) NOT NULL,
`certificate_data` text,
`issue_date` date NOT NULL,
`payment_status` enum('pending','paid','completed') NOT NULL DEFAULT 'pending',
`payment_date` datetime DEFAULT NULL,
`payment_reference` varchar(100) DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `certificate_number` (`certificate_number`),
UNIQUE KEY `verification_code` (`verification_code`),
KEY `enrollment_id` (`enrollment_id`),
KEY `student_exam_id` (`student_exam_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
";
if ($conn->query($createUnifiedTable)) {
error_log("Created unified_certificates table successfully");
} else {
error_log("Error creating unified_certificates table: " . $conn->error);
}
}
} catch (Exception $e) {
error_log("Error checking/creating unified_certificates table: " . $e->getMessage());
// Display error message to user
$error_message = "Error setting up certificates. Please contact support.";
}
// Add certificate download/print handling - this was causing the headers already sent error
if (isset($_GET['download_cert']) && isset($_GET['cert_id'])) {
$cert_id = intval($_GET['cert_id']);
// Verify certificate belongs to user and is paid
$cert_query = "
SELECT uc.*, c.title as course_title, c.description as course_description,
CONCAT(u.first_name, ' ', u.last_name) as student_name, u.email,
CONCAT(i.first_name, ' ', i.last_name) as instructor_name
FROM unified_certificates uc
JOIN courses c ON uc.course_id = c.id
JOIN users u ON uc.user_id = u.id
LEFT JOIN users i ON c.instructor_id = i.id
WHERE uc.id = ? AND uc.user_id = ?
AND (uc.payment_status = 'completed' OR uc.payment_status = 'paid')
";
$stmt = $conn->prepare($cert_query);
$stmt->bind_param("ii", $cert_id, $userId);
$stmt->execute();
$cert_result = $stmt->get_result();
if ($cert_result->num_rows === 1) {
$cert_data = $cert_result->fetch_assoc();
// Redirect to certificate view page
header("Location: view_certificate.php?cert_id=" . $cert_id);
exit();
} else {
$error_message = "Certificate not found or payment not completed.";
}
}
// Request unified certificate generation
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['generate_unified_certificate'])) {
$enrollment_id = $_POST['enrollment_id'] ?? 0;
$student_exam_id = $_POST['student_exam_id'] ?? 0;
$course_id = $_POST['course_id'] ?? 0;
// Validate that the student has passed the exam for this course
$validation_query = "
SELECT se.id
FROM student_exams se
JOIN exam_schedules es ON se.exam_id = es.id
WHERE se.user_id = ? AND es.course_id = ? AND se.status = 'passed'
LIMIT 1
";
$stmt = $conn->prepare($validation_query);
$stmt->bind_param("ii", $userId, $course_id);
$stmt->execute();
$validation_result = $stmt->get_result();
if ($validation_result->num_rows === 0) {
$error_message = "You must pass the exam before generating a certificate.";
} else {
// Continue with certificate generation...
$exam_record = $validation_result->fetch_assoc();
// Check if a certificate already exists
$check_query = "
SELECT id FROM unified_certificates
WHERE user_id = ? AND course_id = ?
";
$stmt = $conn->prepare($check_query);
$stmt->bind_param("ii", $userId, $course_id);
$stmt->execute();
$check_result = $stmt->get_result();
if ($check_result->num_rows > 0) {
$error_message = "You already have a certificate for this course.";
} else {
// Generate certificate number and verification code
$certificate_number = 'CERT-' . date('Y') . '-' . $course_id . '-' . $userId . '-' . rand(1000, 9999);
$verification_code = strtoupper(substr(md5($certificate_number . time()), 0, 8)) . '-' .
strtoupper(substr(md5($userId . $course_id), 0, 4)) . '-' .
strtoupper(substr(md5(time() . $course_id), 0, 4));
// Create certificate record
$insert_query = "
INSERT INTO unified_certificates (
enrollment_id, student_exam_id, course_id, user_id,
certificate_number, verification_code,
issue_date, payment_status
) VALUES (?, ?, ?, ?, ?, ?, CURDATE(), 'pending')
";
$stmt = $conn->prepare($insert_query);
$stmt->bind_param("iiisss", $enrollment_id, $exam_record['id'], $course_id, $userId,
$certificate_number, $verification_code);
if ($stmt->execute()) {
$certificate_id = $conn->insert_id;
// Redirect to payment page if fee is required
if ($certification_fee > 0) {
header("Location: certificate_payments.php?cert_id=" . $certificate_id);
exit();
} else {
// No fee required, mark as completed
$update_query = "
UPDATE unified_certificates
SET payment_status = 'completed', payment_date = NOW()
WHERE id = ?
";
$stmt = $conn->prepare($update_query);
$stmt->bind_param("i", $certificate_id);
if ($stmt->execute()) {
$success_message = "Certificate generated successfully.";
} else {
$error_message = "Error updating certificate status.";
}
}
} else {
$error_message = "Error generating certificate.";
}
}
}
}
// NOW include the header file - AFTER all potential header redirects
include_once('includes/header.php');
?>
<div class="container py-4">
<div class="d-flex justify-content-between align-items-center mb-4">
<h2 class="mb-0">My Certificates</h2>
<a href="certificate_payments.php" class="btn btn-primary me-2">
<i class="fas fa-credit-card me-1"></i> Certificate Payments
</a>
</div>
<?php if ($success_message): ?>
<div class="alert alert-success alert-dismissible fade show" role="alert">
<i class="fas fa-check-circle me-2"></i> <?php echo $success_message; ?>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<?php endif; ?>
<?php if ($error_message): ?>
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<i class="fas fa-exclamation-circle me-2"></i> <?php echo $error_message; ?>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<?php endif; ?>
<?php
// Check for eligible exams that need certificates
$eligible_exams_query = "
SELECT COUNT(*) as count
FROM student_exams se
JOIN exam_schedules es ON se.exam_id = es.id
JOIN courses c ON es.course_id = c.id
JOIN enrollments e ON e.course_id = c.id AND e.user_id = se.user_id
LEFT JOIN unified_certificates uc ON uc.course_id = c.id AND uc.user_id = se.user_id
WHERE se.user_id = ?
AND se.status = 'passed'
AND e.status = 'completed'
AND uc.id IS NULL
";
$stmt = $conn->prepare($eligible_exams_query);
$stmt->bind_param("i", $userId);
$stmt->execute();
$result = $stmt->get_result();
$eligible_count = $result->fetch_assoc()['count'];
if ($eligible_count > 0):
?>
<div class="alert alert-info alert-dismissible fade show mb-4" role="alert">
<div class="d-flex">
<div class="me-3">
<i class="fas fa-certificate fa-2x"></i>
</div>
<div>
<h5 class="alert-heading">Generate Your Unified Certificates!</h5>
<p>You have <strong><?php echo $eligible_count; ?></strong> passed exam(s) eligible for unified certificate generation. Each certificate costs ₹700 and combines your course completion and exam achievements into one official document.</p>
<a href="certificate_payments.php#eligible-exams" class="btn btn-info">
<i class="fas fa-arrow-right me-1"></i> Generate Unified Certificates
</a>
</div>
</div>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<?php endif; ?>
<!-- Highlight for new certificate -->
<?php if ($student_exam): ?>
<div class="alert alert-success alert-dismissible fade show" role="alert">
<div class="d-flex">
<div class="me-3">
<i class="fas fa-award fa-2x"></i>
</div>
<div>
<h5 class="alert-heading">Congratulations on Passing the <?php echo htmlspecialchars($student_exam['exam_title']); ?>!</h5>
<p>You've successfully passed your exam for <strong><?php echo htmlspecialchars($student_exam['course_title']); ?></strong>. You can now request your unified certificate.</p>
<hr>
<?php
// Check if the enrollment exists and is completed
$hasCompletedCourse = false;
$enrollmentId = 0;
foreach ($certificates as $cert) {
if ($cert['course_id'] == $student_exam['course_id'] && !empty($cert['completion_date'])) {
$hasCompletedCourse = true;
$enrollmentId = $cert['enrollment_id'];
break;
}
}
if ($hasCompletedCourse):
?>
<form method="POST" class="mt-2">
<input type="hidden" name="enrollment_id" value="<?php echo $enrollmentId; ?>">
<input type="hidden" name="student_exam_id" value="<?php echo $student_exam['id']; ?>">
<input type="hidden" name="course_id" value="<?php echo $student_exam['course_id']; ?>">
<button type="submit" name="generate_unified_certificate" class="btn btn-success">
<i class="fas fa-certificate me-2"></i> Request Unified Certificate<?php if ($certification_fee > 0): ?> (Fee: ₹<?php echo $certification_fee; ?>)<?php endif; ?>
</button>
</form>
<?php else: ?>
<div class="alert alert-warning mb-0">
You need to complete the course before requesting a unified certificate.
</div>
<?php endif; ?>
</div>
</div>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<?php endif; ?>
<!-- Certificates Overview -->
<div class="card mb-4">
<div class="card-header bg-primary text-white">
<h5 class="mb-0">Your Achievement Certificates</h5>
</div>
<div class="card-body">
<div class="alert alert-info">
<div class="d-flex">
<div class="me-3">
<i class="fas fa-info-circle fa-2x"></i>
</div>
<div>
<h5 class="alert-heading">About Unified Certificates</h5>
<p class="mb-0">Our unified certificates combine your course completion and exam achievements into a single official document. The certificate includes your course completion details, exam scores, and grades. Each certificate has a unique verification code for authenticity. The fee for each unified certificate is <strong>₹700</strong>.</p>
</div>
</div>
</div>
<?php if (empty($certificates)): ?>
<div class="alert alert-warning">
<i class="fas fa-exclamation-triangle me-2"></i> You haven't completed any courses or passed any exams yet. Complete a course or pass an exam to receive a certificate.
</div>
<?php else: ?>
<div class="row">
<?php foreach ($certificates as $cert): ?>
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100 certificate-card">
<div class="certificate-header position-relative">
<img src="<?php echo !empty($cert['course_image']) ? '../' . $cert['course_image'] : '../assets/img/course-placeholder.jpg'; ?>"
class="card-img-top" alt="<?php echo htmlspecialchars($cert['course_title']); ?>"
style="height: 160px; object-fit: cover;">
<div class="certificate-overlay d-flex align-items-center justify-content-center">
<span class="badge bg-success p-2">
<i class="fas fa-award me-1"></i>
<?php echo !empty($cert['completion_date']) ? 'COURSE COMPLETED' : 'EXAM PASSED'; ?>
</span>
</div>
</div>
<div class="card-body">
<h5 class="card-title"><?php echo htmlspecialchars($cert['course_title']); ?></h5>
<p class="card-text text-muted mb-1">
<i class="fas fa-user-tie me-1"></i> Instructor:
<?php
if (!empty($cert['instructor_first_name'])) {
echo htmlspecialchars($cert['instructor_first_name'] . ' ' . $cert['instructor_last_name']);
} else {
echo "N/A";
}
?>
</p>
<?php if (!empty($cert['completion_date'])): ?>
<p class="card-text text-muted mb-2">
<i class="fas fa-calendar-check me-1"></i> Completed:
<?php echo date('d M Y', strtotime($cert['completion_date'])); ?>
</p>
<?php endif; ?>
<?php if (!empty($cert['exam_score'])): ?>
<p class="card-text mb-2">
<i class="fas fa-graduation-cap me-1"></i> Exam Score:
<span class="badge bg-primary"><?php echo is_numeric($cert['exam_score']) ? number_format($cert['exam_score'], 1) : $cert['exam_score']; ?>%</span>
</p>
<!-- Add direct payment link if exam is passed but no certificate exists -->
<?php if (!empty($cert['exam_status']) && $cert['exam_status'] == 'passed' &&
!empty($cert['completion_date']) && empty($cert['unified_cert_id'])): ?>
<div class="mb-2">
<a href="certificate_payments.php#eligible-exams" class="btn btn-outline-primary btn-sm w-100">
<i class="fas fa-certificate me-1"></i> Get Certificate
</a>
</div>
<?php endif; ?>
<?php endif; ?>
<!-- Unified Certificate -->
<?php if (!empty($cert['unified_cert_id'])): ?>
<div class="certificate-info mb-3">
<div class="certificate-number p-2 bg-light rounded mb-2">
<small class="d-block text-muted">Certificate Number:</small>
<strong><?php echo htmlspecialchars($cert['unified_cert_number']); ?></strong>
<?php if (!empty($cert['unified_verification_code'])): ?>
<small class="d-block text-muted mt-1">Verification Code:</small>
<strong><?php echo htmlspecialchars($cert['unified_verification_code']); ?></strong>
<?php endif; ?>
<?php if (!empty($cert['unified_issue_date'])): ?>
<small class="d-block text-muted mt-1">Issue Date:</small>
<strong><?php echo date('d M Y', strtotime($cert['unified_issue_date'])); ?></strong>
<?php endif; ?>
</div>
<?php if ($cert['payment_status'] === 'paid' || $cert['payment_status'] === 'completed'): ?>
<div class="d-grid gap-2">
<a href="?download_cert=1&cert_id=<?php echo $cert['unified_cert_id']; ?>" class="btn btn-primary">
<i class="fas fa-download me-1"></i> View Certificate
</a>
<a href="../verify-certificate.php?cert=<?php echo urlencode($cert['unified_cert_number']); ?>" class="btn btn-outline-secondary" target="_blank">
<i class="fas fa-link me-1"></i> Verification Link
</a>
</div>
<?php elseif ($cert['payment_status'] === 'verification_pending'): ?>
<div class="alert alert-warning d-flex align-items-center mb-2">
<i class="fas fa-clock me-2 fa-lg"></i>
<div>
<strong>Payment Verification Pending</strong>
<p class="mb-0 small">Your cash payment is awaiting verification. Certificate will be available after payment is confirmed at the institute.</p>
</div>
</div>
<?php else: ?>
<a href="certificate_payment.php?course_id=<?php echo $cert['course_id']; ?>&amount=<?php echo $certification_fee; ?>&cert_id=<?php echo $cert['unified_cert_id']; ?>" class="btn btn-warning d-block mb-2">
<i class="fas fa-credit-card me-1"></i> Pay Certificate Fee (₹<?php echo number_format($certification_fee, 0); ?>)
</a>
<div class="alert alert-info p-2 mb-0">
<small><i class="fas fa-info-circle me-1"></i> Payment required to download certificate</small>
</div>
<?php endif; ?>
</div>
<?php elseif (!empty($cert['completion_date']) && (!empty($cert['exam_status']) && $cert['exam_status'] == 'passed')): ?>
<!-- Both course completed and exam passed - Offer unified certificate -->
<form method="POST" class="mb-3">
<input type="hidden" name="enrollment_id" value="<?php echo $cert['enrollment_id']; ?>">
<input type="hidden" name="student_exam_id" value="<?php echo $cert['student_exam_id']; ?>">
<input type="hidden" name="course_id" value="<?php echo $cert['course_id']; ?>">
<button type="submit" name="generate_unified_certificate" class="btn btn-success d-block w-100">
<i class="fas fa-certificate me-1"></i> Get Unified Certificate <?php if ($certification_fee > 0): ?>(₹<?php echo number_format($certification_fee, 0); ?>)<?php endif; ?>
</button>
<div class="alert alert-info p-2 mt-2 mb-0">
<small><i class="fas fa-info-circle me-1"></i> One-time fee of ₹<?php echo number_format($certification_fee, 0); ?> for official unified certificate</small>
</div>
</form>
<?php elseif (!empty($cert['completion_date'])): ?>
<!-- Course completed but no exam or exam not passed -->
<div class="alert alert-info mb-3 p-2">
<small><i class="fas fa-info-circle me-1"></i> Complete and pass exams to qualify for a unified certificate.</small>
<?php
// Check if there are available exams for this course
$exams_query = "SELECT id, title FROM exam_schedules WHERE course_id = ? AND status = 'active'";
$stmt = $conn->prepare($exams_query);
$stmt->bind_param("i", $cert['course_id']);
$stmt->execute();
$exams_result = $stmt->get_result();
if ($exams_result->num_rows > 0):
?>
<div class="mt-2">
<a href="exams.php?course_id=<?php echo $cert['course_id']; ?>" class="btn btn-sm btn-primary">
<i class="fas fa-graduation-cap me-1"></i> Take Available Exams
</a>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</div>
<!-- Pending Certificate Payments Section -->
<?php
// Check for pending certificate payments
$pending_query = "SELECT uc.id, uc.certificate_number, c.id as course_id, c.title as course_title
FROM unified_certificates uc
JOIN courses c ON uc.course_id = c.id
WHERE uc.user_id = ? AND uc.payment_status = 'pending'
LIMIT 5";
$stmt = $conn->prepare($pending_query);
$stmt->bind_param("i", $userId);
$stmt->execute();
$pending_result = $stmt->get_result();
$pending_payments = [];
while($row = $pending_result->fetch_assoc()) {
$pending_payments[] = $row;
}
if (!empty($pending_payments)):
?>
<div class="card mb-4">
<div class="card-header bg-warning text-dark">
<div class="d-flex justify-content-between align-items-center">
<h5 class="mb-0"><i class="fas fa-exclamation-circle me-2"></i>Pending Certificate Payments</h5>
<a href="certificate_payments.php" class="btn btn-sm btn-dark">View All</a>
</div>
</div>
<div class="card-body">
<div class="alert alert-warning">
<i class="fas fa-exclamation-circle me-2"></i> You have <strong><?php echo count($pending_payments); ?></strong> certificate(s) awaiting payment. Complete payment to access your certificates.
</div>
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th>Course</th>
<th>Certificate Number</th>
<th>Fee</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php foreach ($pending_payments as $payment): ?>
<tr>
<td><?php echo htmlspecialchars($payment['course_title']); ?></td>
<td><?php echo htmlspecialchars($payment['certificate_number']); ?></td>
<td><strong class="text-danger">₹<?php echo number_format($certification_fee, 2); ?></strong></td>
<td>
<a href="certificate_payment.php?course_id=<?php echo $payment['course_id']; ?>&amount=<?php echo $certification_fee; ?>&cert_id=<?php echo $payment['id']; ?>" class="btn btn-primary btn-sm">
<i class="fas fa-credit-card me-1"></i> Pay Now
</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<div class="text-center mt-3">
<a href="certificate_payments.php" class="btn btn-outline-primary">
<i class="fas fa-list me-1"></i> Manage All Certificate Payments
</a>
</div>
</div>
</div>
<?php endif; ?>
<!-- Certificate Verification Guide -->
<div class="card">
<div class="card-header bg-info text-white">
<h5 class="mb-0">Certificate Verification</h5>
</div>
<div class="card-body">
<div class="row align-items-center">
<div class="col-md-8">
<h5>Verify Your Certificate Authenticity</h5>
<p>Each certificate comes with a unique certificate number and verification code that can be used to verify its authenticity. Follow these steps to verify your certificate:</p>
<ol>
<li>Visit the certificate verification page at <a href="../verify-certificate.php" target="_blank"><?php echo htmlspecialchars($institute_name); ?> Verification Portal</a></li>
<li>Enter your certificate number in the verification box</li>
<li>Enter your verification code</li>
<li>Click "Verify" to confirm the authenticity of your certificate</li>
</ol>
<p class="mb-0">If you have any questions about certificate verification, please contact our support team.</p>
</div>
<div class="col-md-4 text-center">
<img src="<?php echo $institute_logo; ?>" alt="<?php echo htmlspecialchars($institute_name); ?> Logo" class="img-fluid mb-3" style="max-height: 120px;">
</div>
</div>
</div>
</div>
</div>
<style>
.certificate-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.3);
}
</style>
<?php include_once('includes/footer.php'); ?>