@@ 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'] ) ) { |
@@ 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'] ) ) { |