{# # Single Product Content (Bootstrap 5 Override) # # Renders the single product page with a Bootstrap 5 two-column grid: # Left column (col-lg-6): Product images (sale flash + gallery) # Right column (col-lg-6): Product summary (title, rating, price, excerpt, # add-to-cart, meta, sharing) # Full-width rows below: Tabs, upsells, related products # # All individual components are rendered via WooCommerce action hooks, # which trigger the Bootstrap 5 sub-templates through TemplateOverride. # # Rendered via the content-single-product.php bridge file (not TemplateOverride) # because wc_get_template_part() does not fire the template_part hooks. # # Hook output structure: # woocommerce_before_single_product_summary → sale flash (10), product images (20) # woocommerce_single_product_summary → title (5), rating (10), price (10), # excerpt (20), add-to-cart (30), # meta (40), sharing (50) # woocommerce_after_single_product_summary → tabs (10), upsells (15), related (20) # # Context (from bridge file): # product - WC_Product object # product_id - Product post ID # product_class - Space-separated CSS class string from wc_get_product_class() # # WooCommerce PHP equivalent: content-single-product.php # # @package WcBootstrap # @since 0.1.0 #}
{# Two-column layout: images left, summary right #}
{# Left column: Sale flash + Product images #}
{{ do_action('woocommerce_before_single_product_summary') }}
{# Right column: Product summary #}
{{ do_action('woocommerce_single_product_summary') }}
{# Full-width sections: Tabs, Upsells, Related Products #} {{ do_action('woocommerce_after_single_product_summary') }}
{{ do_action('woocommerce_after_single_product') }}