有没有办法增加购物车中特定产品的数量?
假设我在购物车中有多个产品,其中一个产品有数量" 3",我想将数量乘以" 5"所以[3 * 5]并将数量字段更新为" 15"。
我想在购物车中只为一个特定产品而不是为所有产品做这件事。
答案 0 :(得分:1)
取决于您希望何时何地更改它。
我可以想到两种不同的方法:
PHP:
$woocommerce->cart->set_quantity( product_id , product_quantity );
JS + AJAX:
您可以在此处找到有效的解决方案,只需尝试根据您的需求进行调整:
WooCommerce - change QTY triggers AJAX call in cart
编辑:
我编写了一个简单的jQuery示例。您可以在用户输入购物车金额输入中的数量时实时执行此操作。用户输入任何数量,当他/她在外面点击或离开输入焦点时,金额会自动更改(x5)。
要使用此功能,您必须在Wordpress中编辑购物车模板。我强烈建议您使用子主题并遵循Woocommerce template best practices。
$("#input-value").focusout(function() {
var value = parseFloat($(this).val());
$(this).val(value*5);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
Quantity: <input type="text" id="input-value" />
为了只针对特定产品,您可以在购物车模板中使用一些PHP,将“乘法”类添加到数量容器中:
<?php if($_product->id == your_id) {
?>
<td class="product-quantity multiply" data-title="<?php _e( 'Quantity', 'woocommerce' ); ?>">
<?php
}else{
?>
<td class="product-quantity" data-title="<?php _e( 'Quantity', 'woocommerce' ); ?>">
<?php
}
?>
<?php
if ( $_product->is_sold_individually() ) {
$product_quantity = sprintf( '1 <input type="hidden" name="cart[%s][qty]" value="1" />', $cart_item_key );
} else {
$product_quantity = woocommerce_quantity_input( array(
'input_name' => "cart[{$cart_item_key}][qty]",
'input_value' => $cart_item['quantity'],
'max_value' => $_product->backorders_allowed() ? '' : $_product->get_stock_quantity(),
'min_value' => '0'
), $_product, false );
}
echo apply_filters( 'woocommerce_cart_item_quantity', $product_quantity, $cart_item_key, $cart_item );
?>
</td>