Manual set order tests
This commit is contained in:
parent
1c8dd6acbb
commit
09ef2195be
|
@ -430,6 +430,7 @@ class WC_REST_Orders_Controller extends WC_REST_Legacy_Orders_Controller {
|
|||
case 'line_items' :
|
||||
case 'shipping_lines' :
|
||||
case 'fee_lines' :
|
||||
case 'coupon_lines' :
|
||||
if ( is_array( $value ) ) {
|
||||
foreach ( $value as $item ) {
|
||||
if ( is_array( $item ) ) {
|
||||
|
@ -442,28 +443,6 @@ class WC_REST_Orders_Controller extends WC_REST_Legacy_Orders_Controller {
|
|||
}
|
||||
}
|
||||
break;
|
||||
case 'coupon_lines' :
|
||||
if ( is_array( $value ) ) {
|
||||
foreach ( $value as $item ) {
|
||||
if ( is_array( $item ) ) {
|
||||
if ( $this->item_is_null( $item ) ) {
|
||||
$item = $order->get_item( $item['id'] );
|
||||
if ( $item && method_exists( $item, 'get_code' ) ) {
|
||||
$order->remove_coupon( $item->get_code() );
|
||||
} else {
|
||||
$order->remove_item( $item['id'] );
|
||||
}
|
||||
} else {
|
||||
if ( ! empty( $item['code'] ) ) {
|
||||
$order->apply_coupon( $item['code'] );
|
||||
} else {
|
||||
$this->set_item( $order, $key, $item );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'meta_data' :
|
||||
if ( is_array( $value ) ) {
|
||||
foreach ( $value as $meta ) {
|
||||
|
|
|
@ -333,15 +333,15 @@ class WC_Tests_API_Orders extends WC_REST_Unit_Test_Case {
|
|||
/**
|
||||
* Tests updating an order and adding a coupon.
|
||||
*
|
||||
* @since 3.0.0
|
||||
* @since 3.3.0
|
||||
*/
|
||||
public function test_update_order_add_coupons() {
|
||||
wp_set_current_user( $this->user );
|
||||
$order = WC_Helper_Order::create_order();
|
||||
$order_item = current( $order->get_items() );
|
||||
$coupon = WC_Helper_Coupon::create_coupon( 'fake-coupon' );
|
||||
$coupon->set_amount( 5 );
|
||||
$coupon->save();
|
||||
|
||||
$request = new WP_REST_Request( 'PUT', '/wc/v2/orders/' . $order->get_id() );
|
||||
$request->set_body_params( array(
|
||||
'coupon_lines' => array(
|
||||
|
@ -351,6 +351,13 @@ class WC_Tests_API_Orders extends WC_REST_Unit_Test_Case {
|
|||
'discount_tax' => '0',
|
||||
),
|
||||
),
|
||||
'line_items' => array(
|
||||
array(
|
||||
'id' => $order_item->get_id(),
|
||||
'product_id' => $order_item->get_product_id(),
|
||||
'total' => '35.00',
|
||||
),
|
||||
),
|
||||
) );
|
||||
$response = $this->server->dispatch( $request );
|
||||
$data = $response->get_data();
|
||||
|
@ -365,11 +372,12 @@ class WC_Tests_API_Orders extends WC_REST_Unit_Test_Case {
|
|||
/**
|
||||
* Tests updating an order and removing a coupon.
|
||||
*
|
||||
* @since 3.0.0
|
||||
* @since 3.3.0
|
||||
*/
|
||||
public function test_update_order_remove_coupons() {
|
||||
wp_set_current_user( $this->user );
|
||||
$order = WC_Helper_Order::create_order();
|
||||
$order_item = current( $order->get_items() );
|
||||
$coupon = WC_Helper_Coupon::create_coupon( 'fake-coupon' );
|
||||
$coupon->set_amount( 5 );
|
||||
$coupon->save();
|
||||
|
@ -390,6 +398,13 @@ class WC_Tests_API_Orders extends WC_REST_Unit_Test_Case {
|
|||
'code' => null,
|
||||
),
|
||||
),
|
||||
'line_items' => array(
|
||||
array(
|
||||
'id' => $order_item->get_id(),
|
||||
'product_id' => $order_item->get_product_id(),
|
||||
'total' => '40.00',
|
||||
),
|
||||
),
|
||||
) );
|
||||
$response = $this->server->dispatch( $request );
|
||||
$data = $response->get_data();
|
||||
|
|
Loading…
Reference in New Issue