Программно изменить количество товаров в WooCommerce без пересчета итогов в корзине

#php #wordpress #woocommerce #cart #product-quantity

#php #wordpress #woocommerce #Корзина #количество товара

Вопрос:

Мне нужно изменять количество товаров в WooCommerce всякий раз, когда заказ действительно отправляется (то есть либо после добавления в корзину, либо перед отправкой заказа). Мне удалось сделать это следующим образом:

 function change_cart_item_quantities ( $cart ) {

    $new_qty = 9; // Piece of code for new Qty calculation, dummy number for now

    // Checking cart items
    foreach( $cart->get_cart() as $cart_item_key => $cart_item ) {
        $product_id = $cart_item['data']->get_id();
        $cart->set_quantity( $cart_item_key, $new_qty, false );
    }
}
  

set_quantity() Метод должен делать именно то, что мне нужно, а третий параметр является логическим значением, которое определяет, следует ли обновлять итоговые данные в корзине после изменения количества. Это работает хорошо, количество каждого товара после добавления в корзину равно ‘9’, но итоговые данные в корзине обновляются.

Есть ли способ решить эту проблему? Я что-то упускаю?