WC_Product_Usage::get_rules_for_product
Get product usage rule if it needs to be applied to the given product id.
Method of the class: WC_Product_Usage{}
No Hooks.
Returns
null. Nothing (null).
Usage
$result = WC_Product_Usage::get_rules_for_product( $product_id ): ?WC_Product_Usage_Rule_Set;
- $product_id(int) (required)
- product id to get feature restriction rules.
Changelog
| Since 9.3.0 | Introduced. |
WC_Product_Usage::get_rules_for_product() WC Product Usage::get rules for product code WC 10.7.0
public static function get_rules_for_product( int $product_id ): ?WC_Product_Usage_Rule_Set {
$rules = self::get_product_usage_restriction_rule( $product_id );
if ( null === $rules ) {
return null;
}
// When there is no subscription for the product, restrict usage.
if ( ! WC_Helper::has_product_subscription( $product_id ) ) {
return new WC_Product_Usage_Rule_Set( $rules );
}
$subscriptions = wp_list_filter( WC_Helper::get_installed_subscriptions(), array( 'product_id' => $product_id ) );
if ( empty( $subscriptions ) ) {
return new WC_Product_Usage_Rule_Set( $rules );
}
// Product should only have a single connected subscription on current store.
$product_subscription = current( $subscriptions );
if ( $product_subscription['expired'] ) {
return new WC_Product_Usage_Rule_Set( $rules );
}
return null;
}