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.

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

Хуков нет.

Возвращает

bool.

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

$result = PluginsHelper::has_active_usable_product_subscription( $product_id, $subscriptions ): bool;
$product_id(int) (обязательный)
Product id.
$subscriptions(массив) (обязательный)
Subscription list data.

Код PluginsHelper::has_active_usable_product_subscription() WC 11.1.1

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;
}