- Updated 39 pages from old header01.php and header02.php includes - All pages now use single configurable header.php with $headerStyle variable - Light style (default): Most pages (login, register, trips, courses, etc.) - Dark style: Coming from header01 original usage Pages updated: - Admin pages: admin_*.php (10 files) - Booking pages: bookings.php, campsite_booking.php, etc. - Content pages: blog.php, blog_details.php, contact.php, events.php, etc. - User pages: account_settings.php, membership*.php, register.php, etc. - Utility pages: 404.php, payment_confirmation.php, reset_password.php, etc. All pages now maintain single header template source - easier to update navigation, styles, and functionality across the entire site.
151 lines
5.5 KiB
PHP
151 lines
5.5 KiB
PHP
<?php
|
|
$headerStyle = 'light';
|
|
include_once('header.php');
|
|
checkAdmin();
|
|
checkUserSession();
|
|
$user_id = $_SESSION['user_id'];
|
|
|
|
?>
|
|
<style>
|
|
.image {
|
|
width: 400px;
|
|
/* Set your desired width */
|
|
height: 350px;
|
|
/* Set your desired height */
|
|
overflow: hidden;
|
|
/* Hide any overflow */
|
|
display: block;
|
|
/* Ensure proper block behavior */
|
|
}
|
|
|
|
.image img {
|
|
width: 100%;
|
|
/* Image scales to fill the container */
|
|
height: 100%;
|
|
/* Image scales to fill the container */
|
|
object-fit: cover;
|
|
/* Fills the container while maintaining aspect ratio */
|
|
object-position: top;
|
|
/* Aligns the top of the image with the top of the container */
|
|
display: block;
|
|
/* Prevents inline whitespace issues */
|
|
}
|
|
|
|
.message-box {
|
|
text-align: center;
|
|
position: relative;
|
|
padding: 10px;
|
|
padding-right: 35px;
|
|
/* Ensures text doesn't overlap with the close button */
|
|
}
|
|
|
|
.close-btn {
|
|
position: absolute;
|
|
right: 10px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
/* Centers vertically */
|
|
cursor: pointer;
|
|
font-size: 20px;
|
|
font-weight: bold;
|
|
color: #333;
|
|
background: none;
|
|
border: none;
|
|
}
|
|
|
|
.close-btn:hover {
|
|
color: red;
|
|
}
|
|
</style>
|
|
</style>
|
|
<?php
|
|
$status = "PROCESSING";
|
|
$bannerFolder = 'assets/images/banners/';
|
|
$bannerImages = glob($bannerFolder . '*.{jpg,jpeg,png,webp}', GLOB_BRACE);
|
|
|
|
$randomBanner = 'assets/images/base4/camping.jpg'; // default fallback
|
|
if (!empty($bannerImages)) {
|
|
$randomBanner = $bannerImages[array_rand($bannerImages)];
|
|
}
|
|
?>
|
|
<section class="page-banner-area pt-50 pb-35 rel z-1 bgs-cover" style="background-image: url('<?php echo $randomBanner; ?>');">
|
|
<div class="banner-overlay"></div>
|
|
<div class="container">
|
|
<div class="banner-inner text-white mb-50">
|
|
<h2 class="page-title mb-10" data-aos="fade-left" data-aos-duration="1500" data-aos-offset="50">Process Payments</h2>
|
|
<nav aria-label="breadcrumb">
|
|
<ol class="breadcrumb justify-content-center mb-20" data-aos="fade-right" data-aos-delay="200" data-aos-duration="1500" data-aos-offset="50">
|
|
<li class="breadcrumb-item"><a href="index.php">Home</a></li>
|
|
<li class="breadcrumb-item active">Process Payments</li>
|
|
</ol>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Tour List Area start -->
|
|
<section class="tour-list-page py-100 rel z-1">
|
|
<div class="container">
|
|
<div class="row">
|
|
|
|
<div class="col-lg-12">
|
|
<?php if (isset($_SESSION['message'])): ?>
|
|
<div class="alert alert-warning message-box">
|
|
<?php echo $_SESSION['message']; ?>
|
|
<span class="close-btn" onclick="this.parentElement.style.display='none'">×</span>
|
|
</div>
|
|
<?php unset($_SESSION['message']); ?>
|
|
<?php endif; ?>
|
|
<?php
|
|
// Query to retrieve data from the bookings table
|
|
$sql = "SELECT * FROM efts WHERE status = ? ORDER BY timestamp DESC";
|
|
|
|
$stmt = $conn->prepare($sql);
|
|
$stmt->bind_param("s", $status);
|
|
$stmt->execute();
|
|
$result = $stmt->get_result();
|
|
|
|
if ($result->num_rows > 0) {
|
|
// Loop through each row
|
|
while ($row = $result->fetch_assoc()) {
|
|
$eft_id = $row['eft_id'];
|
|
$file_name = str_replace(' ', '_', $eft_id);
|
|
$eft_user = $row['user_id'];
|
|
$eft_amount = $row['amount'];
|
|
$eft_description = $row['description'];
|
|
|
|
// Output the HTML structure with dynamic data
|
|
echo '
|
|
<div class="destination-item style-three bgc-lighter booking " data-aos="fade-up" data-aos-duration="1500" data-aos-offset="50">
|
|
<div class="p-4" >
|
|
<iframe src="uploads/pop/'.$file_name.'.pdf#toolbar=0" width="400px" height="200px"></iframe>
|
|
<p><a href="uploads/pop/'.$file_name.'.pdf" target="_new" class="theme-btn style-three" style="width:100%;">View Full PDF</a></p>
|
|
|
|
</div>
|
|
<div style="width:100%;" class="content">
|
|
<h5>' . htmlspecialchars($eft_description) . '</a></h5>
|
|
<h5>' . getFullName($eft_user) . '</a></h5>
|
|
<div class="destination-footer">
|
|
<span class="price"><span>Booking Total: R ' . number_format($eft_amount, 2) . '</span></span>
|
|
<a href="process_eft.php?token=' . encryptData($eft_id, $salt) . '" class="theme-btn style-three"><span data-hover="POP RECEIVED">PROCESS</span></a>
|
|
</div>
|
|
</div>';
|
|
}
|
|
} else {
|
|
echo '<p>There are no pending payments for processing.</p>';
|
|
}
|
|
// Close connection
|
|
$conn->close();
|
|
?>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- Tour List Area end -->
|
|
|
|
|
|
|
|
|
|
<?php include_once("insta_footer.php"); ?>
|