Files
wc-bootstrap/templates/notices/error.html.twig
magdev 98359d4cfb
All checks were successful
Create Release Package / PHP Lint (push) Successful in 1m41s
Create Release Package / Build Release (push) Successful in 1m47s
Security audit fixes: fn() whitelist, escaping, and performance (v0.1.4)
- WooCommerceExtension: ALLOWED_FUNCTIONS whitelist for fn() Twig function
- Notice templates: data attributes use wp_kses_post instead of raw
- Search form: esc_attr on search query value attribute
- Per-request ContextBuilder caching via static variable
- Shared wc_bootstrap_render_in_page_shell() helper (DRY)
- Removed unused WC_BOOTSTRAP_VERSION and WC_BOOTSTRAP_URL constants

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 01:02:43 +01:00

35 lines
1.2 KiB
Twig

{#
# Error Notice (Bootstrap 5 Override)
#
# Displays WooCommerce error notices as a Bootstrap 5 danger alert.
# Multiple errors are shown as a list within a single alert.
#
# Expected context:
# notices - Array of notice objects, each with:
# notice - Notice HTML content (pre-sanitized via wc_kses_notice)
# data - Optional data attributes string
#
# WooCommerce PHP equivalent: notices/error.php
#
# @package WcBootstrap
# @since 0.1.0
#}
{% if notices is defined and notices|length > 0 %}
<div class="alert alert-danger alert-dismissible fade show woocommerce-error" role="alert">
<i class="bi bi-exclamation-triangle me-2" aria-hidden="true"></i>
{% if notices|length == 1 %}
{{ notices[0].notice|raw }}
{% else %}
<ul class="mb-0 ps-3">
{% for notice in notices %}
<li {{ notice.data|default('')|wp_kses_post }}>
{{ notice.notice|raw }}
</li>
{% endfor %}
</ul>
{% endif %}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="{{ __('Close') }}"></button>
</div>
{% endif %}