2017-07-06 13 views
0

カート内の特定の製品の数量を掛ける方法はありますか?Woocommerceにカート内の特定の製品の数量を掛ける

カートに複数の商品があり、商品の1つに数量「3」があるとしたら、数量に「5」を掛けて[3 * 5]とし、数量フィールドを「15」に更新したいとします。

私はのために1つの特定の製品をカートに入れて、全部ではありません。

答えて

1

これは、変更する場所と時期によって異なります。

私は2つの異なるアプローチを考えることができます:

PHP:

$woocommerce->cart->set_quantity(product_id , product_quantity); 

JS + AJAX:

あなたは自分のニーズに適合するようにしようと、ここで働く解決策を見つけることができます。

WooCommerce - change QTY triggers AJAX call in cart

EDIT:

シンプルなjQueryの例をコーディングしました。ユーザーはカート量入力で量を入力している間にリアルタイムでこれを行うことができます。ユーザーは任意の数量を入力し、入力フォーカスの外側をクリックするか、または入力フォーカスを離れると、自動的に量が変更されます(x5)。

これを使用するには、Wordpressでカートテンプレートを編集する必要があります。子テーマを使用し、Woocommerce template best practicesに従うことを強くお勧めします。あなただけ特定の製品の数量の容器に「乗算」クラスを追加するには、あなたのカートにあるテンプレートの使用いくつかのPHPを目指すためには

$("#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 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

私は唯一の特定の製品のカートの数量ページを変更したいですか? – user3814097

+0

@jose:私は '$ woocommerce-> cart-> set_quantity(product_id、product_quantity * 5);をテストしましたが、カートに入力された値ではなく前の値からの量を乗算するたびに、私の答え。 –

+0

@RaunakGupta私の以前の答えで私の編集を参照してください。私はカートテーブルの入力をリアルタイムで変更するためにjavascriptを使用しました。これはより適切なアプローチかもしれません。どう思いますか? –

関連する問題