Files
wc-bootstrap/templates/order/order-details.html.twig
magdev cfe089d1fe
All checks were successful
Create Release Package / PHP Lint (push) Successful in 51s
Create Release Package / Build Release (push) Successful in 1m9s
Fix dark mode rendering for tables, form inputs, and notices
- Override WooCommerce's .input-text background (specificity 0,3,1) with
  [data-bs-theme="dark"] selector for text inputs and textareas
- Remove table-light from <thead> in cart, review-order, orders, and
  payment-methods templates (forces white in dark mode)
- Add .alert.woocommerce-* compound selectors for notice overrides
  outside .woocommerce wrapper ancestry
- Suppress focus ring on programmatically focused notices
  (woocommerce.js focus_populate_live_region adds tabindex + focus)
- Wrap order-details product table in card matching thank-you page style
- Fix thank-you alert icon/text line wrap with d-flex align-items-center
- Bump version to 0.1.2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 22:13:31 +01:00

93 lines
3.6 KiB
Twig

{#
# Order Details (Bootstrap 5 Override)
#
# Renders the full order details table with items, totals, and customer info.
# HPOS compatible: uses WC_Order methods only.
#
# Expected context:
# order_id - Order ID
# show_downloads - Whether to show downloads table
#
# WooCommerce PHP equivalent: order/order-details.php
#
# @package WcBootstrap
# @since 0.1.0
#}
{% set order = wc_get_order(order_id) %}
{% if order %}
{% set order_items = order.get_items(apply_filters('woocommerce_purchase_order_item_types', 'line_item')) %}
{% set show_purchase_note = order.has_status(apply_filters('woocommerce_purchase_note_order_statuses', ['completed', 'processing'])) %}
{% set show_customer_details = order.get_user_id() == get_current_user_id() %}
{% if show_downloads is defined and show_downloads %}
{% set downloads = order.get_downloadable_items() %}
{% if downloads is not empty %}
{{ wc_get_template('order/order-downloads.php', { downloads: downloads, show_title: true }) }}
{% endif %}
{% endif %}
<section class="woocommerce-order-details">
{{ do_action('woocommerce_order_details_before_order_table', order) }}
<div class="card shadow-sm mb-4">
<div class="card-header">
<h2 class="h5 mb-0">{{ __('Order details') }}</h2>
</div>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead>
<tr>
<th>{{ __('Product') }}</th>
<th class="text-end">{{ __('Total') }}</th>
</tr>
</thead>
<tbody>
{{ do_action('woocommerce_order_details_before_order_table_items', order) }}
{% for item_id, item in order_items %}
{% set product = item.get_product() %}
{% include 'order/order-details-item.html.twig' with {
order: order,
item_id: item_id,
item: item,
show_purchase_note: show_purchase_note,
purchase_note: product ? product.get_purchase_note() : '',
product: product
} %}
{% endfor %}
{{ do_action('woocommerce_order_details_after_order_table_items', order) }}
</tbody>
<tfoot>
{% for key, total in order.get_order_item_totals() %}
<tr>
<th scope="row">{{ total.label|esc_html }}</th>
<td class="text-end">{{ total.value|wp_kses_post }}</td>
</tr>
{% endfor %}
{% if order.get_customer_note() %}
<tr>
<th>{{ __('Note:') }}</th>
<td class="text-end">{{ order.get_customer_note()|esc_html|nl2br }}</td>
</tr>
{% endif %}
</tfoot>
</table>
</div>
</div>
{{ do_action('woocommerce_order_details_after_order_table', order) }}
</section>
{{ do_action('woocommerce_after_order_details', order) }}
{% if show_customer_details %}
{% include 'order/order-details-customer.html.twig' with { order: order } %}
{% endif %}
{% endif %}