[英]Woocommerce multiply the quantity of a specific product in cart
有什么辦法可以增加購物車中特定產品的數量?
假設我的購物車中有多個產品,其中一個產品的數量為“ 3”,我想將數量乘以“ 5”,所以[3 * 5]並將數量字段更新為“ 15”。
我只想為購物車中的一種特定產品而不是全部都這樣做。
這取決於您要在何時何地進行更改。
我可以想到兩種不同的方法:
PHP:
$woocommerce->cart->set_quantity( product_id , product_quantity );
JS + AJAX:
您可以在這里找到可行的解決方案,只需嘗試使其適應您的需求即可:
編輯:
我已經編寫了一個簡單的jQuery示例。 當用戶在購物車數量輸入中輸入數量時,您可以實時執行此操作。 用戶輸入任何數量,當他/她單擊外部或離開輸入焦點時,數量將自動更改(x5)。
為了使用此功能,您必須在Wordpress中編輯購物車模板。 我強烈建議使用兒童主題並遵循Woocommerce模板最佳實踐 。
$("#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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.