prepare("SELECT * FROM categories WHERE slug = ? AND status = 1"); $stmt->execute([$slug]); $category = $stmt->fetch(); if (!$category) { header('Location: ' . SITE_URL . 'pages/shop.php'); exit; } $page_title = $category['name']; // Get subcategories $subcategories = get_subcategories($category['id']); // Get products $page_num = max(1, intval($_GET['page'] ?? 1)); $per_page = 12; $offset = ($page_num - 1) * $per_page; $sort = $_GET['sort'] ?? 'newest'; $order_by = match($sort) { 'price_low' => 'p.regular_price ASC', 'price_high' => 'p.regular_price DESC', 'name' => 'p.name ASC', default => 'p.created_at DESC' }; $count_stmt = $db->prepare("SELECT COUNT(*) FROM products WHERE category_id = ? AND status = 1"); $count_stmt->execute([$category['id']]); $total_products = $count_stmt->fetchColumn(); $total_pages = ceil($total_products / $per_page); $products_stmt = $db->prepare("SELECT p.*, c.name as category_name, c.slug as category_slug FROM products p LEFT JOIN categories c ON p.category_id = c.id WHERE p.category_id = ? AND p.status = 1 ORDER BY $order_by LIMIT $per_page OFFSET $offset"); $products_stmt->execute([$category['id']]); $products = $products_stmt->fetchAll(); require_once '../includes/header.php'; require_once '../includes/navbar.php'; ?>

products available

0): ?>

Showing - of products

0): ?>
1): ?>

No products in this category yet

Check back soon for new arrivals

Browse All Products