You've already forked wc-composable-product
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>
This commit is contained in:
39
CHANGELOG.md
39
CHANGELOG.md
@@ -5,6 +5,45 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.2.0] - 2026-03-01
|
||||
|
||||
### Fixed
|
||||
|
||||
- **CRITICAL**: Product selection always empty regardless of configuration (categories, tags, or SKUs)
|
||||
- Root cause: Product query used a `meta_query` checking `_product_type` in `wp_postmeta`, but WooCommerce stores product types in the `product_type` **taxonomy** — the `!=` comparison with a non-existent meta key caused an INNER JOIN returning zero results
|
||||
- Fix: Replaced broken `meta_query` with correct `tax_query` using `product_type` taxonomy to exclude composable products
|
||||
- **CRITICAL**: Cart price always 0.00 despite correct frontend price calculation
|
||||
- Root cause: `composable_price_calculated` flag was persisted to the cart session, preventing price recalculation on subsequent page loads — but `set_price()` only modifies the in-memory product object and is lost between requests
|
||||
- Fix: Removed per-item session flag; the existing static `$already_calculated` flag already prevents duplicate calculation within a single request
|
||||
- **Admin tab rendering**: Both General and Composable Options panels visible on initial page load
|
||||
- Root cause: JavaScript manually showed `#composable_product_data` via `.show()` without hiding the General panel
|
||||
- Fix: Trigger WooCommerce's native tab click instead, so the tab system handles panel visibility correctly
|
||||
|
||||
### Added
|
||||
|
||||
- **Gitea CI/CD release workflow** (`.gitea/workflows/release.yml`)
|
||||
- Triggered on `v*` tags
|
||||
- Installs PHP 8.3 with production Composer dependencies
|
||||
- Compiles `.po` → `.mo` translations
|
||||
- Verifies plugin version matches tag
|
||||
- Builds release ZIP with proper WordPress directory structure
|
||||
- Generates SHA-256 checksums
|
||||
- Verifies package contains main plugin file and vendor directory
|
||||
- Extracts changelog for release notes
|
||||
- Creates Gitea release with attachments via API
|
||||
|
||||
### Removed
|
||||
|
||||
- Debug logging from v1.1.14 (no longer needed after root cause identified)
|
||||
|
||||
### Technical
|
||||
|
||||
- Modified files: includes/Product_Type.php, includes/Cart_Handler.php, assets/js/admin.js
|
||||
- New file: .gitea/workflows/release.yml
|
||||
- Product query now correctly uses `tax_query` with `product_type` taxonomy (`NOT IN` operator)
|
||||
- Cart price recalculated on every request via `woocommerce_before_calculate_totals` hook
|
||||
- Admin JS uses `$('ul.product_data_tabs li.composable_options a').trigger('click')` for native WooCommerce tab handling
|
||||
|
||||
## [1.1.14] - 2025-12-31
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user