46eb7f0a22eb3d1b6ca893e5e2e756dfc7932924
Intercept WooCommerce's PHP template loading via
woocommerce_before_template_part / woocommerce_after_template_part hooks
to render Bootstrap 5 Twig templates instead. This makes all 99 child
theme templates functional in a standard WooCommerce environment.
- Create WooCommerceExtension (Twig AbstractExtension) with ~50 functions
and 7 filters covering WC API, WordPress hooks, escaping, and forms
- Rewrite TemplateOverride to use hook-based interception with stack-based
output buffering for nested template support
- Wire bridge initialization at init priority 20 in functions.php
- Fix invalid {% do return() %} in two order templates
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
WooCommerce Bootstrap
A WordPress child theme of WP Bootstrap that overrides all WooCommerce plugin templates with Bootstrap 5 structures and styling.
Requirements
- WordPress 6.7+
- PHP 8.3+
- WP Bootstrap theme (parent)
- WooCommerce plugin
Installation
- Install and activate the parent theme
wp-bootstrap - Install and activate the
woocommerceplugin - Upload
wc-bootstraptowp-content/themes/ - Run
composer installin the theme directory - Activate the theme in WordPress Admin > Appearance > Themes
What This Theme Does
The WooCommerce plugin ships with its own Twig templates using custom CSS classes. This child theme overrides those templates to use Bootstrap 5 components, ensuring visual consistency with the WP Bootstrap parent theme.
Key Features
- Bootstrap 5 markup for all plugin templates
- Responsive design inheriting WP Bootstrap's grid system
- Dark mode support via WP Bootstrap's theme toggle
- Translation-ready
Development
Directory Structure
wc-bootstrap/
├── assets/css/ # Custom CSS overrides
├── assets/js/ # Custom JavaScript
├── inc/ # PHP classes (PSR-4)
├── languages/ # Translation files
├── templates/ # Bootstrap 5 Twig template overrides
├── composer.json
├── functions.php
└── style.css
Building Translations
for po in languages/wc-bootstrap-*.po; do msgfmt -o "${po%.po}.mo" "$po"; done
Releases
Releases are automated via Gitea Actions. Push a tag matching vX.X.X to trigger a release build.
git tag -a v0.1.0 -m "Version 0.1.0 - Initial release"
git push origin v0.1.0
License
GPL-2.0-or-later
Author
Marco Grätsch - https://src.bundespruefstelle.ch/magdev
Description
Languages
Twig
70.7%
PHP
19.5%
CSS
7.2%
JavaScript
1.1%
Dockerfile
0.9%
Other
0.6%