get_type() !== 'composable') { return; } $available_products = $product->get_available_products(); $selection_limit = $product->get_selection_limit(); $pricing_mode = $product->get_pricing_mode(); $show_images = get_option('wc_composable_show_images', 'yes') === 'yes'; $show_prices = get_option('wc_composable_show_prices', 'yes') === 'yes'; $show_total = get_option('wc_composable_show_total', 'yes') === 'yes'; // Prepare product data for template $products_data = []; foreach ($available_products as $available_product) { $products_data[] = [ 'id' => $available_product->get_id(), 'name' => $available_product->get_name(), 'price' => $available_product->get_price(), 'price_html' => $available_product->get_price_html(), 'image_url' => wp_get_attachment_image_url($available_product->get_image_id(), 'thumbnail'), 'permalink' => $available_product->get_permalink(), ]; } $context = [ 'product_id' => $product->get_id(), 'products' => $products_data, 'selection_limit' => $selection_limit, 'pricing_mode' => $pricing_mode, 'show_images' => $show_images, 'show_prices' => $show_prices, 'show_total' => $show_total, 'fixed_price' => $product->get_price(), 'currency_symbol' => get_woocommerce_currency_symbol(), ]; // Render template $plugin = Plugin::instance(); echo $plugin->render_template('product-selector.twig', $context); } }