WC_Checkout::create_order_coupon_lines()publicWC 1.0

Add coupon lines to the order.

Method of the class: WC_Checkout{}

Return

null. Nothing.

Usage

$WC_Checkout = new WC_Checkout();
$WC_Checkout->create_order_coupon_lines( $order, $cart );
$order(WC_Order) (required) (passed by reference — &)
Order instance.
$cart(WC_Cart) (required)
Cart instance.

WC_Checkout::create_order_coupon_lines() code WC 7.7.0

public function create_order_coupon_lines( &$order, $cart ) {
	foreach ( $cart->get_coupons() as $code => $coupon ) {
		$item = new WC_Order_Item_Coupon();
		$item->set_props(
			array(
				'code'         => $code,
				'discount'     => $cart->get_coupon_discount_amount( $code ),
				'discount_tax' => $cart->get_coupon_discount_tax_amount( $code ),
			)
		);

		// Avoid storing used_by - it's not needed and can get large.
		$coupon_data = $coupon->get_data();
		unset( $coupon_data['used_by'] );
		$item->add_meta_data( 'coupon_data', $coupon_data );

		/**
		 * Action hook to adjust item before save.
		 *
		 * @since 3.0.0
		 */
		do_action( 'woocommerce_checkout_create_order_coupon_item', $item, $code, $coupon, $order );

		// Add item to order and save.
		$order->add_item( $item );
	}
}