Automattic\WooCommerce\Admin

PluginsHelper::has_active_usable_product_subscriptionprivate staticWC 1.0

Check whether the current store has an active usable subscription for a product.

Method of the class: PluginsHelper{}

No Hooks.

Returns

true|false.

Usage

$result = PluginsHelper::has_active_usable_product_subscription( $product_id, $subscriptions ): bool;
$product_id(int) (required)
Product id.
$subscriptions(array) (required)
Subscription list data.

PluginsHelper::has_active_usable_product_subscription() code WC 10.7.0

private static function has_active_usable_product_subscription( int $product_id, array $subscriptions ): bool {
	$auth    = \WC_Helper_Options::get( 'auth' );
	$site_id = isset( $auth['site_id'] ) ? absint( $auth['site_id'] ) : 0;

	if ( 0 === $site_id ) {
		return false;
	}

	foreach ( $subscriptions as $subscription ) {
		if ( absint( $subscription['product_id'] ?? 0 ) !== $product_id ) {
			continue;
		}

		$connections = isset( $subscription['connections'] ) && is_array( $subscription['connections'] ) ? $subscription['connections'] : array();
		if ( ! in_array( $site_id, $connections, true ) ) {
			continue;
		}

		if ( empty( $subscription['expired'] ) || ! empty( $subscription['lifetime'] ) ) {
			return true;
		}
	}

	return false;
}