Automattic\WooCommerce\StoreApi\Routes\V1

ProductsById::get_route_responseprotectedWC 1.0

Get a single item.

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

Хуков нет.

Возвращает

\WP_REST_Response.

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

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

Код ProductsById::get_route_response() WC 11.0.1

protected function get_route_response( \WP_REST_Request $request ) {
	$object = wc_get_product( (int) $request['id'] );

	if ( ! $object || 0 === $object->get_id() || ProductStatus::PUBLISH !== $object->get_status() ) {
		throw new RouteException( 'woocommerce_rest_product_invalid_id', __( 'Invalid product ID.', 'woocommerce' ), 404 );
	}

	// A variation's visibility follows its parent product.
	if ( $object->get_parent_id() ) {
		$parent = wc_get_product( $object->get_parent_id() );

		if ( ! $parent || ProductStatus::PUBLISH !== $parent->get_status() ) {
			throw new RouteException( 'woocommerce_rest_product_invalid_id', __( 'Invalid product ID.', 'woocommerce' ), 404 ); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- REST API JSON response, not HTML.
		}
	}

	return $this->prepare_item_for_response( $object, $request );
}