You've already forked wc-tier-and-package-prices
374 lines
13 KiB
Markdown
374 lines
13 KiB
Markdown
|
|
# WooCommerce Tier and Package Prices - Release 1.1.4
|
|||
|
|
|
|||
|
|
**Release Date:** December 21, 2025
|
|||
|
|
**Version:** 1.1.4
|
|||
|
|
**Package Size:** 394 KB
|
|||
|
|
**Git Tag:** v1.1.4
|
|||
|
|
|
|||
|
|
## Download
|
|||
|
|
|
|||
|
|
**File:** `wc-tier-and-package-prices-1.1.4.zip`
|
|||
|
|
|
|||
|
|
### Checksums
|
|||
|
|
|
|||
|
|
**SHA256:**
|
|||
|
|
```
|
|||
|
|
19553b2fed1c6ca20a8168eab8c570cb0302be801322cd41d86cec40b70ff162
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**MD5:**
|
|||
|
|
```
|
|||
|
|
3e5bc2cae17ecb81b729c3fdc979df23
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## What's New in 1.1.4
|
|||
|
|
|
|||
|
|
This is an **enhancement release** that adds comprehensive WooCommerce Blocks support and improves the "View Options" button styling to match standard WooCommerce buttons.
|
|||
|
|
|
|||
|
|
### New Features
|
|||
|
|
- **WooCommerce Blocks Support** - NEW
|
|||
|
|
- Full compatibility with block-based cart and mini-cart
|
|||
|
|
- Store API integration for quantity restrictions
|
|||
|
|
- Automatic quantity selector hiding in block contexts
|
|||
|
|
- Programmatic prevention of quantity editing via API
|
|||
|
|
|
|||
|
|
### Enhanced
|
|||
|
|
- **"View Options" Button Styling**
|
|||
|
|
- Updated to match standard WooCommerce "Add to Cart" buttons
|
|||
|
|
- Proper padding (0.618em × 1em) following WooCommerce conventions
|
|||
|
|
- Bold font weight (700) for consistency
|
|||
|
|
- Smooth hover transitions with opacity effects
|
|||
|
|
- Professional appearance across all themes
|
|||
|
|
|
|||
|
|
### Bug Fixes
|
|||
|
|
- WooCommerce blocks cart quantity selector now properly hidden for restricted products
|
|||
|
|
- WooCommerce blocks mini-cart quantity selector visibility fixed
|
|||
|
|
- Quantity editing prevented at Store API level for blocks
|
|||
|
|
|
|||
|
|
## What's Changed
|
|||
|
|
|
|||
|
|
### Added
|
|||
|
|
- WooCommerce Blocks support for quantity restrictions
|
|||
|
|
- `woocommerce_store_api_product_quantity_editable` filter for block-based carts
|
|||
|
|
- `block_quantity_editable()` method in WC_TPP_Cart class
|
|||
|
|
- CSS targeting for `.wc-block-components-quantity-selector` elements
|
|||
|
|
|
|||
|
|
### Enhanced
|
|||
|
|
- "View Options" button styling to match standard WooCommerce "Add to Cart" buttons
|
|||
|
|
- Button padding, font weight, and border radius for better visual consistency
|
|||
|
|
- Hover effects with smooth transitions (0.2s ease)
|
|||
|
|
|
|||
|
|
### Fixed
|
|||
|
|
- WooCommerce blocks cart quantity selector visibility for restricted products
|
|||
|
|
- WooCommerce blocks mini-cart quantity selector visibility
|
|||
|
|
|
|||
|
|
### Technical
|
|||
|
|
- Added Store API integration for block-based cart/mini-cart
|
|||
|
|
- Enhanced CSS for block cart items with product-specific selectors
|
|||
|
|
- Improved button styling with WooCommerce standard values (0.618em × 1em padding)
|
|||
|
|
- Added transition effects for better UX
|
|||
|
|
- Font weight: 700 (bold) for catalog buttons
|
|||
|
|
- Border radius: 3px for rounded corners
|
|||
|
|
|
|||
|
|
## Installation
|
|||
|
|
|
|||
|
|
### New Installation
|
|||
|
|
|
|||
|
|
1. Download the ZIP file: `wc-tier-and-package-prices-1.1.4.zip`
|
|||
|
|
2. Log in to your WordPress admin panel
|
|||
|
|
3. Navigate to **Plugins > Add New > Upload Plugin**
|
|||
|
|
4. Choose the downloaded ZIP file
|
|||
|
|
5. Click **Install Now**
|
|||
|
|
6. After installation, click **Activate Plugin**
|
|||
|
|
7. Go to **WooCommerce > Settings > Tier & Package Prices** to configure
|
|||
|
|
|
|||
|
|
### Upgrade from 1.1.3
|
|||
|
|
|
|||
|
|
This is an **enhancement release** with WooCommerce Blocks support and improved styling.
|
|||
|
|
|
|||
|
|
**Steps:**
|
|||
|
|
1. Deactivate version 1.1.3
|
|||
|
|
2. Upload and activate version 1.1.4
|
|||
|
|
3. All existing settings and data will be automatically preserved
|
|||
|
|
4. No additional configuration required
|
|||
|
|
5. WooCommerce Blocks cart/mini-cart now fully supported
|
|||
|
|
|
|||
|
|
### Upgrade from 1.1.2 or Earlier
|
|||
|
|
|
|||
|
|
Safe to upgrade directly. This version includes all features from v1.1.0, v1.1.1, v1.1.2, and v1.1.3 plus WooCommerce Blocks support.
|
|||
|
|
|
|||
|
|
**Steps:**
|
|||
|
|
1. Deactivate the current version
|
|||
|
|
2. Upload and activate version 1.1.4
|
|||
|
|
3. All existing settings and data will be automatically preserved
|
|||
|
|
4. Enjoy improved compatibility with modern WooCommerce features
|
|||
|
|
|
|||
|
|
### Requirements
|
|||
|
|
|
|||
|
|
- **WordPress:** 6.0 or higher
|
|||
|
|
- **PHP:** 7.4 or higher
|
|||
|
|
- **WooCommerce:** 8.0 or higher
|
|||
|
|
|
|||
|
|
## Complete Package Restriction Feature
|
|||
|
|
|
|||
|
|
The package quantity restriction feature now provides complete and reliable enforcement across ALL customer touchpoints, including modern WooCommerce Blocks:
|
|||
|
|
|
|||
|
|
### Catalog Pages (v1.1.2 + v1.1.4 Enhanced)
|
|||
|
|
- ✅ "View Options" button instead of "Add to Cart" for restricted products
|
|||
|
|
- ✅ Professional styling matching WooCommerce standards
|
|||
|
|
- ✅ Eye icon for visual distinction
|
|||
|
|
- ✅ Direct link to product page
|
|||
|
|
- ✅ Smooth hover effects
|
|||
|
|
- ✅ 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
|
|||
|
|
|
|||
|
|
### Classic Cart & Mini-Cart (v1.1.1 + v1.1.3)
|
|||
|
|
- ✅ 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)
|
|||
|
|
|
|||
|
|
### WooCommerce Blocks Cart & Mini-Cart (v1.1.4 - NEW)
|
|||
|
|
- ✅ Store API integration prevents quantity editing
|
|||
|
|
- ✅ `.wc-block-components-quantity-selector` hidden via CSS
|
|||
|
|
- ✅ Product-specific targeting with data attributes
|
|||
|
|
- ✅ Full compatibility with block-based cart blocks
|
|||
|
|
- ✅ Full compatibility with block-based mini-cart blocks
|
|||
|
|
|
|||
|
|
### Settings
|
|||
|
|
- ✅ Global setting to enable restrictions site-wide
|
|||
|
|
- ✅ Per-product override for individual products
|
|||
|
|
- ✅ Located in: WooCommerce > Settings > Tier & Package Prices
|
|||
|
|
|
|||
|
|
## Technical Implementation Details
|
|||
|
|
|
|||
|
|
### WooCommerce Blocks Integration (v1.1.4)
|
|||
|
|
|
|||
|
|
The implementation uses a multi-layered approach for maximum compatibility:
|
|||
|
|
|
|||
|
|
**Layer 1: Store API Filter**
|
|||
|
|
```php
|
|||
|
|
add_filter('woocommerce_store_api_product_quantity_editable', 'block_quantity_editable', 10, 2);
|
|||
|
|
|
|||
|
|
public function block_quantity_editable($editable, $cart_item) {
|
|||
|
|
$product_id = $cart_item['id'] ?? ($cart_item['product_id'] ?? 0);
|
|||
|
|
// Check restrictions...
|
|||
|
|
return false; // Make non-editable for restricted products
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Layer 2: CSS Hiding**
|
|||
|
|
```css
|
|||
|
|
.wc-block-cart-item[data-product-id="123"] .wc-block-components-quantity-selector,
|
|||
|
|
.wc-block-mini-cart__items .wc-block-cart-item[data-product-id="123"] .wc-block-components-quantity-selector {
|
|||
|
|
display: none !important;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Layer 3: Enhanced Button Styling**
|
|||
|
|
```css
|
|||
|
|
a.wc-tpp-view-options {
|
|||
|
|
padding: 0.618em 1em; /* WooCommerce golden ratio */
|
|||
|
|
font-weight: 700;
|
|||
|
|
border-radius: 3px;
|
|||
|
|
transition: all 0.2s ease;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
This three-layer approach ensures compatibility with:
|
|||
|
|
- ✅ Classic WooCommerce templates
|
|||
|
|
- ✅ WooCommerce Blocks (Cart Block, Mini-Cart Block)
|
|||
|
|
- ✅ All themes (inherits theme button colors)
|
|||
|
|
- ✅ All cart/mini-cart variations
|
|||
|
|
|
|||
|
|
## Modified Files in 1.1.4
|
|||
|
|
|
|||
|
|
### Core Files Updated
|
|||
|
|
- `wc-tier-and-package-prices.php` - Version updated to 1.1.4
|
|||
|
|
- `composer.json` - Version updated to 1.1.4
|
|||
|
|
- `CHANGELOG.md` - Added v1.1.4 section
|
|||
|
|
|
|||
|
|
### PHP Classes Modified
|
|||
|
|
- `includes/class-wc-tpp-cart.php` - Added WooCommerce Blocks support:
|
|||
|
|
- Added `woocommerce_store_api_product_quantity_editable` filter (line 22)
|
|||
|
|
- Added `block_quantity_editable()` method (lines 224-248)
|
|||
|
|
- Enhanced `add_cart_quantity_css()` with block selectors (lines 216-218)
|
|||
|
|
|
|||
|
|
### CSS Files Modified
|
|||
|
|
- `assets/css/frontend.css` - Enhanced "View Options" button styling:
|
|||
|
|
- Added padding: 0.618em × 1em (line 168)
|
|||
|
|
- Added font-weight: 700 (line 167)
|
|||
|
|
- Added border-radius: 3px (line 170)
|
|||
|
|
- Added transition effects (line 172)
|
|||
|
|
- Added hover state (lines 186-189)
|
|||
|
|
|
|||
|
|
### Translation Files Updated
|
|||
|
|
- `languages/wc-tier-package-prices.pot` - Version updated to 1.1.4
|
|||
|
|
- `languages/wc-tier-package-prices-en_US.po` - Version updated to 1.1.4
|
|||
|
|
- `languages/wc-tier-package-prices-de_DE.po` - Version updated to 1.1.4
|
|||
|
|
- `languages/wc-tier-package-prices-de_CH_informal.po` - Version updated to 1.1.4
|
|||
|
|
- All `.mo` files 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)
|
|||
|
|
- ✅ Catalog button modification (v1.1.2 + v1.1.4 enhanced)
|
|||
|
|
- ✅ WooCommerce Blocks support (v1.1.4 - NEW)
|
|||
|
|
|
|||
|
|
### 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
|
|||
|
|
- ✅ Professional "View Options" button (v1.1.4 enhanced)
|
|||
|
|
- ✅ WooCommerce Blocks compatibility (v1.1.4 - NEW)
|
|||
|
|
|
|||
|
|
### Validation & Security
|
|||
|
|
- ✅ Client-side JavaScript validation
|
|||
|
|
- ✅ Server-side cart validation
|
|||
|
|
- ✅ Cart quantity bypass prevention
|
|||
|
|
- ✅ Catalog add-to-cart prevention
|
|||
|
|
- ✅ Store API integration (v1.1.4 - NEW)
|
|||
|
|
- ✅ User-friendly error messages
|
|||
|
|
- ✅ WooCommerce HPOS compatible
|
|||
|
|
- ✅ Theme/plugin conflict resistant
|
|||
|
|
- ✅ WooCommerce Blocks compatible (v1.1.4 - NEW)
|
|||
|
|
|
|||
|
|
## Breaking Changes
|
|||
|
|
|
|||
|
|
**None.** This release is fully backward compatible with v1.1.3, v1.1.2, v1.1.1, v1.1.0 and v1.0.x.
|
|||
|
|
|
|||
|
|
## Migration Notes
|
|||
|
|
|
|||
|
|
### From 1.1.3
|
|||
|
|
- No migration needed
|
|||
|
|
- WooCommerce Blocks support is automatic
|
|||
|
|
- Button styling improvements are automatic
|
|||
|
|
- No new settings or configuration required
|
|||
|
|
|
|||
|
|
### From 1.1.2 or Earlier
|
|||
|
|
- All v1.1.3 and v1.1.4 features included automatically
|
|||
|
|
- Restriction features remain as configured
|
|||
|
|
- WooCommerce Blocks now fully supported
|
|||
|
|
|
|||
|
|
### From 1.1.0 or Earlier
|
|||
|
|
- All v1.1.1, v1.1.2, v1.1.3, and v1.1.4 features included
|
|||
|
|
- Restriction features 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
|
|||
|
|
1. Restriction only works when packages are defined
|
|||
|
|
2. Cannot restrict to tier quantities (only packages)
|
|||
|
|
3. Restriction applies to entire product (no variation-level control)
|
|||
|
|
4. Cart quantity is read-only text (not a dropdown of package options)
|
|||
|
|
5. "View Options" button inherits theme colors (not customizable separately)
|
|||
|
|
|
|||
|
|
### Future Enhancements
|
|||
|
|
These features may be added in future versions:
|
|||
|
|
- Customizable "View Options" button text and colors
|
|||
|
|
- 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.4** (2025-12-21) - WooCommerce Blocks support + improved button styling
|
|||
|
|
- **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.4
|
|||
|
|
- WooCommerce Blocks cart/mini-cart showed quantity selectors for restricted products
|
|||
|
|
- "View Options" button had basic styling, didn't match Add to Cart buttons well
|
|||
|
|
- Potential confusion in stores using block-based cart
|
|||
|
|
|
|||
|
|
### After v1.1.4
|
|||
|
|
- WooCommerce Blocks fully supported with quantity restrictions
|
|||
|
|
- "View Options" button professionally styled to match WooCommerce standards
|
|||
|
|
- Consistent user experience across classic and block-based carts
|
|||
|
|
- Store API prevents programmatic quantity changes
|
|||
|
|
- Visual consistency across all WooCommerce contexts
|
|||
|
|
|
|||
|
|
## Browser & Theme Compatibility
|
|||
|
|
|
|||
|
|
### Tested With
|
|||
|
|
- ✅ Classic WooCommerce cart templates
|
|||
|
|
- ✅ WooCommerce Cart Block
|
|||
|
|
- ✅ WooCommerce Mini-Cart Block
|
|||
|
|
- ✅ Storefront theme
|
|||
|
|
- ✅ Twenty Twenty-Four theme
|
|||
|
|
- ✅ Astra theme
|
|||
|
|
- ✅ Kadence theme
|
|||
|
|
|
|||
|
|
### CSS Inheritance
|
|||
|
|
The "View Options" button inherits colors from your theme's `.button` class, ensuring it matches your site's design while maintaining professional spacing and typography.
|
|||
|
|
|
|||
|
|
## Support
|
|||
|
|
|
|||
|
|
- **Documentation:** See README.md and CHANGELOG.md
|
|||
|
|
- **Previous Release:** See RELEASE-INFO-1.1.3.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.
|
|||
|
|
|
|||
|
|
**Recommended Update:** Version 1.1.4 is recommended for all users, especially those using WooCommerce Blocks for cart/mini-cart. The update provides full compatibility with modern WooCommerce features and improved visual consistency.
|