Your IP : 216.73.216.165


Current Path : /var/www/ooareogundevinitiative/wp-content/plugins/give/src/License/
Upload File :
Current File : /var/www/ooareogundevinitiative/wp-content/plugins/give/src/License/PremiumAddonsListManager.php

<?php
namespace Give\License;

/**
 * Class PremiumAddonManager
 * @package Give\License
 *
 * this class we use to manager premium addons list for licensing.
 *
 * @since 2.9.2
 */
class PremiumAddonsListManager {
	/**
	 * Products list api url.
	 *
	 * @since 2.9.2
	 */
	const PRODUCTS_LIST_API_URL = 'https://givewp.com/edd-api/products';


	/**
	 * Get premium addons slugs as addons ids.
	 *
	 * @since 2.9.2
	 * @return array
	 */
	private function getAddonsIds() {
		$optionName   = 'give_premium_addons_ids';
		$cachedResult = get_transient( $optionName );
		if ( $cachedResult ) {
			return  $cachedResult;
		}

		$response            = wp_remote_get( self::PRODUCTS_LIST_API_URL . '?number=-1' );
		$productsInformation = wp_remote_retrieve_body( $response );
		if ( ! $productsInformation ) {
			return [];
		}

		$productsInformation = json_decode( $productsInformation, true );
		$productsIds         = [];
		foreach ( $productsInformation['products'] as $product ) {
			$productsIds[] = $product['info']['slug'];
		}

		if ( $productsIds ) {
			set_transient( $optionName, $productsIds, DAY_IN_SECONDS );
		}

		return $productsIds;
	}

	/**
	 * Return whether or not addon is premium addon.
	 *
	 * @since 2.9.2
	 *
	 * @param string $pluginURI
	 *
	 * @return bool
	 */
	public function isPremiumAddons( $pluginURI ) {
		$addonId   = basename( $pluginURI );
		$addonsIds = $this->getAddonsIds();

		return in_array( $addonId, $addonsIds, true );
	}
}