Files
wc-bootstrap/CHANGELOG.md
magdev f3e7ede60c Add v0.1.0 changelog entry
Document all features and fixes between v0.0.1 and v0.1.0:
Docker stack, My Account redesign, product archive card grid,
single product layout, and 14 template quirk fixes.

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

4.9 KiB

Changelog

All notable changes to this project will be documented in this file.

[0.1.0] - 2026-02-28

Added

  • Docker development environment: multistage Dockerfile (WooCommerce download, wp-bootstrap npm build, Composer deps, WordPress runtime), Compose stack with MariaDB, auto-setup entrypoint
  • Private registry image name and restart policies for Docker stack
  • My Account polish: endpoint icon map, offcanvas-lg responsive navigation with sticky sidebar, card-based dashboard with avatar welcome greeting and quick-action grid, card-wrapped forms with icon headers, view-order summary card with status badge
  • Product archive: Bootstrap 5 card grid with responsive columns, sale badges, star ratings, offcanvas sidebar for mobile filters, shop-sidebar widget area
  • Single product layout: two-column responsive grid (image gallery + product summary), bridge for wc_get_template_part() interception, disabled WooCommerce block compatibility layer
  • Global $product injection into Twig context for loop sub-templates
  • CSS overrides: WooCommerce float/width layout reset, sale badge repositioning, shop_table border reset, gallery opacity fallback, My Account max-width reset

Fixed

  • Rename base.html.twigwc-base.html.twig to prevent shadowing the parent theme's page shell via Twig FilesystemLoader path priority
  • CSS dependency handle from unregistered woocommerce to woocommerce-general for wc-bootstrap-overrides stylesheet
  • WooCommerce float-based two-column layout (width: 48% + float) fighting Bootstrap grid on single product pages
  • Nested content wrapper doubling parent theme's .container
  • Sale badge escaping image column and blocking breadcrumb clicks
  • |nl2br|esc_html filter order in order details (was escaping <br> tags)
  • HTML entity double-encoding (&hellip;) in up-sells, cross-sells, and related product headings
  • Wrong function() is defined guards in cart totals, review order, checkout login, and terms templates
  • Duplicate deprecated hook fires in dashboard template
  • Missing |raw on brand description HTML filter chain
  • Missing role="alert" on variation add-to-cart for accessibility
  • Missing |esc_attr on notification type class attribute
  • Missing is defined guard on hidden variable in global form-login
  • Pagination URLs using ?page= instead of get_pagenum_link() for archives
  • Double-escaped &ndash; in result count
  • Underscore.js triple-brace syntax conflict in variation template (wrapped in {% verbatim %})

[0.0.1] - 2026-02-28

Added

  • Initial theme scaffold (style.css, functions.php, Composer autoload)
  • Comprehensive template conversion plan (PLAN.md)
  • Phase 1: Global templates (wrapper, breadcrumb, sidebar, quantity-input, form-login) and notices (success, error, info)
  • Phase 2: Product archive and shop loop templates (archive-product, content-product, loop components, pagination, orderby, sale-flash)
  • Phase 3: Single product page templates (image gallery, title, price, meta, stock, tabs, add-to-cart forms for simple/variable/grouped/external)
  • Phase 4: Cart templates (cart table, empty cart, cart totals, shipping calculator, mini-cart, cross-sells)
  • Phase 5: Checkout templates (form-checkout, billing/shipping forms, coupon, order review, payment methods, terms, thank-you)
  • Phase 6: My Account templates (dashboard, navigation, orders, view-order, addresses, edit-address, edit-account, downloads, payment methods, login/register, password reset)
  • Phase 7: Order details templates (order-details, order-details-item, order-details-customer, form-tracking, order-again)
  • Phase 9: Supplementary templates (brands, OAuth auth, back-in-stock form)
  • Reusable Twig components (card, pagination, price, rating, address-card, status-badge, quantity-input, form-field)
  • WooCommerce-to-Twig rendering bridge (TemplateOverride + WooCommerceExtension)
  • ~50 WooCommerce/WordPress Twig functions and 7 Twig filters
  • Stack-based output buffering for nested template interception
  • Bootstrap 5 override stylesheet (wc-bootstrap.css)
  • Quantity +/- button JavaScript handler
  • Sticky header scroll shadow behavior
  • Parent theme rendering delegation via woocommerce_render_page filter
  • Theme wrapping signal via woocommerce_is_theme_wrapped filter
  • CI/CD release workflow (Gitea Actions)
  • Translation support (.pot template ready)
  • Docker development environment (multistage Dockerfile, Compose, auto-setup entrypoint)

Fixed

  • Rename base.html.twigwc-base.html.twig to prevent shadowing the parent theme's page shell via Twig FilesystemLoader path priority
  • Correct CSS dependency handle from woocommerce to woocommerce-general for wc-bootstrap-overrides stylesheet

Skipped

  • Phase 8 (Email templates): WooCommerce emails use wc_get_template_html() which bypasses the Twig rendering pipeline. Default email templates are sufficient; customization can be handled via dedicated email plugins.