magdev 6507f4d8bb 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>
2026-03-01 12:01:20 +01:00

WooCommerce Composable Products

Create composable products where customers can select a limited number of items from a configurable set of products.

Description

This plugin adds a new product type to WooCommerce that allows customers to build their own product bundles by selecting from a predefined set of simple or variable products. Think of it as a "build your own gift box" or "create your sticker pack" feature.

Key Features

  • 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 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

  • PHP 8.3 or higher
  • WordPress 6.0 or higher
  • WooCommerce 8.0 or higher

Installation

  1. Upload the plugin files to /wp-content/plugins/wc-composable-product/
  2. Run composer install --no-dev in the plugin directory
  3. Activate the plugin through the 'Plugins' menu in WordPress
  4. Configure global settings under WooCommerce > Settings > Composable Products

Usage

Creating a Composable Product

  1. Go to Products > Add New
  2. Select "Composable Product" as the product type
  3. Configure product details:
    • Set the selection limit (or use global default)
    • Choose pricing mode (fixed or sum)
    • Define available products by category, tag, or SKU
  4. Publish the product

Global Settings

Navigate to WooCommerce > Settings > Composable Products to configure:

  • Default selection limit
  • Default pricing mode
  • Display options

Development

This project was created with AI assistance (Claude.AI) and follows WordPress and WooCommerce best practices.

Building from Source

composer install

Translation

Generate POT file:

wp i18n make-pot . languages/wc-composable-product.pot

Compile translations:

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:

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

Author

Marco Graetsch

Support

For issues and feature requests, please use the GitHub issue tracker.

Description
User composable products for WooCommerce
Readme 815 KiB
Release 1.3.2 Latest
2026-03-01 13:08:59 +00:00
Languages
PHP 80.2%
JavaScript 8.8%
CSS 6.5%
Twig 4.5%