Added comprehensive WooCommerce Blocks support for quantity restrictions and improved "View Options" button styling to match standard WooCommerce Add to Cart buttons. Features: - WooCommerce Blocks cart/mini-cart quantity restriction support - Store API integration for block-based carts - Improved "View Options" button styling with WooCommerce standards - Enhanced hover effects and transitions Technical Changes: - Added woocommerce_store_api_product_quantity_editable filter - Added block_quantity_editable() method in WC_TPP_Cart class - Enhanced CSS for .wc-block-components-quantity-selector targeting - Updated button styling: padding (0.618em × 1em), font-weight (700) - Added transition effects for smooth hover states Fixed: - WooCommerce blocks cart quantity selector now properly hidden - WooCommerce blocks mini-cart quantity selector visibility - "View Options" button now matches Add to Cart button appearance Updated Files: - includes/class-wc-tpp-cart.php (WooCommerce Blocks support) - assets/css/frontend.css (enhanced button styling) - wc-tier-and-package-prices.php (version 1.1.4) - composer.json (version 1.1.4) - CHANGELOG.md (v1.1.4 section) - All translation files (.pot, .po, .mo) updated to version 1.1.4 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
12 KiB
WooCommerce Tier and Package Prices - Release 1.1.3
Release Date: December 21, 2025 Version: 1.1.3 Package Size: 394 KB Git Tag: v1.1.3
Download
File: wc-tier-and-package-prices-1.1.3.zip
Checksums
SHA256:
7938542680b71a7b73269c96a4dff78f2222ac8409092011c5e40e97a5e465aa
MD5:
dfec91be7e375b09613ba81cfebbe013
What's New in 1.1.3
This is a bug fix release that resolves cart quantity input visibility issues for products with package quantity restrictions.
Bug Fixes
- Cart Quantity Input Visibility - FIXED
- Cart quantity inputs now properly hidden with increased filter priority (999)
- Mini-cart/sidebar quantity inputs correctly replaced with read-only text
- Added fallback CSS injection to handle theme/plugin conflicts
- Enhanced DOM targeting with data attributes and multiple CSS selectors
Technical Enhancements
- Increased filter priority from 10 to 999 for
woocommerce_cart_item_quantity - Added
woocommerce_widget_cart_item_quantityfilter for mini-cart support - Added
add_cart_quantity_css()method for dynamic CSS injection - Added
maybe_hide_mini_cart_quantity_input()method in WC_TPP_Cart class - Enhanced quantity spans with
data-product-idattribute for targeted CSS - Added
wc-tpp-restricted-qtyCSS class for improved targeting - Implemented both sibling (+) and general sibling (~) CSS selectors for various DOM structures
Problem Solved
Issue: In version 1.1.1 and 1.1.2, cart quantity inputs were still visible in the main cart and mini-cart/sidebar for products with package quantity restrictions, despite the feature being implemented.
Root Cause:
- Filter priority was too low (10), allowing other plugins to override
- Mini-cart used different filter hook (
woocommerce_widget_cart_item_quantity) - Some themes/plugins had DOM structures that prevented proper hiding
- No fallback mechanism for edge cases
Solution:
- Increased filter priority to 999 to ensure execution after other plugins
- Added separate filter for mini-cart quantity display
- Implemented dynamic CSS injection as fallback for all edge cases
- Used data attributes for product-specific CSS targeting
- Applied multiple CSS selectors (sibling + general sibling) to handle DOM variations
What's Changed
Fixed
- Cart quantity input visibility issue in cart and cart sidebar for restricted products
- Enhanced filter priority (999) to ensure quantity hiding runs after other plugins
- Mini-cart quantity input now properly hidden for restricted products
Added
woocommerce_widget_cart_item_quantityfilter support for mini-cartadd_cart_quantity_css()method for dynamic CSS injectiondata-product-idattribute to quantity spans for targeted CSS selectors- CSS class
wc-tpp-restricted-qtyfor improved targeting
Technical
- Increased filter priority from 10 to 999 for
woocommerce_cart_item_quantity - Added
maybe_hide_mini_cart_quantity_input()method in WC_TPP_Cart class - Dynamic CSS injection via
wp_headaction as fallback - Used both sibling (+) and general sibling (~) CSS selectors for DOM variations
Installation
New Installation
- Download the ZIP file:
wc-tier-and-package-prices-1.1.3.zip - Log in to your WordPress admin panel
- Navigate to Plugins > Add New > Upload Plugin
- Choose the downloaded ZIP file
- Click Install Now
- After installation, click Activate Plugin
- Go to WooCommerce > Settings > Tier & Package Prices to configure
Upgrade from 1.1.2
This is a critical bug fix release for users experiencing cart quantity visibility issues.
Steps:
- Deactivate version 1.1.2
- Upload and activate version 1.1.3
- All existing settings and data will be automatically preserved
- Cart quantity inputs will now be properly hidden for restricted products
- No additional configuration required
Upgrade from 1.1.1 or Earlier
Safe to upgrade directly. This version includes all features from v1.1.0, v1.1.1, and v1.1.2 plus the cart quantity visibility fix.
Steps:
- Deactivate the current version
- Upload and activate version 1.1.3
- All existing settings and data will be automatically preserved
- Cart quantity restriction feature now works correctly across all touchpoints
Requirements
- WordPress: 6.0 or higher
- PHP: 7.4 or higher
- WooCommerce: 8.0 or higher
Complete Package Restriction Feature (v1.1.0 + v1.1.1 + v1.1.2 + v1.1.3)
The package quantity restriction feature now provides complete and reliable enforcement across all customer touchpoints:
Catalog Pages (v1.1.2)
- ✅ "View Options" button instead of "Add to Cart" for restricted products
- ✅ Eye icon for visual distinction
- ✅ Direct link to product page
- ✅ Prevents invalid add-to-cart attempts from shop/category pages
Product Page (v1.1.0)
- ✅ Quantity field automatically hidden when restriction enabled
- ✅ "Choose a package size below" notice displayed
- ✅ Visual package selection with highlighted states
- ✅ JavaScript validation prevents form submission without package selection
Add to Cart Validation (v1.1.0)
- ✅ Server-side validation on add-to-cart
- ✅ User-friendly error messages showing available package sizes
- ✅ Prevents manual quantity manipulation via form fields
Cart Page (v1.1.1 + v1.1.3 - FIXED)
- ✅ Quantity field hidden/replaced with read-only text
- ✅ Prevents cart quantity modification
- ✅ Consistent restriction enforcement
- ✅ No bypass via cart updates
- ✅ Works with all themes and plugins (high priority filters + CSS fallback)
- ✅ Mini-cart/sidebar properly handled
Settings
- ✅ Global setting to enable restrictions site-wide
- ✅ Per-product override for individual products
- ✅ Located in: WooCommerce > Settings > Tier & Package Prices
Technical Implementation Details
Cart Quantity Hiding Strategy (v1.1.3)
The implementation uses a multi-layered approach to ensure reliability:
Layer 1: Filter Replacement
// High priority (999) to run after other plugins
add_filter('woocommerce_cart_item_quantity', 'maybe_hide_cart_quantity_input', 999, 3);
add_filter('woocommerce_widget_cart_item_quantity', 'maybe_hide_mini_cart_quantity_input', 999, 3);
Layer 2: HTML Replacement Replace quantity input with read-only span:
sprintf('<span class="wc-tpp-cart-quantity wc-tpp-restricted-qty" data-product-id="%d">%s</span>',
$product_id,
$cart_item['quantity']
);
Layer 3: CSS Fallback Dynamic CSS injection for edge cases:
.cart_item .wc-tpp-restricted-qty[data-product-id="123"] + .quantity,
.cart_item .wc-tpp-restricted-qty[data-product-id="123"] ~ .quantity {
display: none !important;
}
This three-layer approach ensures cart quantity inputs are hidden regardless of theme, plugin conflicts, or DOM structure variations.
Modified Files in 1.1.3
Core Files Updated
wc-tier-and-package-prices.php- Version updated to 1.1.3composer.json- Version updated to 1.1.3CHANGELOG.md- Added v1.1.3 section
PHP Classes Modified
includes/class-wc-tpp-cart.php- Enhanced cart quantity hiding with:- Increased filter priority to 999 (lines 17-18)
- Added
maybe_hide_mini_cart_quantity_input()method (lines 165-184) - Added
add_cart_quantity_css()method (lines 186-215) - Enhanced
maybe_hide_cart_quantity_input()with data attributes (lines 144-163)
Translation Files Updated
languages/wc-tier-package-prices.pot- Version updated to 1.1.3languages/wc-tier-package-prices-en_US.po- Version updated to 1.1.3languages/wc-tier-package-prices-de_DE.po- Version updated to 1.1.3languages/wc-tier-package-prices-de_CH_informal.po- Version updated to 1.1.3- All
.mofiles recompiled
Complete Feature Set
Tier Pricing
- ✅ Quantity-based discount tiers
- ✅ Automatic price calculation
- ✅ Volume discount display
Package Pricing
- ✅ Fixed-price bundles
- ✅ Custom package labels
- ✅ Multiple package options per product
- ✅ Quantity restriction to packages only (v1.1.0)
- ✅ Cart quantity enforcement (v1.1.1 + v1.1.3 - FIXED)
- ✅ Catalog button modification (v1.1.2)
Admin Features
- ✅ WooCommerce Settings integration
- ✅ Easy-to-use product meta boxes
- ✅ Configurable display positions
- ✅ Native WooCommerce UI
- ✅ Global restriction setting
- ✅ Per-product restriction override
Frontend Features
- ✅ Beautiful pricing tables (Twig templates)
- ✅ Real-time cart updates
- ✅ Responsive design
- ✅ 3 languages supported
- ✅ Package-only selection mode
- ✅ Automatic quantity field hiding (product page & cart)
- ✅ Visual package selection
- ✅ Read-only cart quantity display (FIXED in v1.1.3)
- ✅ Catalog "View Options" button
Validation & Security
- ✅ Client-side JavaScript validation
- ✅ Server-side cart validation
- ✅ Cart quantity bypass prevention (FIXED in v1.1.3)
- ✅ Catalog add-to-cart prevention
- ✅ User-friendly error messages
- ✅ WooCommerce HPOS compatible
- ✅ Theme/plugin conflict resistant (v1.1.3)
Breaking Changes
None. This release is fully backward compatible with v1.1.2, v1.1.1, v1.1.0 and v1.0.x.
Migration Notes
From 1.1.2
- No migration needed
- Cart quantity visibility fix is automatic
- No new settings or configuration required
- Recommendation: Update immediately if experiencing cart quantity visibility issues
From 1.1.1
- All v1.1.2 and v1.1.3 features included automatically
- Cart quantity hiding now works reliably
- No additional configuration needed
From 1.1.0 or Earlier
- All v1.1.1, v1.1.2, and v1.1.3 features included automatically
- Restriction features remain disabled by default
- Must be explicitly enabled in settings
Settings Location
All settings remain in: WooCommerce > Settings > Tier & Package Prices
Data Preservation
- All existing tier pricing data preserved
- All existing package pricing data preserved
- All product meta data preserved
- No database changes required
Known Limitations
Current Version
- Restriction only works when packages are defined
- Cannot restrict to tier quantities (only packages)
- Restriction applies to entire product (no variation-level control)
- Cart quantity is read-only text (not a dropdown of package options)
- "View Options" button uses standard WooCommerce button styling
Future Enhancements
These features may be added in future versions:
- Customizable "View Options" button text
- Cart package quantity dropdown selector
- Variation-level restriction control
- Restrict to tier quantities option
- Minimum/maximum package selection limits
Changelog Summary
Version History
- v1.1.3 (2025-12-21) - Cart quantity visibility bug fix
- v1.1.2 (2025-12-21) - Catalog button modification
- v1.1.1 (2025-12-21) - Cart quantity bypass fix
- v1.1.0 (2025-12-21) - Package quantity restriction feature
- v1.0.2 (2025-12-21) - WooCommerce Settings integration
- v1.0.1 (2025-12-21) - Twig template engine integration
- v1.0.0 (2025-12-21) - Initial release
User Impact
Before v1.1.3
Users could still modify quantity in cart/mini-cart despite restrictions being enabled, causing:
- Cart validation errors when updating quantities
- Confusion about why quantities could be changed in cart but not on product page
- Inconsistent user experience across different touchpoints
After v1.1.3
- Quantity inputs consistently hidden/disabled across all cart views
- Clear read-only quantity display
- No cart update errors
- Consistent user experience
- Works reliably with all themes and plugins
Support
- Documentation: See README.md and CHANGELOG.md
- Previous Release: See RELEASE-INFO-1.1.2.md
- Issues: https://src.bundespruefstelle.ch/wc-tier-package-prices/issues
- Author: Marco Graetsch
License
GPL v2 or later - https://www.gnu.org/licenses/gpl-2.0.html
Production Ready: This package includes optimized autoloader and no development dependencies.
Critical Update: Version 1.1.3 is a critical bug fix for users experiencing cart quantity visibility issues with restricted products. Update recommended for all users using package quantity restrictions.