Update CLAUDE.md with v1.2.7 learnings and roadmap

Updated documentation to reflect:
- Current version is now 1.2.7
- v1.2.5 issues (table headers, parent pricing forms) are FIXED in v1.2.6/v1.2.7
- Translation updates completed in v1.2.7
- Added critical section on WooCommerce product type-specific hooks

Key learnings documented:
- woocommerce_product_options_pricing only fires for simple products
- woocommerce_product_options_general_product_data fires for all product types
- Proper hook selection is critical for variable product parent UI

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-30 01:04:48 +01:00
parent ae946683b3
commit 10a1f94a31

View File

@@ -1,7 +1,7 @@
# WooCommerce Tier and Package Prices - AI Context Document # WooCommerce Tier and Package Prices - AI Context Document
**Last Updated:** 2025-12-30 **Last Updated:** 2025-12-30
**Current Version:** 1.2.5 **Current Version:** 1.2.7
**Author:** Marco Graetsch **Author:** Marco Graetsch
**Project Status:** Production-ready WordPress plugin **Project Status:** Production-ready WordPress plugin
@@ -765,13 +765,17 @@ Roadmap for the upcoming development.
2. ~~Make it possible to define tier or package prices on variable products in the parent product as a default for that product and all variants of it unless a variant has its own tier or package prices.~~**COMPLETED in v1.2.5** - Implemented parent product default pricing with automatic fallback. Variable products can define tier/package pricing once at parent level; variations inherit these defaults unless they have their own specific pricing. Added helper methods in cart class and updated all pricing/restriction checks to support parent fallback. 2. ~~Make it possible to define tier or package prices on variable products in the parent product as a default for that product and all variants of it unless a variant has its own tier or package prices.~~**COMPLETED in v1.2.5** - Implemented parent product default pricing with automatic fallback. Variable products can define tier/package pricing once at parent level; variations inherit these defaults unless they have their own specific pricing. Added helper methods in cart class and updated all pricing/restriction checks to support parent fallback.
##### Fixes for v1.2.5 ##### Bugfixes (Completed in v1.2.6 and v1.2.7)
1. The table headers in admin are still visible. 1. ~~Table headers in admin are still visible when empty.~~**FIXED in v1.2.7** - The CSS `:has()` pseudo-class approach from v1.2.5/v1.2.6 wasn't working reliably across all browsers. Implemented JavaScript-based solution that adds/removes `has-rows` class on tables. Headers now hide by default (CSS) and show only when table has rows (JavaScript toggles class). Function `updateTableHeaders()` is called on page load and after all add/remove row operations.
2. The parent product fallback on variable product is also not visible. 2. ~~Parent product pricing forms not visible in admin.~~**FIXED in v1.2.6 and v1.2.7** - The backend fallback logic from v1.2.5 was implemented but the admin UI to configure it was missing. Added `add_variable_parent_pricing_fields()` method that displays pricing forms for variable product parents. Fixed hook issue in v1.2.7: changed from `woocommerce_product_options_pricing` (only fires for simple products) to `woocommerce_product_options_general_product_data` (fires for all product types). Variable product parents now have a "Default Tier & Package Pricing for All Variations" section where defaults can be configured.
##### Planned Enhancements for v1.2.6+ ##### Translation Updates (Completed in v1.2.7)
1.**COMPLETED** - Updated all translation files (.pot, .po, .mo) with new strings from v1.2.6 and v1.2.7 for variable product parent pricing features. All 7 language variants updated with translations for "Default Tier & Package Pricing for All Variations" and related strings.
##### Planned Enhancements for v1.2.8+
1. Create different, selectable templates for tierprices and packages to use in the frontend. Make the new templates selectable globally on the settings-page, not per product. 1. Create different, selectable templates for tierprices and packages to use in the frontend. Make the new templates selectable globally on the settings-page, not per product.
@@ -789,6 +793,16 @@ Roadmap for the upcoming development.
- Always check filter/action documentation for parameter types - Always check filter/action documentation for parameter types
- Don't assume cart item arrays everywhere - sometimes it's product objects! - Don't assume cart item arrays everywhere - sometimes it's product objects!
#### CRITICAL: Product Type-Specific Hooks (Learned in v1.2.6/v1.2.7)
WooCommerce has different hooks for different product types in the admin product edit page:
- `woocommerce_product_options_pricing` - **ONLY fires for simple products**, NOT variable products
- `woocommerce_product_options_general_product_data` - Fires for ALL product types after the general tab
- `woocommerce_variation_options_pricing` - Fires for individual variations within variable products
**Lesson:** When adding admin UI for variable product parents, use `woocommerce_product_options_general_product_data` and check `$product->is_type('variable')` to conditionally display. Using `woocommerce_product_options_pricing` will cause forms to never appear for variable products (as discovered in v1.2.6 → v1.2.7 fix).
### When Adding Features ### When Adding Features
- Follow the existing pattern: add setting → add UI → add logic → add template - Follow the existing pattern: add setting → add UI → add logic → add template