File manager - Edit - /home/webapp69.cm.in.th/u69319090028/Shop/app/Controllers/CustomerOrderController.php
Back
<?php /** * CustomerOrderController * Handles Customer Order History viewing and Order Details */ require_once __DIR__ . '/../Core/Controller.php'; require_once __DIR__ . '/../Services/OrderService.php'; require_once __DIR__ . '/../Helpers/Auth.php'; class CustomerOrderController extends Controller { private OrderService $orderService; public function __construct() { $this->orderService = new OrderService(); } public function index(): void { $userId = Auth::id(); $status = $_GET['status'] ?? 'all'; $orders = $this->orderService->getCustomerOrders($userId, $status); $this->render('account/orders', [ 'orders' => $orders, 'currentStatus' => $status, 'pageTitle' => __('my_orders') . ' - CARGOO', 'activeTab' => 'orders' ], 'account'); } public function show(string $orderNo): void { $userId = Auth::id(); $order = $this->orderService->getOrderDetail($orderNo, $userId); if (!$order) { http_response_code(404); require_once __DIR__ . '/../../views/errors/404.php'; exit; } $this->render('account/order_detail', [ 'order' => $order, 'pageTitle' => 'คำสั่งซื้อ #' . e($order['order_no']) . ' - CARGOO', 'activeTab' => 'orders' ], 'account'); } /** * POST /account/orders/{order_no}/cancel * Cancel an order by customer */ public function cancel(string $orderNo): void { $userId = Auth::id(); // Parse cancellation reason $preset = trim($_POST['cancel_reason_preset'] ?? ''); $custom = trim($_POST['cancel_reason_custom'] ?? ''); $reason = $custom !== '' ? ($preset !== '' ? "{$preset}: {$custom}" : $custom) : $preset; if (empty($reason)) { $reason = trim($_POST['reason'] ?? 'ลูกค้าต้องการยกเลิกคำสั่งซื้อ'); } $result = $this->orderService->cancelOrder($orderNo, $userId, $reason); // Handle AJAX Response if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') { header('Content-Type: application/json; charset=utf-8'); echo json_encode($result); exit; } if ($result['success']) { Session::setFlash('success', $result['message']); } else { Session::setFlash('error', $result['message']); } $redirect = !empty($_POST['redirect']) ? $_POST['redirect'] : url('/account/orders/' . $orderNo); $this->redirect($redirect); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.23 |
proxy
|
phpinfo
|
Settings