v1.2.0 - Fix product selection, cart pricing, admin tabs + CI/CD

Fix three critical bugs that persisted through v1.1.11-v1.1.14:

- Product selection always empty: meta_query checked _product_type in
  postmeta, but WooCommerce uses the product_type taxonomy. Replaced
  with correct tax_query using NOT IN operator.
- Cart price always 0.00: composable_price_calculated flag persisted
  in session, preventing recalculation on page loads. Removed flag;
  static variable already handles per-request dedup.
- Admin tabs both visible on load: JS now triggers WooCommerce native
  tab click instead of manually toggling panel visibility.

Add Gitea CI/CD release workflow triggered on v* tags.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-01 12:01:20 +01:00
parent 29a68b0be4
commit 6507f4d8bb
68 changed files with 351 additions and 82 deletions

View File

@@ -10,10 +10,13 @@ This plugin adds a new product type to WooCommerce that allows customers to buil
- **Custom Product Type**: New "Composable Product" type in WooCommerce
- **Flexible Selection**: Define available products by category, tag, or SKU
- **Variable Product Support**: Automatically expands variable products into selectable variations
- **Stock Management**: Real-time stock validation, visual indicators, and automatic inventory tracking
- **Configurable Limits**: Set global or per-product selection limits
- **Pricing Options**: Fixed price or sum of selected products
- **Multi-language Support**: Fully translatable with i18n support
- **Pricing Options**: Fixed price or sum of selected products with full locale-aware formatting
- **Multi-language Support**: Fully translated in 6 locales (de_DE, de_CH, fr_CH, it_CH + informal variants)
- **Modern UI**: Clean interface built with Twig templates and vanilla JavaScript
- **CI/CD**: Automated release workflow for Gitea
## Requirements
@@ -43,6 +46,7 @@ This plugin adds a new product type to WooCommerce that allows customers to buil
### Global Settings
Navigate to WooCommerce > Settings > Composable Products to configure:
- Default selection limit
- Default pricing mode
- Display options
@@ -60,10 +64,28 @@ composer install
### Translation
Generate POT file:
```bash
wp i18n make-pot . languages/wc-composable-product.pot
```
Compile translations:
```bash
for po in languages/*.po; do msgfmt -o "${po%.po}.mo" "$po"; done
```
### Creating Releases
Releases are automated via Gitea CI/CD. Push an annotated tag to trigger:
```bash
git tag -a v1.2.0 -m "Release v1.2.0"
git push origin v1.2.0
```
The workflow builds the release ZIP, compiles translations, generates checksums, and creates a Gitea release with attachments.
## License
GPL v3 or later - see LICENSE file for details