WC_REST_Orders_V1_Controller::update_order()protectedWC 1.0

Update order.

Метод класса: WC_REST_Orders_V1_Controller{}

Хуков нет.

Возвращает

int|WP_Error.

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->update_order( $request );
$request(WP_REST_Request) (обязательный)
Full details about the request.

Код WC_REST_Orders_V1_Controller::update_order() WC 8.7.0

protected function update_order( $request ) {
	try {
		$order = $this->prepare_item_for_database( $request );
		$order->save();

		// Handle set paid.
		if ( $order->needs_payment() && true === $request['set_paid'] ) {
			$order->payment_complete( $request['transaction_id'] );
		}

		// If items have changed, recalculate order totals.
		if ( isset( $request['billing'] ) || isset( $request['shipping'] ) || isset( $request['line_items'] ) || isset( $request['shipping_lines'] ) || isset( $request['fee_lines'] ) || isset( $request['coupon_lines'] ) ) {
			$order->calculate_totals( true );
		}

		return $order->get_id();
	} catch ( WC_Data_Exception $e ) {
		return new WP_Error( $e->getErrorCode(), $e->getMessage(), $e->getErrorData() );
	} catch ( WC_REST_Exception $e ) {
		return new WP_Error( $e->getErrorCode(), $e->getMessage(), array( 'status' => $e->getCode() ) );
	}
}