diff --git a/includes/Product_Type.php b/includes/Product_Type.php index 55c1037..49975b6 100644 --- a/includes/Product_Type.php +++ b/includes/Product_Type.php @@ -163,7 +163,22 @@ class Product_Type extends \WC_Product { if ($query->have_posts()) { foreach ($query->posts as $post) { $product = wc_get_product($post->ID); - if ($product && $product->is_in_stock() && $product->is_purchasable()) { + + if (!$product) { + continue; + } + + // Handle variable products by including their variations + if ($product->is_type('variable')) { + $variations = $product->get_available_variations(); + foreach ($variations as $variation_data) { + $variation = wc_get_product($variation_data['variation_id']); + if ($variation && $variation->is_in_stock() && $variation->is_purchasable()) { + $products[] = $variation; + } + } + } elseif ($product->is_in_stock() && $product->is_purchasable()) { + // Simple and other product types $products[] = $product; } }