Files
woocommerce-subscriptions/includes/wcs-limit-functions.php
Prospress Inc 153a2cd7ed 2.1.0
2016-11-23 15:34:50 +01:00

48 lines
1.5 KiB
PHP

<?php
/**
* WooCommerce Subscriptions Limit Functions
*
* @author Prospress
* @category Core
* @package WooCommerce Subscriptions/Functions
* @version 2.1
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
/**
* Get the subscription's limit type.
*
* @param int|WC_Product $product A WC_Product object or the ID of a product
* @return string containing the limit type
*/
function wcs_get_product_limitation( $product ) {
if ( ! is_object( $product ) ) {
$product = wc_get_product( $product );
}
if ( ! isset( $product->product_custom_fields['_subscription_limit'][0] ) ) {
return 'no';
} elseif ( 'yes' == $product->product_custom_fields['_subscription_limit'][0] ) { // backward compatibility
return 'any';
} else {
return $product->product_custom_fields['_subscription_limit'][0];
}
}
/**
* Returns true if product is limited to one active subscription and user currently has this product on-hold.
*
* @param int|WC_Product $product A WC_Product object or the ID of a product
* @return boolean
*/
function wcs_is_product_limited_for_user( $product, $user_id = 0 ) {
if ( ! is_object( $product ) ) {
$product = wc_get_product( $product );
}
return ( ( 'active' == wcs_get_product_limitation( $product ) && wcs_user_has_subscription( $user_id, $product->id, 'on-hold' ) ) || ( 'no' !== wcs_get_product_limitation( $product ) && wcs_user_has_subscription( $user_id, $product->id, wcs_get_product_limitation( $product ) ) ) ) ? true : false;
}