You've already forked wc-tier-and-package-prices
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>
This commit is contained in:
@@ -17,6 +17,9 @@ class WC_TPP_Cart {
|
||||
add_filter('woocommerce_cart_item_quantity', array($this, 'maybe_hide_cart_quantity_input'), 999, 3);
|
||||
add_filter('woocommerce_widget_cart_item_quantity', array($this, 'maybe_hide_mini_cart_quantity_input'), 999, 3);
|
||||
add_action('wp_head', array($this, 'add_cart_quantity_css'));
|
||||
|
||||
// WooCommerce Blocks support
|
||||
add_filter('woocommerce_store_api_product_quantity_editable', array($this, 'block_quantity_editable'), 10, 2);
|
||||
}
|
||||
|
||||
public function apply_tier_package_pricing($cart) {
|
||||
@@ -204,15 +207,45 @@ class WC_TPP_Cart {
|
||||
if (!empty($restricted_products)) {
|
||||
echo '<style type="text/css">';
|
||||
foreach ($restricted_products as $product_id) {
|
||||
// Hide quantity inputs for restricted products in cart
|
||||
// Hide quantity inputs for restricted products in cart (classic cart)
|
||||
echo '.cart_item .wc-tpp-restricted-qty[data-product-id="' . esc_attr($product_id) . '"] + .quantity,';
|
||||
echo '.cart_item .wc-tpp-restricted-qty[data-product-id="' . esc_attr($product_id) . '"] ~ .quantity,';
|
||||
echo '.woocommerce-mini-cart-item .wc-tpp-restricted-qty[data-product-id="' . esc_attr($product_id) . '"] + .quantity,';
|
||||
echo '.woocommerce-mini-cart-item .wc-tpp-restricted-qty[data-product-id="' . esc_attr($product_id) . '"] ~ .quantity { display: none !important; }';
|
||||
|
||||
// Hide WooCommerce blocks quantity selector for restricted products
|
||||
echo '.wc-block-cart-item[data-product-id="' . esc_attr($product_id) . '"] .wc-block-components-quantity-selector,';
|
||||
echo '.wc-block-mini-cart__items .wc-block-cart-item[data-product-id="' . esc_attr($product_id) . '"] .wc-block-components-quantity-selector { display: none !important; }';
|
||||
}
|
||||
echo '</style>';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Make quantity non-editable for restricted products in WooCommerce blocks
|
||||
*
|
||||
* @param bool $editable Whether the quantity is editable
|
||||
* @param array $cart_item Cart item data
|
||||
* @return bool
|
||||
*/
|
||||
public function block_quantity_editable($editable, $cart_item) {
|
||||
$product_id = $cart_item['id'] ?? ($cart_item['product_id'] ?? 0);
|
||||
|
||||
if (!$product_id) {
|
||||
return $editable;
|
||||
}
|
||||
|
||||
$global_restrict = get_option('wc_tpp_restrict_package_quantities', 'no') === 'yes';
|
||||
$product_restrict = get_post_meta($product_id, '_wc_tpp_restrict_to_packages', true) === 'yes';
|
||||
$packages = get_post_meta($product_id, '_wc_tpp_packages', true);
|
||||
|
||||
// If restriction is enabled and packages exist, make quantity non-editable
|
||||
if (($global_restrict || $product_restrict) && !empty($packages)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $editable;
|
||||
}
|
||||
}
|
||||
|
||||
new WC_TPP_Cart();
|
||||
|
||||
Reference in New Issue
Block a user