Automattic\WooCommerce\Internal\Fulfillments

OrderFulfillmentsRestController::get_tracking_number_detailspublicWC 1.0

Get the tracking number details for a given tracking number, if possible.

Method of the class: OrderFulfillmentsRestController{}

Returns

WP_REST_Response. The tracking number details, or an error if the request fails.

Usage

$OrderFulfillmentsRestController = new OrderFulfillmentsRestController();
$OrderFulfillmentsRestController->get_tracking_number_details( $request );
$request(WP_REST_Request) (required)
The request object.

OrderFulfillmentsRestController::get_tracking_number_details() code WC 10.3.3

public function get_tracking_number_details( WP_REST_Request $request ) {
	$order_id        = (int) $request->get_param( 'order_id' );
	$tracking_number = sanitize_text_field( $request->get_param( 'tracking_number' ) );

	if ( empty( $tracking_number ) ) {
		return $this->prepare_error_response(
			'woocommerce_rest_tracking_number_missing',
			__( 'Tracking number is required.', 'woocommerce' ),
			array( 'status' => WP_Http::BAD_REQUEST )
		);
	}

	if ( ! $order_id ) {
		return $this->prepare_error_response(
			'woocommerce_rest_order_id_missing',
			__( 'Order ID is required.', 'woocommerce' ),
			array( 'status' => WP_Http::BAD_REQUEST )
		);
	}

	$order = wc_get_order( $order_id );
	if ( ! $order || ! $order instanceof WC_Order ) {
		return $this->prepare_error_response(
			'woocommerce_rest_order_invalid_id',
			__( 'Invalid order ID.', 'woocommerce' ),
			array( 'status' => WP_Http::NOT_FOUND )
		);
	}

	/**
	 * Parse the tracking number with additional parameters.
	 *
	 * @since 10.1.0
	 */
	$tracking_number_parse_result = apply_filters(
		'woocommerce_fulfillment_parse_tracking_number',
		$tracking_number,
		WC()->countries->get_base_country(),
		$order->get_shipping_country(),
	);

	return new WP_REST_Response( $tracking_number_parse_result, WP_Http::OK );
}