diff --git a/.gitignore b/.gitignore
index c1823f46..dcb0bc62 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
/vendor/
.htaccess
+/uploads/pop/
\ No newline at end of file
diff --git a/.htaccess b/.htaccess
index 2b5271b3..bb288077 100644
--- a/.htaccess
+++ b/.htaccess
@@ -1,5 +1,5 @@
php_flag display_errors On
-# php_value error_reporting -1
+php_value error_reporting -1
RedirectMatch 403 ^/\.well-known
Options -Indexes
diff --git a/functions.php b/functions.php
index 17036417..c4b93c5a 100644
--- a/functions.php
+++ b/functions.php
@@ -235,7 +235,7 @@ function sendAdminNotification($subject, $message)
{
global $mailjet;
- $message = [
+ $mail = [
'Messages' => [
[
'From' => [
@@ -244,7 +244,7 @@ function sendAdminNotification($subject, $message)
],
'To' => [
[
- 'Email' => "info@4wdcsa.co.za",
+ 'Email' => $_ENV['NOTIFICATION_ADDR'],
'Name' => 'Jacqui Boshoff'
]
],
@@ -264,7 +264,7 @@ function sendAdminNotification($subject, $message)
]);
$response = $client->request('POST', 'send', [
- 'json' => $message,
+ 'json' => $mail,
'auth' => ['1a44f8d5e847537dbb8d3c76fe73a93c', 'ec98b45c53a7694c4f30d09eee9ad280']
]);
diff --git a/submit_pop.php b/submit_pop.php
index 58f18a4f..f294d756 100644
--- a/submit_pop.php
+++ b/submit_pop.php
@@ -10,6 +10,8 @@ if (!$user_id) {
// Handle POST submission
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$eft_id = $_POST['eft_id'] ?? null;
+ $file_name = str_replace(' ', '_', $eft_id);
+
if (!$eft_id || !isset($_FILES['pop_file'])) {
echo "
Invalid submission: missing eft_id or file.
";
@@ -20,7 +22,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
} else {
$file = $_FILES['pop_file'];
$target_dir = "uploads/pop/";
- $target_file = $target_dir . $eft_id . ".pdf";
+ $target_file = $target_dir . $file_name . ".pdf";
// Check for upload errors first
if ($file['error'] !== UPLOAD_ERR_OK) {
@@ -49,18 +51,58 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (move_uploaded_file($file['tmp_name'], $target_file)) {
// Update EFT and booking status
- $stmt1 = $conn->prepare("UPDATE efts SET status = 'PROCESSING' WHERE eft_id = ?");
- $stmt1->bind_param("s", $eft_id);
- $stmt1->execute();
+ $payment_type = $_POST['payment_type'] ?? 'booking';
- $stmt2 = $conn->prepare("UPDATE bookings SET status = 'PROCESSING' WHERE eft_id = ?");
- $stmt2->bind_param("s", $eft_id);
- $stmt2->execute();
+ if ($payment_type === 'membership') {
+ // Update EFT and booking status
+ $stmt1 = $conn->prepare("UPDATE efts SET status = 'PROCESSING' WHERE eft_id = ?");
+ $stmt1->bind_param("s", $eft_id);
+ $stmt1->execute();
+ // Update membership fee status
+ $stmt = $conn->prepare("UPDATE membership_fees SET payment_status = 'PROCESSING' WHERE payment_id = ?");
+ $stmt->bind_param("s", $eft_id);
+ $stmt->execute();
+ } else {
+ // Update EFT and booking status
+ $stmt1 = $conn->prepare("UPDATE efts SET status = 'PROCESSING' WHERE eft_id = ?");
+ $stmt1->bind_param("s", $eft_id);
+ $stmt1->execute();
- //TODO send mail with pop attachment to jacqui & louise
+ $stmt2 = $conn->prepare("UPDATE bookings SET status = 'PROCESSING' WHERE eft_id = ?");
+ $stmt2->bind_param("s", $eft_id);
+ $stmt2->execute();
+ }
- $_SESSION['message'] = "We have received your P.O.P. We will process it soon.";
- header("Location: bookings.php");
+ // Notify n8n and send the path to the uploaded file
+ $webhook_url = 'https://n8n.4wdcsa.co.za/webhook/process-pop';
+
+ $postData = [
+ 'eft_id' => $eft_id,
+ 'payment_type' => $payment_type,
+ ];
+
+ $ch = curl_init($webhook_url);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, [
+ 'Content-Type: application/json'
+ ]);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
+
+ $response = curl_exec($ch);
+ $error = curl_error($ch);
+ $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+ curl_close($ch);
+
+ if ($error) {
+ error_log("Webhook Error: $error");
+ $_SESSION['message'] = $error;
+ header("Location: bookings.php");
+ } else {
+ $_SESSION['message'] = "Thank you! We are busy processing your payment!";
+ header("Location: bookings.php");
+ }
+
exit;
} else {
echo "Unable to move uploaded file.
";
@@ -73,12 +115,18 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Fetch bookings for dropdown
-$stmt = $conn->prepare("SELECT eft_id FROM bookings WHERE user_id = ? AND status = 'AWAITING PAYMENT'");
-//TODO add membership id as well
-$stmt->bind_param("i", $user_id);
+$stmt = $conn->prepare("
+ SELECT eft_id AS id, 'booking' AS type FROM bookings WHERE user_id = ? AND status = 'AWAITING PAYMENT'
+ UNION
+ SELECT payment_id AS id, 'membership' AS type FROM membership_fees WHERE user_id = ? AND payment_status = 'PENDING'
+");
+$stmt->bind_param("ii", $user_id, $user_id);
$stmt->execute();
$result = $stmt->get_result();
-$bookings = $result->fetch_all(MYSQLI_ASSOC);
+$items = $result->fetch_all(MYSQLI_ASSOC);
+
+
+
$bannerFolder = 'assets/images/banners/';
$bannerImages = glob($bannerFolder . '*.{jpg,jpeg,png,webp}', GLOB_BRACE);
@@ -112,26 +160,29 @@ if (!empty($bannerImages)) {
Submit Proof of Payment
-
To finalise your booking, select the booking that you have paid for below, and then upload your PDF proof of payment.
+
To finalise your booking/membership, select the payment reference below, and then upload your PDF proof of payment.
- 0) {?>
+ 0) {?>
+