Как ограничить количество элементов корзины WooCommerce одним для указанного c элемента - PullRequest
1 голос
/ 09 июля 2020

В моем пользовательском шаблоне Woocommerce я хочу ограничить количество продукта до 1.

Я работаю с Пустая корзина при загрузке страницы, позволяющая добавлять в корзину в WooCommerce ответ на мой предыдущий вопрос.

Вот что у меня:

 <?php 
$current_product_id = 5; // The product ID 
$cart               = WC()->cart; // The WC_Cart Object
       $quantity = $cart_item['quantity'];//the quantity
// When cart is not empty 
if ( ! $cart->is_empty() ) {
    // Loop through cart items
    foreach( $cart->get_cart() as $cart_item_key => $cart_item ) {
        // If the cart item is not the current defined product ID
        if( $current_product_id != $cart_item['product_id'] ) {
            $cart->remove_cart_item( $cart_item_key ); // remove it from cart
        }
}
 if( $quantity >=1) {
    $cart->remove_cart_item( $cart_item_key ); // remove it from cart
 } }}
?>

Это вроде как работает. Но я хочу оформить заказ на той же странице, и с этим кодом проверка не обновляется при добавлении продукта в корзину.

1 Ответ

2 голосов
/ 09 июля 2020

Чтобы ограничить количество до 1, вы будете использовать метод WC_cart set_quantity() следующим образом:

<?php 
$current_product_id = 5; // The product ID 
$cart               = WC()->cart; // The WC_Cart Object

// When cart is not empty 
if ( ! $cart->is_empty() ) {
    // Loop through cart items
    foreach( $cart->get_cart() as $cart_item_key => $cart_item ) {
        // If the cart item is not the current defined product ID
        if( $current_product_id != $cart_item['product_id'] ) {
            $cart->remove_cart_item( $cart_item_key ); // remove it from cart
        } 
        // If the cart item is the current defined product ID and quantity is more than 1
        elseif( $cart_item['quantity'] > 1 ) {
            $cart->set_quantity( $cart_item_key, 1 ); // Set the quantity to 1
        }
    }
}
?>

Он должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...