alert('User is not logged in. Please log in to make a booking.'); window.location.href = 'login.php';"; exit(); } $is_member = getUserMemberStatus($user_id); $query = "SELECT payment_amount, payment_status, membership_end_date FROM membership_fees WHERE user_id = ?"; $stmt = $conn->prepare($query); $stmt->bind_param('i', $user_id); $stmt->execute(); $result = $stmt->get_result(); // Check if trip exists if ($result->num_rows === 0) { $response = ['error' => 'Application Fee not found.']; header('Content-Type: application/json'); echo json_encode($response); exit(); } // Fetch trip details $fee = $result->fetch_assoc(); $payment_status = $fee['payment_status']; $membership_end_date = $fee['membership_end_date']; $payment_amount = intval($fee['payment_amount']); $description = "4WDCSA: Membership Fee " . getFullName($user_id) . " " . date("Y"); $payment_id = uniqid(); $eft_id = "SUBS 2025 ".getLastName($user_id); // Update the membership_fees table to set payment_id $stmt = $conn->prepare("UPDATE membership_fees SET payment_id = ? WHERE user_id = ?"); if ($stmt) { $stmt->bind_param("ss", $payment_id, $user_id); if (!$stmt->execute()) { throw new Exception("Failed to update membership_fees table."); } $stmt->close(); $conn->close(); } else { throw new Exception("Failed to prepare statement for membership_fees table: " . $conn->error); } // Get the current date $current_date = new DateTime(); // Convert $membership_end_date to a DateTime object $membership_end_date_obj = DateTime::createFromFormat('Y-m-d', $membership_end_date); // Check if the current date is after membership_end_date // OR if the current date is before or on membership_end_date AND payment_status is "PENDING" if ( $current_date > $membership_end_date_obj || ($current_date <= $membership_end_date_obj && $payment_status === "PENDING") ) { // Call the processMembershipPayment function // processMembershipPayment($payment_id, $payment_amount, $description); addMembershipEFT($eft_id, $user_id, $status, $amount, $description, $membershipfee_id); header("Location: payment_confirmation.php?booking_id=" . $booking_id); exit(); // Ensure no further code is executed after the redirect }