diff --git a/CLAUDE.md b/CLAUDE.md index eb15211..ecfc4ef 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,7 +1,7 @@ # WooCommerce Tier and Package Prices - AI Context Document **Last Updated:** 2025-12-30 -**Current Version:** 1.2.5 +**Current Version:** 1.2.7 **Author:** Marco Graetsch **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. -##### 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. @@ -789,6 +793,16 @@ Roadmap for the upcoming development. - Always check filter/action documentation for parameter types - 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 - Follow the existing pattern: add setting → add UI → add logic → add template