You've already forked wc-bootstrap
Audit and fix 14 Twig templates for escaping bugs, CSS conflicts, and missing Bootstrap styling: - Fix nl2br/esc_html filter order in order details - Add WC gallery modifier classes for zoom/photoswipe JS init - Fix HTML entity double-encoding in headings (up-sells, cross-sells, related) - Remove wrong 'is defined' guards on function calls - Remove duplicate deprecated hooks in dashboard - Add |raw to brand description HTML filter chain - Add role="alert" for accessibility, |esc_attr on notification types - Style mini-cart remove button as Bootstrap btn - Make shipping form-check class conditional - Add shop_table CSS reset and gallery opacity fallback Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
33 lines
927 B
Twig
33 lines
927 B
Twig
{#
|
|
# Upsell Products (Bootstrap 5 Override)
|
|
#
|
|
# Renders the upsell products section below the single product.
|
|
#
|
|
# Expected context:
|
|
# upsells - Array of WC_Product objects
|
|
# columns - Number of columns for the grid
|
|
# heading - Section heading text (filtered)
|
|
#
|
|
# WooCommerce PHP equivalent: single-product/up-sells.php
|
|
#
|
|
# @package WcBootstrap
|
|
# @since 0.1.0
|
|
#}
|
|
|
|
{% if upsells is defined and upsells|length > 0 %}
|
|
<section class="up-sells upsells products mt-5">
|
|
{% set heading = heading|default(__('You may also like…')) %}
|
|
{% if heading %}
|
|
<h2 class="h4 mb-4">{{ heading|raw }}</h2>
|
|
{% endif %}
|
|
|
|
{{ woocommerce_product_loop_start() }}
|
|
|
|
{% for product in upsells %}
|
|
{% include 'content-product.html.twig' with { product: product } %}
|
|
{% endfor %}
|
|
|
|
{{ woocommerce_product_loop_end() }}
|
|
</section>
|
|
{% endif %}
|