Automattic\WooCommerce\StoreApi\Utilities

QuantityLimits::normalize_cart_item_quantitypublicWC 1.0

Fix a quantity violation by adjusting it to the nearest valid quantity.

Метод класса: QuantityLimits{}

Хуков нет.

Возвращает

int|float.

Использование

$QuantityLimits = new QuantityLimits();
$QuantityLimits->normalize_cart_item_quantity( $quantity, $cart_item );
$quantity(int|float) (обязательный)
Quantity.
$cart_item(массив) (обязательный)
Cart item.

Код QuantityLimits::normalize_cart_item_quantity() WC 10.5.0

public function normalize_cart_item_quantity( $quantity, array $cart_item ) {
	$product = $cart_item['data'] ?? false;

	if ( ! $product instanceof \WC_Product ) {
		return wc_stock_amount( $quantity );
	}

	$quantity = NumberUtil::normalize( $quantity );

	if ( 0 >= $quantity ) {
		return wc_stock_amount( 0 );
	}

	$limits       = $this->get_cart_item_quantity_limits( $cart_item );
	$new_quantity = $this->limit_to_multiple( $quantity, $limits['multiple_of'], 'round' );

	if ( $new_quantity < $limits['minimum'] ) {
		$new_quantity = $limits['minimum'];
	}

	if ( $new_quantity > $limits['maximum'] ) {
		$new_quantity = $limits['maximum'];
	}

	return wc_stock_amount( $new_quantity );
}