$code, 'discount_type' => $discountType, 'discount_value' => $discountValue, 'min_order_amount' => $minOrderAmount ?: null, 'max_uses' => $maxUses ?: null, 'expires_at' => $expiresAt, 'is_active' => $isActive ]; if ($action === 'update' && $couponId) { db()->update('coupons', $data, 'coupon_id = :id', ['id' => $couponId]); setFlash('success', 'Coupon updated'); } else { // Check for duplicate code $existing = db()->fetch("SELECT id FROM coupons WHERE code = :code", ['code' => $code]); if ($existing) { setFlash('error', 'Coupon code already exists'); } else { $data['coupon_id'] = generateId('coup_'); $data['times_used'] = 0; db()->insert('coupons', $data); setFlash('success', 'Coupon created'); } } } header('Location: /admin/coupons.php'); exit; } if ($action === 'delete' && !empty($_POST['coupon_id'])) { db()->delete('coupons', 'coupon_id = :id', ['id' => $_POST['coupon_id']]); setFlash('success', 'Coupon deleted'); header('Location: /admin/coupons.php'); exit; } if ($action === 'toggle' && !empty($_POST['coupon_id'])) { $coupon = db()->fetch("SELECT is_active FROM coupons WHERE coupon_id = :id", ['id' => $_POST['coupon_id']]); if ($coupon) { db()->update('coupons', ['is_active' => !$coupon['is_active']], 'coupon_id = :id', ['id' => $_POST['coupon_id']]); setFlash('success', 'Coupon status updated'); } header('Location: /admin/coupons.php'); exit; } } // Get coupons $coupons = db()->fetchAll("SELECT * FROM coupons ORDER BY created_at DESC"); ?>
= $coupon['max_uses']; ?>
Code Discount Min Order Usage Expires Status Actions
No coupons created yet
% off off Never Disabled Expired Maxed Out Active