View file test.4imas.ru/ajax/order_status.php

File size: 1.5Kb
<?php
// ajax/order_status.php
require '../config/bootstrap.php';
require '../config/auth.php';

// Доступ только для администратора
if (!isAdmin()) {
    http_response_code(403);
    echo json_encode(['success'=>false, 'error'=>'Доступ запрещён']);
    exit;
}

// Получаем JSON данные
$data = json_decode(file_get_contents('php://input'), true);

// Проверка CSRF
if (empty($data['csrf']) || $data['csrf'] !== ($_SESSION['csrf'] ?? '')) {
    http_response_code(403);
    echo json_encode(['success'=>false, 'error'=>'Неверный CSRF токен']);
    exit;
}

// Получаем ID заказа и новый статус
$order_id = intval($data['order_id'] ?? 0);
$new_status = trim($data['status'] ?? '');

$valid_statuses = ['Новый','В обработке','Печать','Доставляется','Доставлен','Отменён'];

if (!$order_id || !in_array($new_status, $valid_statuses)) {
    echo json_encode(['success'=>false, 'error'=>'Неверные данные']);
    exit;
}

// Обновляем статус заказа
$stmt = $pdo->prepare("UPDATE orders SET status = ? WHERE id = ? LIMIT 1");
$updated = $stmt->execute([$new_status, $order_id]);

if ($updated) {
    echo json_encode(['success'=>true, 'message'=>'Статус заказа обновлён']);
} else {
    echo json_encode(['success'=>false, 'error'=>'Не удалось обновить статус']);
}