%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux sh00666.bluehost.com 5.14.0-687.26.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jul 14 16:32:02 EDT 2026 x86_64 User : ndkhermy ( 1200) PHP Version : 8.5.12 Disable Function : NONE Directory : /home1/ndkhermy/www/website_6ca89795/api/ |
Upload File : |
<?php
header("Content-Type: application/json");
include("../dbcon.php");
include("auth.php");
define('BASE_URL', 'https://meatandgo.fr/');
function response($status, $message, $data = [])
{
echo json_encode([
"status" => $status,
"message" => $message,
"data" => $data
], JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);
exit;
}
/*
|--------------------------------------------------------------------------
| Support Form Data + Raw JSON
|--------------------------------------------------------------------------
*/
$json = json_decode(file_get_contents("php://input"), true);
$order_id = intval(
$_REQUEST['order_id']
?? $json['order_id']
?? 0
);
$reason = trim(
$_REQUEST['reason']
?? $json['reason']
?? ''
);
$details = trim(
$_REQUEST['details']
?? $json['details']
?? ''
);
/*
|--------------------------------------------------------------------------
| Validation
|--------------------------------------------------------------------------
*/
if ($order_id <= 0 || empty($reason))
{
response(false, "Required fields missing", [
"required_fields" => [
"order_id",
"reason"
],
"available_reasons" => [
"I ordered by mistake",
"I found a better price",
"My delivery address is incorrect",
"I no longer need the product",
"Delay in delivery",
"Other"
],
"example_url" =>
BASE_URL .
"api/cancel_order.php?order_id=1&reason=I ordered by mistake",
"sample_request" => [
"order_id" => 1,
"reason" => "I ordered by mistake",
"details" => "Wrong order placed"
]
]);
}
/*
|--------------------------------------------------------------------------
| Check Order
|--------------------------------------------------------------------------
*/
$orderQry = mysqli_query(
$conn,
"SELECT *
FROM orders
WHERE id='$order_id'
AND user_id='$user_id'
LIMIT 1"
);
if (mysqli_num_rows($orderQry) == 0)
{
response(false, "Order Not Found");
}
$order = mysqli_fetch_assoc($orderQry);
/*
|--------------------------------------------------------------------------
| Already Cancelled
|--------------------------------------------------------------------------
*/
if ($order['order_status'] == 'Cancelled')
{
response(false, "Order Already Cancelled");
}
/*
|--------------------------------------------------------------------------
| Delivered Order Cannot Be Cancelled
|--------------------------------------------------------------------------
*/
if ($order['order_status'] == 'Delivered')
{
response(false, "Delivered Orders Cannot Be Cancelled");
}
/*
|--------------------------------------------------------------------------
| Update Order
|--------------------------------------------------------------------------
*/
mysqli_query(
$conn,
"UPDATE orders
SET
order_status='Cancelled',
cancel_reason='" . mysqli_real_escape_string($conn,$reason) . "',
cancel_details='" . mysqli_real_escape_string($conn,$details) . "'
WHERE id='$order_id'"
);
/*
|--------------------------------------------------------------------------
| Get Updated Order
|--------------------------------------------------------------------------
*/
$updatedQry = mysqli_query(
$conn,
"SELECT *
FROM orders
WHERE id='$order_id'
LIMIT 1"
);
$updatedOrder = mysqli_fetch_assoc($updatedQry);
/*
|--------------------------------------------------------------------------
| Response
|--------------------------------------------------------------------------
*/
response(true, "Order Cancelled Successfully", [
"order_id" =>
$updatedOrder['id'],
"order_number" =>
$updatedOrder['unique_order_id'],
"order_status" =>
$updatedOrder['order_status'],
"cancel_reason" =>
$updatedOrder['cancel_reason'],
"cancel_details" =>
$updatedOrder['cancel_details'],
"message" =>
"Your order was cancelled successfully.",
"next_api" => [
"order_details_api" =>
BASE_URL .
"api/order_details.php?order_id=" .
$updatedOrder['id'],
"my_orders_api" =>
BASE_URL .
"api/my_orders.php?status=cancelled"
]
]);
$conn->close();
?>