Automattic\WooCommerce\Admin
PluginsHelper::has_active_usable_product_subscription
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() 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;
}