You've already forked wc-composable-product
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 58f5329bc4 | |||
| 0767016370 | |||
| fa7ec0e422 | |||
| f4d2543d4e | |||
| 9e4513f911 | |||
| 4dc7b767a8 | |||
| f763e35d19 |
61
CHANGELOG.md
61
CHANGELOG.md
@@ -5,6 +5,67 @@ 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.10] - 2025-12-31
|
||||
|
||||
### Fixed
|
||||
|
||||
- **CRITICAL**: Admin panel - Both General and Composable tabs visible simultaneously on initial page load
|
||||
- **CRITICAL**: Frontend - No products showing in product selector, only cart button and pricing visible
|
||||
- Empty product grid now shows helpful message instead of blank space
|
||||
|
||||
### Changed
|
||||
|
||||
- Added explicit `display: none` to `#composable_product_data` panel for proper initial hiding
|
||||
- Panel now only shows when `body.product-type-composable` class is present
|
||||
- Added empty state message in product selector template when no products are configured
|
||||
- Cleared Twig cache to ensure template changes take effect
|
||||
|
||||
### Added
|
||||
|
||||
- Empty state message: "No products available for selection. Please configure the product criteria in the admin panel."
|
||||
- Translations for empty state message in all 6 supported locales (de_DE, de_DE_informal, de_CH, de_CH_informal, fr_CH, it_CH)
|
||||
- Recompiled .mo translation files
|
||||
|
||||
### Technical
|
||||
|
||||
- Modified files: assets/css/admin.css (lines 7-16), templates/product-selector.twig (lines 12-15)
|
||||
- Root cause (admin): Panel lacked explicit CSS hiding rule, relied only on `hidden` class
|
||||
- Root cause (frontend): No feedback when products array is empty
|
||||
- Solution: CSS specificity + empty state conditional in Twig template
|
||||
|
||||
### Notes
|
||||
|
||||
- This release fixes two critical bugs discovered immediately after v1.1.9
|
||||
- Admin interface now correctly hides composable panel until product type is selected
|
||||
- Frontend provides clear user feedback when product selection is unavailable
|
||||
- All translation files now 100% complete (57/57 strings)
|
||||
|
||||
## [1.1.9] - 2025-12-31
|
||||
|
||||
### Fixed
|
||||
|
||||
- **CRITICAL**: Admin rendering completely broken - tabs disappeared and fields appeared out of context after v1.1.8 release
|
||||
- CSS selectors were too broad, hiding tab navigation along with field groups
|
||||
- Removed `!important` flags that caused overly aggressive hiding
|
||||
|
||||
### Changed
|
||||
|
||||
- Made CSS selectors more specific: `.options_group.show_if_composable` for field groups only
|
||||
- Added separate rule for tab links: `.product_data_tabs li.composable_options`
|
||||
- Tab navigation now works correctly without hiding itself
|
||||
|
||||
### Technical
|
||||
|
||||
- Modified files: assets/css/admin.css (lines 22-40)
|
||||
- Root cause: `.show_if_composable` class used by WooCommerce for both tab links AND field groups
|
||||
- Solution: Separate selectors for each use case to prevent unintended hiding
|
||||
|
||||
### Notes
|
||||
|
||||
- This release fixes critical regression introduced in v1.1.8
|
||||
- Admin interface now renders correctly with visible tabs and properly positioned fields
|
||||
- No `!important` flags needed with specific selectors
|
||||
|
||||
## [1.1.8] - 2025-12-31
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -4,10 +4,17 @@
|
||||
* @package WC_Composable_Product
|
||||
*/
|
||||
|
||||
/* Hide composable panel by default */
|
||||
#composable_product_data {
|
||||
display: none;
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
/* Show composable panel when composable type is selected */
|
||||
body.product-type-composable #composable_product_data {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.composable_criteria_group {
|
||||
border-top: 1px solid #eee;
|
||||
padding-top: 12px;
|
||||
@@ -19,29 +26,23 @@
|
||||
min-height: 150px;
|
||||
}
|
||||
|
||||
/* Hide composable-specific elements by default */
|
||||
.show_if_composable {
|
||||
display: none !important;
|
||||
/* Hide composable-specific elements by default (but not tabs) */
|
||||
.options_group.show_if_composable {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Show composable elements when composable product type is selected */
|
||||
body.product-type-composable .show_if_composable,
|
||||
.product-type-composable .show_if_composable {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
/* Ensure General tab fields don't show in Composable Options panel initially */
|
||||
#composable_product_data .options_group {
|
||||
body.product-type-composable .options_group.show_if_composable {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Hide the Composable Options tab link by default */
|
||||
.product_data_tabs .composable_options {
|
||||
.product_data_tabs li.composable_options {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Show the Composable Options tab when composable type selected */
|
||||
body.product-type-composable .product_data_tabs .composable_options {
|
||||
body.product-type-composable .product_data_tabs li.composable_options {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
@@ -238,3 +238,7 @@ msgstr "übrig"
|
||||
#: templates/product-selector.twig
|
||||
msgid "In stock"
|
||||
msgstr "An Lager"
|
||||
|
||||
#: templates/product-selector.twig
|
||||
msgid "No products available for selection. Please configure the product criteria in the admin panel."
|
||||
msgstr "Keine Produkte zur Auswahl verfügbar. Bitte konfigurieren Sie die Produktkriterien im Admin-Bereich."
|
||||
|
||||
Binary file not shown.
@@ -238,3 +238,7 @@ msgstr "übrig"
|
||||
#: templates/product-selector.twig
|
||||
msgid "In stock"
|
||||
msgstr "An Lager"
|
||||
|
||||
#: templates/product-selector.twig
|
||||
msgid "No products available for selection. Please configure the product criteria in the admin panel."
|
||||
msgstr "Keine Produkte zur Auswahl verfügbar. Bitte konfiguriere die Produktkriterien im Admin-Bereich."
|
||||
|
||||
Binary file not shown.
@@ -238,3 +238,7 @@ msgstr "übrig"
|
||||
#: templates/product-selector.twig
|
||||
msgid "In stock"
|
||||
msgstr "Auf Lager"
|
||||
|
||||
#: templates/product-selector.twig
|
||||
msgid "No products available for selection. Please configure the product criteria in the admin panel."
|
||||
msgstr "Keine Produkte zur Auswahl verfügbar. Bitte konfigurieren Sie die Produktkriterien im Admin-Bereich."
|
||||
|
||||
Binary file not shown.
@@ -238,3 +238,7 @@ msgstr "übrig"
|
||||
#: templates/product-selector.twig
|
||||
msgid "In stock"
|
||||
msgstr "Auf Lager"
|
||||
|
||||
#: templates/product-selector.twig
|
||||
msgid "No products available for selection. Please configure the product criteria in the admin panel."
|
||||
msgstr "Keine Produkte zur Auswahl verfügbar. Bitte konfiguriere die Produktkriterien im Admin-Bereich."
|
||||
|
||||
Binary file not shown.
@@ -238,3 +238,7 @@ msgstr "restant"
|
||||
#: templates/product-selector.twig
|
||||
msgid "In stock"
|
||||
msgstr "En stock"
|
||||
|
||||
#: templates/product-selector.twig
|
||||
msgid "No products available for selection. Please configure the product criteria in the admin panel."
|
||||
msgstr "Aucun produit disponible pour la sélection. Veuillez configurer les critères de produit dans le panneau d'administration."
|
||||
|
||||
Binary file not shown.
@@ -238,3 +238,7 @@ msgstr "rimasti"
|
||||
#: templates/product-selector.twig
|
||||
msgid "In stock"
|
||||
msgstr "Disponibile"
|
||||
|
||||
#: templates/product-selector.twig
|
||||
msgid "No products available for selection. Please configure the product criteria in the admin panel."
|
||||
msgstr "Nessun prodotto disponibile per la selezione. Si prega di configurare i criteri del prodotto nel pannello di amministrazione."
|
||||
|
||||
@@ -237,3 +237,7 @@ msgstr ""
|
||||
#: templates/product-selector.twig
|
||||
msgid "In stock"
|
||||
msgstr ""
|
||||
|
||||
#: templates/product-selector.twig
|
||||
msgid "No products available for selection. Please configure the product criteria in the admin panel."
|
||||
msgstr ""
|
||||
|
||||
BIN
releases/wc-composable-product-v1.1.8.zip
Normal file
BIN
releases/wc-composable-product-v1.1.8.zip
Normal file
Binary file not shown.
1
releases/wc-composable-product-v1.1.8.zip.md5
Normal file
1
releases/wc-composable-product-v1.1.8.zip.md5
Normal file
@@ -0,0 +1 @@
|
||||
78eee5eee4762c308c5d37d1aac06b04 wc-composable-product-v1.1.8.zip
|
||||
1
releases/wc-composable-product-v1.1.8.zip.sha256
Normal file
1
releases/wc-composable-product-v1.1.8.zip.sha256
Normal file
@@ -0,0 +1 @@
|
||||
d7d06e2a5d336609249f803b681cdf270dbe60d6fc28bdd6c451c6744d2fdab6 wc-composable-product-v1.1.8.zip
|
||||
BIN
releases/wc-composable-product-v1.1.9.zip
Normal file
BIN
releases/wc-composable-product-v1.1.9.zip
Normal file
Binary file not shown.
1
releases/wc-composable-product-v1.1.9.zip.md5
Normal file
1
releases/wc-composable-product-v1.1.9.zip.md5
Normal file
@@ -0,0 +1 @@
|
||||
a5b08f3613d1b1e8aba0c2b7b82a1582 wc-composable-product-v1.1.9.zip
|
||||
1
releases/wc-composable-product-v1.1.9.zip.sha256
Normal file
1
releases/wc-composable-product-v1.1.9.zip.sha256
Normal file
@@ -0,0 +1 @@
|
||||
f9fc497c0531c7ea828e164137f3db6e0a2755b899690dfb7d6411baf0c7a65a wc-composable-product-v1.1.9.zip
|
||||
@@ -9,6 +9,11 @@
|
||||
</div>
|
||||
|
||||
<div class="composable-products-grid">
|
||||
{% if products is empty %}
|
||||
<div class="composable-no-products">
|
||||
<p>{{ __('No products available for selection. Please configure the product criteria in the admin panel.') }}</p>
|
||||
</div>
|
||||
{% else %}
|
||||
{% for product in products %}
|
||||
<div class="composable-product-item{% if not product.in_stock %} out-of-stock{% endif %}" data-product-id="{{ product.id }}" data-price="{{ product.price }}" data-stock-status="{{ product.stock_status }}">
|
||||
<div class="product-item-inner">
|
||||
@@ -52,6 +57,7 @@
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if show_total %}
|
||||
|
||||
@@ -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.8
|
||||
* Version: 1.1.10
|
||||
* 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.8');
|
||||
define('WC_COMPOSABLE_PRODUCT_VERSION', '1.1.10');
|
||||
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