2017-07-06 65 views
0

有什么方法可以将购物车中特定产品的数量乘以?假设我在购物车中有多个产品,其中一个产品的数量为“3”,我想用[5]乘以[3 * 5]的数量并将数量字段更新为“15”。Woocommerce乘以购物车中特定产品的数量

我想这样做只有一个特定产品在购物车,而不是所有。

回答

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

我想要更改CART页面上的Quantity on Only页面以供唯一的特定产品使用? – user3814097

+0

@jose:我测试了'$ woocommerce-> cart-> set_quantity(product_id,product_quantity * 5);'但是每次乘以前一个值的数量而不是购物车输入的值,所以我没有发布我的答案。 –

+0

@RaunakGupta在我之前的回答中看到我的编辑。我使用JavaScript实时更改购物车表中的输入。也许这是一个更合适的方法。你怎么看? –

相关问题