You've already forked wc-composable-product
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 669888817b | |||
| 5564b888fc | |||
| 91aca25169 | |||
| 4195fb2651 | |||
| ba28ae174f | |||
| 755108a7d3 |
56
CHANGELOG.md
56
CHANGELOG.md
@@ -5,6 +5,62 @@ 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.1.13] - 2025-12-31
|
||||
|
||||
### Fixed
|
||||
|
||||
- **CRITICAL**: "No products available for selection" message showing even when products are configured
|
||||
- Removed overly strict `is_in_stock()` requirement that was filtering out all products
|
||||
- Products now show regardless of stock status (out-of-stock items are displayed but disabled)
|
||||
- Added `'relation' => 'AND'` to meta_query for proper handling of multiple meta conditions
|
||||
|
||||
### Changed
|
||||
|
||||
- Product retrieval now shows all purchasable products, not just in-stock ones
|
||||
- Stock status still displayed on frontend with appropriate styling
|
||||
- Out-of-stock items shown but disabled via checkbox and visual indicators
|
||||
- Frontend stock management from v1.1.0 still fully functional
|
||||
|
||||
### Technical
|
||||
|
||||
- Modified file: includes/Product_Type.php (lines 117-124, 177, 181)
|
||||
- Changed from `$variation->is_in_stock() && $variation->is_purchasable()` to just `$variation->is_purchasable()`
|
||||
- Changed from `$product->is_in_stock() && $product->is_purchasable()` to just `$product->is_purchasable()`
|
||||
- Added `'relation' => 'AND'` to meta_query array for WordPress query compatibility
|
||||
|
||||
### Notes
|
||||
|
||||
- This fixes the issue where NO products were showing in the selector
|
||||
- Stock validation still occurs at add-to-cart time (Stock_Manager class)
|
||||
- Frontend still displays stock badges (in stock, low stock, out of stock)
|
||||
- Out-of-stock items remain non-selectable via disabled checkboxes
|
||||
- All translation files remain at 100% completion (57/57 strings)
|
||||
|
||||
## [1.1.12] - 2025-12-31
|
||||
|
||||
### Fixed
|
||||
|
||||
- **CRITICAL**: Variable product variations still not appearing in product selector after v1.1.11 release
|
||||
- Changed variation retrieval method from `get_available_variations()` to `get_children()` for more reliable variation ID retrieval
|
||||
- `get_available_variations()` returns complex data arrays which may not work in all contexts
|
||||
- `get_children()` returns simple array of variation IDs directly, ensuring consistent results
|
||||
|
||||
### Technical
|
||||
|
||||
- Modified file: includes/Product_Type.php (lines 171-184)
|
||||
- Changed from `$product->get_available_variations()` to `$product->get_children()`
|
||||
- More direct and reliable method for retrieving variation IDs
|
||||
- Each variation ID passed to `wc_get_product()` for full product object
|
||||
- Maintains all stock and purchasability checks from v1.1.11
|
||||
|
||||
### Notes
|
||||
|
||||
- This is a patch release fixing the variable product support introduced in v1.1.11
|
||||
- User reported "nope, still no product selectable" after v1.1.11
|
||||
- Root cause: `get_available_variations()` returns variation data arrays instead of clean IDs
|
||||
- `get_children()` is the standard WooCommerce method for retrieving variation IDs
|
||||
- All translation files remain at 100% completion (57/57 strings - no changes needed)
|
||||
|
||||
## [1.1.11] - 2025-12-31
|
||||
|
||||
### Added
|
||||
|
||||
@@ -115,6 +115,7 @@ class Product_Type extends \WC_Product {
|
||||
|
||||
// Exclude composable products from selection
|
||||
$args['meta_query'] = [
|
||||
'relation' => 'AND',
|
||||
[
|
||||
'key' => '_product_type',
|
||||
'value' => 'composable',
|
||||
@@ -170,14 +171,15 @@ class Product_Type extends \WC_Product {
|
||||
|
||||
// Handle variable products by including their variations
|
||||
if ($product->is_type('variable')) {
|
||||
$variations = $product->get_available_variations();
|
||||
foreach ($variations as $variation_data) {
|
||||
$variation = wc_get_product($variation_data['variation_id']);
|
||||
if ($variation && $variation->is_in_stock() && $variation->is_purchasable()) {
|
||||
// Get variation IDs directly from the product
|
||||
$variation_ids = $product->get_children();
|
||||
foreach ($variation_ids as $variation_id) {
|
||||
$variation = wc_get_product($variation_id);
|
||||
if ($variation && $variation->is_purchasable()) {
|
||||
$products[] = $variation;
|
||||
}
|
||||
}
|
||||
} elseif ($product->is_in_stock() && $product->is_purchasable()) {
|
||||
} elseif ($product->is_purchasable()) {
|
||||
// Simple and other product types
|
||||
$products[] = $product;
|
||||
}
|
||||
|
||||
BIN
releases/wc-composable-product-v1.1.11.zip
Normal file
BIN
releases/wc-composable-product-v1.1.11.zip
Normal file
Binary file not shown.
1
releases/wc-composable-product-v1.1.11.zip.md5
Normal file
1
releases/wc-composable-product-v1.1.11.zip.md5
Normal file
@@ -0,0 +1 @@
|
||||
63b105311dc1cc8ac67c05528ad02e30 wc-composable-product-v1.1.11.zip
|
||||
1
releases/wc-composable-product-v1.1.11.zip.sha256
Normal file
1
releases/wc-composable-product-v1.1.11.zip.sha256
Normal file
@@ -0,0 +1 @@
|
||||
214002a28a0426b4d2423f234d1dff63e4a8e58c6301cbd6eaed8db670db88c6 wc-composable-product-v1.1.11.zip
|
||||
BIN
releases/wc-composable-product-v1.1.12.zip
Normal file
BIN
releases/wc-composable-product-v1.1.12.zip
Normal file
Binary file not shown.
1
releases/wc-composable-product-v1.1.12.zip.md5
Normal file
1
releases/wc-composable-product-v1.1.12.zip.md5
Normal file
@@ -0,0 +1 @@
|
||||
546b9f9dd4ef0ec174d574af301a7bbc wc-composable-product-v1.1.12.zip
|
||||
1
releases/wc-composable-product-v1.1.12.zip.sha256
Normal file
1
releases/wc-composable-product-v1.1.12.zip.sha256
Normal file
@@ -0,0 +1 @@
|
||||
c445f1744d28cb53ef314f2dbb253aae31a7750f49f615f5c11a109274736f75 wc-composable-product-v1.1.12.zip
|
||||
@@ -3,7 +3,7 @@
|
||||
* Plugin Name: WooCommerce Composable Products
|
||||
* Plugin URI: https://github.com/magdev/wc-composable-product
|
||||
* Description: Create composable products where customers select a limited number of items from a configurable set
|
||||
* Version: 1.1.11
|
||||
* Version: 1.1.13
|
||||
* Author: Marco Graetsch
|
||||
* Author URI: https://example.com
|
||||
* License: GPL v3 or later
|
||||
@@ -19,7 +19,7 @@
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
// Define plugin constants
|
||||
define('WC_COMPOSABLE_PRODUCT_VERSION', '1.1.11');
|
||||
define('WC_COMPOSABLE_PRODUCT_VERSION', '1.1.13');
|
||||
define('WC_COMPOSABLE_PRODUCT_FILE', __FILE__);
|
||||
define('WC_COMPOSABLE_PRODUCT_PATH', plugin_dir_path(__FILE__));
|
||||
define('WC_COMPOSABLE_PRODUCT_URL', plugin_dir_url(__FILE__));
|
||||
|
||||
Reference in New Issue
Block a user