Automattic\WooCommerce\StoreApi\Utilities

OrderController::update_line_items_from_cart()protectedWC 1.0

Create order line items.

Method of the class: OrderController{}

No Hooks.

Return

null. Nothing (null).

Usage

// protected - for code of main (parent) or child class
$result = $this->update_line_items_from_cart( $order );
$order(\WC_Order) (required)
The order object to update.

OrderController::update_line_items_from_cart() code WC 9.3.3

protected function update_line_items_from_cart( \WC_Order $order ) {
	$cart_controller = new CartController();
	$cart            = $cart_controller->get_cart_instance();
	$cart_hashes     = $cart_controller->get_cart_hashes();

	if ( $order->get_cart_hash() !== $cart_hashes['line_items'] ) {
		$order->set_cart_hash( $cart_hashes['line_items'] );
		$order->remove_order_items( 'line_item' );
		wc()->checkout->create_order_line_items( $order, $cart );
	}

	if ( $order->get_meta_data( '_shipping_hash' ) !== $cart_hashes['shipping'] ) {
		$order->update_meta_data( '_shipping_hash', $cart_hashes['shipping'] );
		$order->remove_order_items( 'shipping' );
		wc()->checkout->create_order_shipping_lines( $order, wc()->session->get( 'chosen_shipping_methods' ), wc()->shipping()->get_packages() );
	}

	if ( $order->get_meta_data( '_coupons_hash' ) !== $cart_hashes['coupons'] ) {
		$order->remove_order_items( 'coupon' );
		$order->update_meta_data( '_coupons_hash', $cart_hashes['coupons'] );
		wc()->checkout->create_order_coupon_lines( $order, $cart );
	}

	if ( $order->get_meta_data( '_fees_hash' ) !== $cart_hashes['fees'] ) {
		$order->update_meta_data( '_fees_hash', $cart_hashes['fees'] );
		$order->remove_order_items( 'fee' );
		wc()->checkout->create_order_fee_lines( $order, $cart );
	}

	if ( $order->get_meta_data( '_taxes_hash' ) !== $cart_hashes['taxes'] ) {
		$order->update_meta_data( '_taxes_hash', $cart_hashes['taxes'] );
		$order->remove_order_items( 'tax' );
		wc()->checkout->create_order_tax_lines( $order, $cart );
	}
}