{# # 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 #}