magdev 8aaf30de99 Update CLAUDE.md with v1.1.1 and v1.1.2 session history
Document the critical bug fix journey for the WC_Settings_Page error:

v1.1.1 session (failed attempt):
- Attempted to fix with hook timing change
- Changed to woocommerce_init hook
- Bug persisted - error logs showed it still failed
- Lesson: Always verify fixes with error logs

v1.1.2 session (successful fix):
- Discovered root cause: Settings.php loaded too early
- require_once happened during Plugin::includes()
- PHP tried to parse 'extends WC_Settings_Page' before class existed
- Solution: Delayed require_once to add_settings_page() callback
- This callback runs when WC has loaded all settings classes

Key learnings documented:
1. Class loading order matters more than hook timing
2. Always verify fixes don't just assume they work
3. Lazy loading pattern for extending third-party classes
4. Read error logs thoroughly - backtrace reveals the sequence
5. Don't assume hook order means all classes are loaded
6. Test immediately after each release

Also documents the debugging approach that worked and the
5-version journey to finally fix this persistent issue.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 17:03:11 +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
  • 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
  • Modern UI: Clean interface built with Twig templates and vanilla JavaScript

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

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%