/** * Returns all available subscription schemes (product-level and cart-level). * * @return array */ public static function get_subscription_schemes($cart_item, $scope = 'all') { $schemes = array(); if (WCS_ATT_Cart::is_convertible_to_sub($cart_item)) { // Get product-level subscription schemes stored in product meta if (in_array($scope, array('all', 'cart-item'))) { $product_id = $cart_item['product_id']; $product_schemes = get_post_meta($product_id, '_wcsatt_schemes', true); if ($product_schemes) { foreach ($product_schemes as $scheme) { $scheme['scope'] = 'cart-item'; $schemes[] = $scheme; } } } // Get cart-level subscription schemes stored in WC settings // Added only if there are no product-level schemes present if (in_array($scope, array('all', 'cart'))) { $wcs_prefix = WC_Subscriptions_Admin::$option_prefix; $cart_level_subs_active = get_option($wcs_prefix . '_enable_cart_subscriptions', 'no'); if ($cart_level_subs_active === 'yes') { $cart_level_schemes = get_option($wcs_prefix . '_subscribe_to_cart_schemes', array()); if (!empty($cart_level_schemes)) { foreach ($cart_level_schemes as $scheme) { $scheme['scope'] = 'cart'; $schemes[] = $scheme; } } } } } return apply_filters('wcsatt_subscription_schemes', $schemes, $cart_item, $scope); }