Files
wc-composable-product/README.md
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

2.9 KiB

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.