Automattic\WooCommerce\StoreApi\Routes\V1

CartUpdateItem::get_route_post_responseprotectedWC 1.0

Handle the request and return a valid response for this endpoint. .

Method of the class: CartUpdateItem{}

Returns

\WP_REST_Response.

Usage

// protected - for code of main (parent) or child class
$result = $this->get_route_post_response( $request );
$request(WP_REST_Request) (required)
Request object.

CartUpdateItem::get_route_post_response() code WC 11.0.1

protected function get_route_post_response( \WP_REST_Request $request ) {
	$cart = $this->cart_controller->get_cart_instance();

	if ( isset( $request['quantity'] ) ) {
		$cart_item    = $cart->get_cart_item( $request['key'] );
		$old_quantity = wc_stock_amount( $cart_item['quantity'] ?? 0 );
		$new_quantity = wc_stock_amount( $request['quantity'] );
		$this->cart_controller->set_cart_item_quantity( $request['key'], $new_quantity );

		if ( $old_quantity !== $new_quantity ) {
			/**
			 * Fires when a cart item quantity is updated from a user request.
			 *
			 * @param string    $cart_item_key Cart item key.
			 * @param int|float $quantity      New quantity.
			 * @param int|float $old_quantity  Old quantity.
			 * @param \WC_Cart  $cart          Cart object.
			 *
			 * @since 10.6.0
			 */
			do_action( 'internal_woocommerce_cart_item_updated_from_user_request', $request['key'], $new_quantity, $old_quantity, $cart );
		}
	}

	return rest_ensure_response( $this->schema->get_item_response( $cart ) );
}