Automattic\WooCommerce\Internal\Fulfillments

FulfillmentUtils::get_shipping_providers_objectpublic staticWC 1.0

Get the shipping providers as an array of JS objects, for use in the fulfillment UI.

Method of the class: FulfillmentUtils{}

No Hooks.

Returns

Array. An associative array of shipping providers with their details.

Usage

$result = FulfillmentUtils::get_shipping_providers_object(): array;

FulfillmentUtils::get_shipping_providers_object() code WC 10.3.3

public static function get_shipping_providers_object(): array {
	$shipping_providers = self::get_shipping_providers();
	if ( ! is_array( $shipping_providers ) ) {
		return array();
	}
	$shipping_providers_object = array();
	foreach ( $shipping_providers as $shipping_provider ) {
		if ( is_string( $shipping_provider )
		&& class_exists( $shipping_provider )
		&& is_subclass_of( $shipping_provider, AbstractShippingProvider::class )
		) {
			try {
				// Instantiate the shipping provider class.
				$shipping_provider_instance = wc_get_container()->get( $shipping_provider );
			} catch ( \Throwable $e ) {
				continue; // Skip if instantiation fails.
			}
			$shipping_providers_object[ $shipping_provider_instance->get_key() ] = array(
				'label' => $shipping_provider_instance->get_name(),
				'icon'  => $shipping_provider_instance->get_icon(),
				'value' => $shipping_provider_instance->get_key(),
			);
		}
		if ( is_object( $shipping_provider ) && $shipping_provider instanceof AbstractShippingProvider ) {
			$shipping_providers_object[ $shipping_provider->get_key() ] = array(
				'label' => $shipping_provider->get_name(),
				'icon'  => $shipping_provider->get_icon(),
				'value' => $shipping_provider->get_key(),
			);
		}
	}

	return $shipping_providers_object;
}