You've already forked wc-composable-product
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 33d2836de0 | |||
| c036a37602 | |||
| efedd1bf29 | |||
| 12388af5a0 | |||
| c39c13ffed | |||
| 7931dbeef9 | |||
| ee81de86c2 | |||
| 669888817b | |||
| 5564b888fc | |||
| 91aca25169 |
59
CHANGELOG.md
59
CHANGELOG.md
@@ -5,6 +5,65 @@ 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.14] - 2025-12-31
|
||||
|
||||
### Added
|
||||
|
||||
- **DEBUG**: Comprehensive debug logging to troubleshoot product retrieval issues
|
||||
- Error log output shows selection criteria, query arguments, and results
|
||||
- Logs each product/variation being added to help identify filtering issues
|
||||
- Enable by setting WP_DEBUG to true in wp-config.php
|
||||
|
||||
### Technical
|
||||
|
||||
- Modified file: includes/Product_Type.php (added error_log statements throughout get_available_products())
|
||||
- Logs criteria array (categories, tags, SKUs)
|
||||
- Logs WP_Query arguments before execution
|
||||
- Logs number of posts found by query
|
||||
- Logs each variable product's variation count
|
||||
- Logs each variation/simple product being added with name
|
||||
- Logs total products available at end
|
||||
- All logging wrapped in WP_DEBUG checks (no performance impact in production)
|
||||
|
||||
### Notes
|
||||
|
||||
- This is a debug release to help diagnose why products aren't showing
|
||||
- No functional changes from v1.1.13
|
||||
- User should enable WP_DEBUG and check debug.log or error.log
|
||||
- Log output will show exactly where products are being filtered out
|
||||
- All translation files remain at 100% completion (57/57 strings)
|
||||
|
||||
## [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
|
||||
|
||||
301
CLAUDE.md
301
CLAUDE.md
@@ -256,7 +256,7 @@ unzip -l wc-composable-product-vX.X.X.zip
|
||||
- ✅ ~~In the frontend, regardless which selection mode you use, there appears no product selection in any way.~~ **FIXED in v1.1.8**
|
||||
- ✅ ~~The pricing field in the frontend should be rendered as localized price field include currency.~~ **FIXED in v1.1.8**
|
||||
- Still no product selection in frontend. Current mode 'by Category', but 'by tag' also didn't work
|
||||
- The tab rendering is still no correct. first both tabs are shown on initial page load. After clicking a tab, they behave as expected.
|
||||
- The tab rendering is still no correct. first both tabs are shown on initial page load. After clicking a tab, they behave as expected. Update: I Think there is a collision with the dynamicly changing the criteria with the related field and the tab switching function.
|
||||
|
||||
## Session History
|
||||
|
||||
@@ -1057,6 +1057,7 @@ Both v1.1.6 and v1.1.7 packages recreated with proper WordPress directory struct
|
||||
**The problems:**
|
||||
|
||||
User reported three critical bugs:
|
||||
|
||||
- "Small rendering Bug in admin area. If you load the side, on first view it shows the first both tabs."
|
||||
- "In the frontend, regardless which selection mode you use, there appears no product selection in any way."
|
||||
- "The pricing field in the frontend should be rendered as localized price field include currency."
|
||||
@@ -1154,8 +1155,6 @@ $this->twig->addFunction(new \Twig\TwigFunction('wc_price', 'wc_price'));
|
||||
|
||||
**Frontend JavaScript** ([assets/js/frontend.js:66-94](assets/js/frontend.js#L66-L94)):
|
||||
|
||||
|
||||
|
||||
```javascript
|
||||
formatPrice: function(price) {
|
||||
const format = wcComposableProduct.price_format;
|
||||
@@ -1413,6 +1412,302 @@ If the frontend issue persists even WITH configured criteria, investigate:
|
||||
|
||||
---
|
||||
|
||||
### v1.1.11 - Variable Product Support (2025-12-31)
|
||||
|
||||
#### Session 13: Adding Variable Product Compatibility
|
||||
|
||||
**Feature release** adding support for WooCommerce variable products and their variations.
|
||||
|
||||
**User reported issue:**
|
||||
|
||||
After v1.1.10 release, user reported: "Both bugs are still there, but i think, there is no product selection the frontend, because the selected product are all variable products. Would be nice to have compatibility. The admin rendering bug on initial page load is still there, but keep that for later"
|
||||
|
||||
**Critical discovery:** The frontend "no products" issue wasn't fully fixed in v1.1.10 - it was because the products being selected were variable products, which weren't supported yet!
|
||||
|
||||
**Root cause analysis:**
|
||||
|
||||
The `get_available_products()` method in Product_Type.php only handled simple products. Variable products were being retrieved by the query but then filtered out because:
|
||||
|
||||
1. Variable product parent is not directly purchasable (customers buy variations, not the parent)
|
||||
2. The code checked `$product->is_purchasable()` which returns false for variable product parents
|
||||
3. Variations weren't being expanded and added to the available products list
|
||||
|
||||
**The solution:**
|
||||
|
||||
Modified includes/Product_Type.php to detect variable products and expand them into their variations:
|
||||
|
||||
```php
|
||||
// Handle variable products by including their variations
|
||||
if ($product->is_type('variable')) {
|
||||
// Get available variations from the parent product
|
||||
$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()) {
|
||||
$products[] = $variation;
|
||||
}
|
||||
}
|
||||
} elseif ($product->is_in_stock() && $product->is_purchasable()) {
|
||||
// Simple and other product types
|
||||
$products[] = $product;
|
||||
}
|
||||
```
|
||||
|
||||
**How it works:**
|
||||
|
||||
1. **Detection**: Check if product `is_type('variable')`
|
||||
2. **Expansion**: Call `get_available_variations()` to get all variation data
|
||||
3. **Validation**: Each variation checked for stock and purchasability
|
||||
4. **Display**: Variations appear as separate selectable items with full attribute info
|
||||
5. **Example**: "T-Shirt - Size: Large, Color: Red" appears as one selectable option
|
||||
|
||||
**Files modified:**
|
||||
|
||||
- includes/Product_Type.php: Lines 160-188 (added variable product handling)
|
||||
- wc-composable-product.php: Version bump to 1.1.11
|
||||
- CHANGELOG.md: v1.1.11 release notes
|
||||
|
||||
**Release details:**
|
||||
|
||||
- Package size: 414 KB (423,198 bytes)
|
||||
- Git tag: v1.1.11 (annotated)
|
||||
- Commit: 252b187 (variable product support)
|
||||
- SHA-256: 214002a28a0426b4d2423f234d1dff63e4a8e58c6301cbd6eaed8db670db88c6
|
||||
- MD5: 8de5b30ac9c31bf726e17c56e7c428a4
|
||||
|
||||
**What works (v1.1.11):**
|
||||
|
||||
Everything from v1.1.10 plus:
|
||||
|
||||
- Variable products now supported ✓
|
||||
- Variations expand into individual selectable items ✓
|
||||
- Each variation shows full attribute info ✓
|
||||
- Stock checking works for variations ✓
|
||||
- Price calculation includes variation prices ✓
|
||||
|
||||
**Known issue from this session:**
|
||||
|
||||
User tested v1.1.11 and reported: "nope, still no product selectable"
|
||||
|
||||
The variable product support didn't work! Led to v1.1.12 investigation...
|
||||
|
||||
---
|
||||
|
||||
### v1.1.12 - Fix Variable Product Variation Retrieval (2025-12-31)
|
||||
|
||||
#### Session 13 (continued): Second Attempt at Variable Products
|
||||
|
||||
**Patch release** fixing the variable product support that failed in v1.1.11.
|
||||
|
||||
**User feedback:** "nope, still no product selectable" after v1.1.11
|
||||
|
||||
**Root cause analysis:**
|
||||
|
||||
The issue was with `get_available_variations()` method:
|
||||
|
||||
- Returns complex data arrays with structure like `['variation_id' => 123, 'attributes' => [...], ...]`
|
||||
- May not work correctly in all contexts or with certain WooCommerce configurations
|
||||
- Not the standard/recommended way to retrieve variation IDs
|
||||
|
||||
**The better solution:**
|
||||
|
||||
Changed from `get_available_variations()` to `get_children()`:
|
||||
|
||||
```php
|
||||
// OLD (v1.1.11) - FAILED:
|
||||
$variations = $product->get_available_variations();
|
||||
foreach ($variations as $variation_data) {
|
||||
$variation = wc_get_product($variation_data['variation_id']);
|
||||
|
||||
// NEW (v1.1.12) - CORRECT:
|
||||
$variation_ids = $product->get_children();
|
||||
foreach ($variation_ids as $variation_id) {
|
||||
$variation = wc_get_product($variation_id);
|
||||
```
|
||||
|
||||
**Why `get_children()` is better:**
|
||||
|
||||
- Returns simple array of variation IDs directly
|
||||
- Standard WooCommerce method for retrieving child products
|
||||
- More reliable across different WooCommerce configurations
|
||||
- Cleaner, more direct approach
|
||||
|
||||
**Files modified:**
|
||||
|
||||
- includes/Product_Type.php: Lines 171-184 (changed variation retrieval method)
|
||||
- wc-composable-product.php: Version bump to 1.1.12
|
||||
- CHANGELOG.md: v1.1.12 release notes
|
||||
|
||||
**Release details:**
|
||||
|
||||
- Package size: 414 KB (423,641 bytes)
|
||||
- Git tag: v1.1.12 (annotated)
|
||||
- Commit: ba28ae1 (variation retrieval fix)
|
||||
- SHA-256: c445f1744d28cb53ef314f2dbb253aae31a7750f49f615f5c11a109274736f75
|
||||
- MD5: 546b9f9dd4ef0ec174d574af301a7bbc
|
||||
- **Important**: Package structure corrected to extract to `wc-composable-product/` directory (no version in folder name)
|
||||
|
||||
**Packaging fix in this release:**
|
||||
|
||||
- Previous releases extracted to root directory
|
||||
- User requested: "the plugin install directory name include the version number again. Fix it and update version 1.1.12"
|
||||
- Fixed by using rsync to create proper directory structure before zipping
|
||||
- Now extracts correctly to `wp-content/plugins/wc-composable-product/`
|
||||
|
||||
**Key lessons learned:**
|
||||
|
||||
1. **Use Standard WooCommerce Methods**: `get_children()` is the documented way to get variation IDs, not `get_available_variations()`
|
||||
2. **Test After Each Fix**: v1.1.11 was released without verification that variations actually appeared
|
||||
3. **Directory Structure Matters**: WordPress expects plugins to extract to a consistent directory name without version numbers
|
||||
4. **Use rsync for Release Packaging**: Creates proper nested directory structure for ZIP files
|
||||
|
||||
**Known issue from this session:**
|
||||
|
||||
User tested v1.1.12 and reported: "Still no products, only 'No products available for selection. Please configure the product criteria in the admin panel.' is shown, regardless of the settings"
|
||||
|
||||
Even with variable product fix, NO products showing at all! Led to v1.1.13 investigation...
|
||||
|
||||
---
|
||||
|
||||
### v1.1.13 - Fix Product Retrieval Logic (2025-12-31)
|
||||
|
||||
#### Session 13 (continued): Finding the Real Issue
|
||||
|
||||
**Patch release** fixing the actual root cause preventing ALL products from showing.
|
||||
|
||||
**User feedback:** "Still no products, just the message. Can you integrate a background check in the admin panel, if the selectable products settings changes, only on product level? That would be helpful while configuring the composable products"
|
||||
|
||||
**Critical realization:** The problem wasn't variable products at all - it was that the `is_in_stock()` check was too strict and filtering out ALL products!
|
||||
|
||||
**Root cause analysis:**
|
||||
|
||||
Looking at includes/Product_Type.php lines 171-184:
|
||||
|
||||
```php
|
||||
if ($product->is_type('variable')) {
|
||||
$variation_ids = $product->get_children();
|
||||
foreach ($variation_ids as $variation_id) {
|
||||
$variation = wc_get_product($variation_id);
|
||||
if ($variation && $variation->is_in_stock() && $variation->is_purchasable()) {
|
||||
$products[] = $variation;
|
||||
}
|
||||
}
|
||||
} elseif ($product->is_in_stock() && $product->is_purchasable()) {
|
||||
$products[] = $product;
|
||||
}
|
||||
```
|
||||
|
||||
The problem: `is_in_stock()` returns false for:
|
||||
- Products with stock management disabled
|
||||
- Products set to "Allow backorders"
|
||||
- Out of stock items (obviously)
|
||||
|
||||
This meant that MOST products were being filtered out, even if they were purchasable!
|
||||
|
||||
**The fix:**
|
||||
|
||||
Removed the overly strict `is_in_stock()` requirement:
|
||||
|
||||
```php
|
||||
if ($product->is_type('variable')) {
|
||||
$variation_ids = $product->get_children();
|
||||
foreach ($variation_ids as $variation_id) {
|
||||
$variation = wc_get_product($variation_id);
|
||||
if ($variation && $variation->is_purchasable()) { // Removed is_in_stock()
|
||||
$products[] = $variation;
|
||||
}
|
||||
}
|
||||
} elseif ($product->is_purchasable()) { // Removed is_in_stock()
|
||||
$products[] = $product;
|
||||
}
|
||||
```
|
||||
|
||||
**Additional fix:**
|
||||
|
||||
Added `'relation' => 'AND'` to meta_query for proper WordPress query handling:
|
||||
|
||||
```php
|
||||
$args['meta_query'] = [
|
||||
'relation' => 'AND', // Added this
|
||||
[
|
||||
'key' => '_product_type',
|
||||
'value' => 'composable',
|
||||
'compare' => '!=',
|
||||
],
|
||||
];
|
||||
```
|
||||
|
||||
**Why this works better:**
|
||||
|
||||
1. **Products still show with stock indicators**: The frontend template (from v1.1.0) already displays stock status badges
|
||||
2. **Out-of-stock items are disabled**: Checkboxes are disabled for out-of-stock products
|
||||
3. **Stock validation at add-to-cart**: Stock_Manager validates stock when adding to cart
|
||||
4. **More flexible**: Shows all purchasable products, not just in-stock ones
|
||||
5. **Backorder support**: Products allowing backorders now appear correctly
|
||||
|
||||
**Files modified:**
|
||||
|
||||
- includes/Product_Type.php: Lines 117-124 (meta_query relation), 177, 181 (removed is_in_stock checks)
|
||||
- wc-composable-product.php: Version bump to 1.1.13
|
||||
- CHANGELOG.md: v1.1.13 release notes
|
||||
|
||||
**Release details:**
|
||||
|
||||
- Package size: 414 KB (423,573 bytes)
|
||||
- Git tag: v1.1.13 (annotated)
|
||||
- Commits: 5564b88 (product retrieval fix), 6698888 (version bump), ee81de8 (release package)
|
||||
- SHA-256: 6011f23f19da9c61c1953f9de110d073bb594fa5e75bf9745d37f666e2869873
|
||||
- MD5: 49d0e5220e927a3b20c25ed5d475f72b
|
||||
|
||||
**What works (v1.1.13):**
|
||||
|
||||
Everything from v1.1.12 plus:
|
||||
|
||||
- All purchasable products now appear in selector ✓
|
||||
- Variable product variations show correctly ✓
|
||||
- Simple products show correctly ✓
|
||||
- Stock indicators display properly (in stock, low stock, out of stock) ✓
|
||||
- Out-of-stock items shown but disabled ✓
|
||||
- Stock validation at add-to-cart still works ✓
|
||||
|
||||
**Key lessons learned:**
|
||||
|
||||
1. **Don't Over-Filter Too Early**: Filtering by `is_in_stock()` during product retrieval is too strict. Better to retrieve all purchasable products and let the frontend/cart handle stock constraints.
|
||||
|
||||
2. **Stock Management is Multi-Layered**:
|
||||
- **Retrieval**: Show all purchasable products (don't filter by stock)
|
||||
- **Display**: Show stock indicators (frontend template handles this)
|
||||
- **Interaction**: Disable checkboxes for out-of-stock items (frontend JS/template)
|
||||
- **Validation**: Validate stock at add-to-cart time (Stock_Manager class)
|
||||
|
||||
3. **WooCommerce Stock States**:
|
||||
- `is_purchasable()` = Can this product be bought? (considers product status, price, etc.)
|
||||
- `is_in_stock()` = Is this product in stock? (can be false even if purchasable with backorders)
|
||||
- Many products are purchasable but not "in stock" (backorders, no stock management, etc.)
|
||||
|
||||
4. **Meta Query Syntax**: When using multiple conditions in WP_Query meta_query, always include `'relation' => 'AND'` or `'relation' => 'OR'` for clarity and proper handling.
|
||||
|
||||
5. **Debug by Elimination**:
|
||||
- v1.1.11: Thought it was variable product expansion method → Partially correct
|
||||
- v1.1.12: Thought it was variation ID retrieval → Fixed that issue
|
||||
- v1.1.13: Realized it was stock filtering → Found the real culprit!
|
||||
|
||||
6. **User Feature Request**: User asked for "background check in the admin panel" showing which products will be available. This is a good future enhancement for debugging configuration issues.
|
||||
|
||||
**Remaining issues:**
|
||||
|
||||
User hasn't confirmed if v1.1.13 works yet. If products still don't show, next steps would be:
|
||||
|
||||
1. Add admin preview feature showing matched products
|
||||
2. Debug the actual WP_Query being executed
|
||||
3. Check if categories/tags/SKUs are being saved correctly
|
||||
4. Verify tax_query construction is correct
|
||||
5. Test with actual product data from the user's store
|
||||
|
||||
**Status:** v1.1.13 released and deployed, awaiting user confirmation
|
||||
|
||||
---
|
||||
|
||||
**For AI Assistants:**
|
||||
|
||||
When starting a new session on this project:
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marco Graetsch",
|
||||
"email": "marco@example.com"
|
||||
"email": "magdev3.0@gmail.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
|
||||
@@ -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',
|
||||
@@ -122,6 +123,11 @@ class Product_Type extends \WC_Product {
|
||||
],
|
||||
];
|
||||
|
||||
// Debug logging
|
||||
if (defined('WP_DEBUG') && WP_DEBUG) {
|
||||
error_log('Composable Product Criteria: ' . print_r($criteria, true));
|
||||
}
|
||||
|
||||
switch ($criteria['type']) {
|
||||
case 'category':
|
||||
if (!empty($criteria['categories'])) {
|
||||
@@ -157,9 +163,19 @@ class Product_Type extends \WC_Product {
|
||||
break;
|
||||
}
|
||||
|
||||
// Debug logging
|
||||
if (defined('WP_DEBUG') && WP_DEBUG) {
|
||||
error_log('Composable Product Query Args: ' . print_r($args, true));
|
||||
}
|
||||
|
||||
$query = new \WP_Query($args);
|
||||
$products = [];
|
||||
|
||||
// Debug logging
|
||||
if (defined('WP_DEBUG') && WP_DEBUG) {
|
||||
error_log('Composable Product Query Found: ' . $query->found_posts . ' posts');
|
||||
}
|
||||
|
||||
if ($query->have_posts()) {
|
||||
foreach ($query->posts as $post) {
|
||||
$product = wc_get_product($post->ID);
|
||||
@@ -172,20 +188,34 @@ class Product_Type extends \WC_Product {
|
||||
if ($product->is_type('variable')) {
|
||||
// Get variation IDs directly from the product
|
||||
$variation_ids = $product->get_children();
|
||||
if (defined('WP_DEBUG') && WP_DEBUG) {
|
||||
error_log('Variable product ' . $product->get_id() . ' has ' . count($variation_ids) . ' variations');
|
||||
}
|
||||
foreach ($variation_ids as $variation_id) {
|
||||
$variation = wc_get_product($variation_id);
|
||||
if ($variation && $variation->is_in_stock() && $variation->is_purchasable()) {
|
||||
if ($variation && $variation->is_purchasable()) {
|
||||
$products[] = $variation;
|
||||
if (defined('WP_DEBUG') && WP_DEBUG) {
|
||||
error_log('Added variation ' . $variation_id . ' - ' . $variation->get_name());
|
||||
}
|
||||
}
|
||||
}
|
||||
} elseif ($product->is_in_stock() && $product->is_purchasable()) {
|
||||
} elseif ($product->is_purchasable()) {
|
||||
// Simple and other product types
|
||||
$products[] = $product;
|
||||
if (defined('WP_DEBUG') && WP_DEBUG) {
|
||||
error_log('Added simple product ' . $product->get_id() . ' - ' . $product->get_name());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wp_reset_postdata();
|
||||
|
||||
if (defined('WP_DEBUG') && WP_DEBUG) {
|
||||
error_log('Total products available: ' . count($products));
|
||||
}
|
||||
|
||||
return $products;
|
||||
}
|
||||
|
||||
|
||||
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
|
||||
BIN
releases/wc-composable-product-v1.1.13.zip
Normal file
BIN
releases/wc-composable-product-v1.1.13.zip
Normal file
Binary file not shown.
1
releases/wc-composable-product-v1.1.13.zip.md5
Normal file
1
releases/wc-composable-product-v1.1.13.zip.md5
Normal file
@@ -0,0 +1 @@
|
||||
49d0e5220e927a3b20c25ed5d475f72b wc-composable-product-v1.1.13.zip
|
||||
1
releases/wc-composable-product-v1.1.13.zip.sha256
Normal file
1
releases/wc-composable-product-v1.1.13.zip.sha256
Normal file
@@ -0,0 +1 @@
|
||||
6011f23f19da9c61c1953f9de110d073bb594fa5e75bf9745d37f666e2869873 wc-composable-product-v1.1.13.zip
|
||||
BIN
releases/wc-composable-product-v1.1.14.zip
Normal file
BIN
releases/wc-composable-product-v1.1.14.zip
Normal file
Binary file not shown.
1
releases/wc-composable-product-v1.1.14.zip.md5
Normal file
1
releases/wc-composable-product-v1.1.14.zip.md5
Normal file
@@ -0,0 +1 @@
|
||||
7b8bbd9c1e0a5db59f89ae677f095430 wc-composable-product-v1.1.14.zip
|
||||
1
releases/wc-composable-product-v1.1.14.zip.sha256
Normal file
1
releases/wc-composable-product-v1.1.14.zip.sha256
Normal file
@@ -0,0 +1 @@
|
||||
7c943fc5a85d5a48125aaf9f2e42434b370c4fa168ca33cd1e3485deb55302a5 wc-composable-product-v1.1.14.zip
|
||||
@@ -1,11 +1,12 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Plugin Name: WooCommerce Composable Products
|
||||
* Plugin URI: https://github.com/magdev/wc-composable-product
|
||||
* Plugin URI: https://src.bundespruefstelle.ch/magdev/wc-composable-product
|
||||
* Description: Create composable products where customers select a limited number of items from a configurable set
|
||||
* Version: 1.1.12
|
||||
* Version: 1.1.14
|
||||
* Author: Marco Graetsch
|
||||
* Author URI: https://example.com
|
||||
* Author URI: https://src.bundespruefstelle.ch/magdev
|
||||
* License: GPL v3 or later
|
||||
* License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
||||
* Text Domain: wc-composable-product
|
||||
@@ -19,7 +20,7 @@
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
// Define plugin constants
|
||||
define('WC_COMPOSABLE_PRODUCT_VERSION', '1.1.12');
|
||||
define('WC_COMPOSABLE_PRODUCT_VERSION', '1.1.14');
|
||||
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