Automattic\WooCommerce\StoreApi\Utilities

QuantityLimits::validate_cart_item_quantity()publicWC 1.0

Check that a given quantity is valid according to any limits in place.

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

Хуков нет.

Возвращает

\WP_Error|true.

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

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

Код QuantityLimits::validate_cart_item_quantity() WC 9.5.1

public function validate_cart_item_quantity( $quantity, $cart_item ) {
	$limits  = $this->get_cart_item_quantity_limits( $cart_item );
	$product = $cart_item['data'] ?? false;

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

	if ( ! $limits['editable'] ) {
		/* translators: 1: product name */
		return new \WP_Error( 'readonly_quantity', sprintf( __( 'The quantity of "%1$s" cannot be changed', 'woocommerce' ), $product->get_name() ) );
	}

	if ( $quantity < $limits['minimum'] ) {
		/* translators: 1: product name 2: minimum quantity */
		return new \WP_Error( 'invalid_quantity', sprintf( __( 'The minimum quantity of &quot;%1$s&quot; allowed in the cart is %2$s', 'woocommerce' ), $product->get_name(), $limits['minimum'] ) );
	}

	if ( $quantity > $limits['maximum'] ) {
		/* translators: 1: product name 2: maximum quantity */
		return new \WP_Error( 'invalid_quantity', sprintf( __( 'The maximum quantity of &quot;%1$s&quot; allowed in the cart is %2$s', 'woocommerce' ), $product->get_name(), $limits['maximum'] ) );
	}

	if ( $quantity % $limits['multiple_of'] ) {
		/* translators: 1: product name 2: multiple of */
		return new \WP_Error( 'invalid_quantity', sprintf( __( 'The quantity of &quot;%1$s&quot; must be a multiple of %2$s', 'woocommerce' ), $product->get_name(), $limits['multiple_of'] ) );
	}

	return true;
}