8aaf30de99e4b73d1f68cbb7acf30452c09b4b6f
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>
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
- Upload the plugin files to
/wp-content/plugins/wc-composable-product/ - Run
composer install --no-devin the plugin directory - Activate the plugin through the 'Plugins' menu in WordPress
- Configure global settings under WooCommerce > Settings > Composable Products
Usage
Creating a Composable Product
- Go to Products > Add New
- Select "Composable Product" as the product type
- 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
- 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
Languages
PHP
72%
JavaScript
14.2%
CSS
8.1%
Twig
5.7%