Woocommerce乘以购物车中特定产品的数量
问题描述:
有什么方法可以将购物车中特定产品的数量乘以?假设我在购物车中有多个产品,其中一个产品的数量为“3”,我想用[5]乘以[3 * 5]的数量并将数量字段更新为“15”。Woocommerce乘以购物车中特定产品的数量
我想这样做只有一个特定产品在购物车,而不是所有。
答
这取决于你想在何时何地改变它。
我能想到的两种不同的方法:
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>
我想要更改CART页面上的Quantity on Only页面以供唯一的特定产品使用? – user3814097
@jose:我测试了'$ woocommerce-> cart-> set_quantity(product_id,product_quantity * 5);'但是每次乘以前一个值的数量而不是购物车输入的值,所以我没有发布我的答案。 –
@RaunakGupta在我之前的回答中看到我的编辑。我使用JavaScript实时更改购物车表中的输入。也许这是一个更合适的方法。你怎么看? –