Files
wc-tier-and-package-prices/releases/RELEASE-INFO-1.1.3.md
magdev 88e30d028c Release version 1.1.4 - WooCommerce Blocks support and improved styling
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>
2025-12-21 19:33:34 +01:00

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_quantity filter 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-id attribute for targeted CSS
  • Added wc-tpp-restricted-qty CSS 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:

  1. Filter priority was too low (10), allowing other plugins to override
  2. Mini-cart used different filter hook (woocommerce_widget_cart_item_quantity)
  3. Some themes/plugins had DOM structures that prevented proper hiding
  4. No fallback mechanism for edge cases

Solution:

  1. Increased filter priority to 999 to ensure execution after other plugins
  2. Added separate filter for mini-cart quantity display
  3. Implemented dynamic CSS injection as fallback for all edge cases
  4. Used data attributes for product-specific CSS targeting
  5. 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_quantity filter support for mini-cart
  • add_cart_quantity_css() method for dynamic CSS injection
  • data-product-id attribute to quantity spans for targeted CSS selectors
  • CSS class wc-tpp-restricted-qty for 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_head action as fallback
  • Used both sibling (+) and general sibling (~) CSS selectors for DOM variations

Installation

New Installation

  1. Download the ZIP file: wc-tier-and-package-prices-1.1.3.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.2

This is a critical bug fix release for users experiencing cart quantity visibility issues.

Steps:

  1. Deactivate version 1.1.2
  2. Upload and activate version 1.1.3
  3. All existing settings and data will be automatically preserved
  4. Cart quantity inputs will now be properly hidden for restricted products
  5. 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:

  1. Deactivate the current version
  2. Upload and activate version 1.1.3
  3. All existing settings and data will be automatically preserved
  4. 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.3
  • composer.json - Version updated to 1.1.3
  • CHANGELOG.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.3
  • languages/wc-tier-package-prices-en_US.po - Version updated to 1.1.3
  • languages/wc-tier-package-prices-de_DE.po - Version updated to 1.1.3
  • languages/wc-tier-package-prices-de_CH_informal.po - Version updated to 1.1.3
  • 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 - 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

  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 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

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.