WC_Checkout::create_order_line_items( WC_Order $order, WC_Cart $cart )
Add line items to the order.
Description Description
Parameters Parameters
- $order
-
(Required) Order instance.
- $cart
-
(Required) Cart instance.
Source Source
File: includes/class-wc-checkout.php
public function create_order_line_items( &$order, $cart ) { foreach ( $cart->get_cart() as $cart_item_key => $values ) { /** * Filter hook to get initial item object. * * @since 3.1.0 */ $item = apply_filters( 'woocommerce_checkout_create_order_line_item_object', new WC_Order_Item_Product(), $cart_item_key, $values, $order ); $product = $values['data']; $item->legacy_values = $values; // @deprecated For legacy actions. $item->legacy_cart_item_key = $cart_item_key; // @deprecated For legacy actions. $item->set_props( array( 'quantity' => $values['quantity'], 'variation' => $values['variation'], 'subtotal' => $values['line_subtotal'], 'total' => $values['line_total'], 'subtotal_tax' => $values['line_subtotal_tax'], 'total_tax' => $values['line_tax'], 'taxes' => $values['line_tax_data'], ) ); if ( $product ) { $item->set_props( array( 'name' => $product->get_name(), 'tax_class' => $product->get_tax_class(), 'product_id' => $product->is_type( 'variation' ) ? $product->get_parent_id() : $product->get_id(), 'variation_id' => $product->is_type( 'variation' ) ? $product->get_id() : 0, ) ); } $item->set_backorder_meta(); /** * Action hook to adjust item before save. * * @since 3.0.0 */ do_action( 'woocommerce_checkout_create_order_line_item', $item, $cart_item_key, $values, $order ); // Add item to order and save. $order->add_item( $item ); } }