Code Duplication    Length = 22-31 lines in 2 locations

includes/api/class-wc-rest-orders-controller.php 1 location

@@ 957-978 (lines=22) @@
954
				'coupon'    => 'coupon_lines',
955
			);
956
957
			foreach ( $lines as $line_type => $line ) {
958
				if ( isset( $request[ $line ] ) && is_array( $request[ $line ] ) ) {
959
					$update_totals = true;
960
					foreach ( $request[ $line ] as $item ) {
961
						// Item ID is always required.
962
						if ( ! array_key_exists( 'id', $item ) ) {
963
							throw new WC_REST_Exception( 'woocommerce_rest_invalid_item_id', __( 'Order item ID is required.', 'woocommerce' ), 400 );
964
						}
965
966
						// Create item.
967
						if ( is_null( $item['id'] ) ) {
968
							$this->set_item( $order, $line_type, $item, 'create' );
969
						} elseif ( $this->item_is_null( $item ) ) {
970
							// Delete item.
971
							wc_delete_order_item( $item['id'] );
972
						} else {
973
							// Update item.
974
							$this->set_item( $order, $line_type, $item, 'update' );
975
						}
976
					}
977
				}
978
			}
979
980
			// Set payment method.
981
			if ( ! empty( $request['payment_method'] ) ) {

includes/cli/class-wc-cli-order.php 1 location

@@ 466-496 (lines=31) @@
463
				'coupon'    => 'coupon_lines',
464
			);
465
466
			foreach ( $lines as $line_type => $line ) {
467
468
				if ( isset( $data[ $line ] ) && is_array( $data[ $line ] ) ) {
469
470
					$update_totals = true;
471
472
					foreach ( $data[ $line ] as $item ) {
473
474
						// item ID is always required
475
						if ( ! array_key_exists( 'id', $item ) ) {
476
							throw new WC_CLI_Exception( 'woocommerce_invalid_item_id', __( 'Order item ID is required', 'woocommerce' ) );
477
						}
478
479
						// create item
480
						if ( is_null( $item['id'] ) ) {
481
482
							$this->set_item( $order, $line_type, $item, 'create' );
483
484
						} elseif ( $this->item_is_null( $item ) ) {
485
486
							// delete item
487
							wc_delete_order_item( $item['id'] );
488
489
						} else {
490
491
							// update item
492
							$this->set_item( $order, $line_type, $item, 'update' );
493
						}
494
					}
495
				}
496
			}
497
498
			// payment method (and payment_complete() if `paid` == true and order needs payment)
499
			if ( isset( $data['payment_details'] ) && is_array( $data['payment_details'] ) ) {