Done !
| Server IP : 46.105.57.169 / Your IP : 216.73.216.67 Web Server : Apache System : Linux webm002.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : verseaumee ( 152031) PHP Version : 8.5.7 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/verseaumee/blueversion/wp-content/plugins/give/src/License/ |
Upload File : |
<?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';
/**
* Cached addon values for the same request, prevents subsequent transient queries
*
* @since 2.11.3
*/
private $addonIds;
/**
* Get premium addons slugs as addons ids.
*
* @since 2.11.3 Always cache to avoid timeouts on givewp.com
* @since 2.9.2
*
* @return array
*/
private function getAddonsIds()
{
if (isset($this->addonIds)) {
return $this->addonIds;
}
$optionName = 'give_premium_addons_ids';
$cachedResult = get_transient($optionName);
if ($cachedResult !== false) {
return $this->addonIds = $cachedResult;
}
$response = wp_remote_get(
self::PRODUCTS_LIST_API_URL . '?number=-1',
[
'timeout' => 3,
]
);
$productsInformation = wp_remote_retrieve_body($response);
$responseCode = wp_remote_retrieve_response_code($response);
if ( ! $productsInformation || $responseCode < 200 || $responseCode > 299) {
set_transient($optionName, [], HOUR_IN_SECONDS);
return $this->addonIds = [];
}
$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 $this->addonIds = $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);
}
}