Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
malacoscolicine
/
dev2024_old_skip
/
wp-content
/
plugins
/
presto-player
/
inc
/
Models
:
LicensedProduct.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace PrestoPlayer\Models; use PrestoPlayer\Models\Setting; class LicensedProduct { /** * The api url * * @return string */ public static function apiUrl() { return 'http://my.prestomade.com/index.php'; } /** * The product id * * @return string */ public static function id() { return 'presto-player-pro'; } /** * This domain * * @return string */ public static function domain() { $protocol = is_ssl() ? "https://" : "http://"; return str_replace($protocol, "", get_bloginfo('wpurl')); } /** * Save the key * * @param string $key * @return bool */ public static function saveKey($key) { return Setting::update('license', 'key', $key); } /** * Get the key * * @return string */ public static function getKey() { return Setting::get('license', 'key'); } /** * Activate a license * * @param string $key * @return string|\WP_Error */ public static function activate($key) { $request_uri = add_query_arg([ 'woo_sl_action' => 'activate', 'licence_key' => wp_kses_post($key), 'product_unique_id' => self::id(), 'domain' => self::domain() ], self::apiUrl()); $data = wp_remote_get($request_uri); // error if (is_wp_error($data) || $data['response']['code'] != 200) { return new \WP_Error('connection_error', 'There was a problem establishing a connection to the licensing server. Please try again in a few minutes.'); } // check body $data_body = json_decode($data['body']); $data_body = $data_body[0] ?? $data_body; if (isset($data_body->status)) { if ($data_body->status == 'success' && ($data_body->status_code == 's100' || $data_body->status_code == 's101')) { self::saveKey($key); if ($data_body->message) { return $data_body->message; } return __('Activated', 'presto-player'); } else { if ($data_body->message) { $code = $data_body->status_code ?? 'error'; return new \WP_Error($code, $data_body->message); } return new \WP_Error('activation_error', 'There was a problem activating the license. Please check your license expiration.'); } } return new \WP_Error('connection_error', 'There was a problem establishing a connection to the licensing server. Please try again in a few minutes.'); } /** * Deactivate license on this site * * @return string|\WP_Error */ public static function deactivate() { $request_uri = add_query_arg([ 'woo_sl_action' => 'deactivate', 'licence_key' => wp_kses_post(self::getKey()), 'product_unique_id' => self::id(), 'domain' => self::domain() ], self::apiUrl()); $data = wp_remote_get($request_uri); // error if (is_wp_error($data) || $data['response']['code'] != 200) { return new \WP_Error('connection_error', 'There was a problem establishing a connection to the licensing server. Please try again in a few minutes.'); } $data_body = json_decode($data['body']); $data_body = $data_body[0] ?? $data_body; if (isset($data_body->status)) { if ($data_body->status == 'success' && $data_body->status_code == 's201') { self::saveKey(''); Setting::update('license_data', 'last_check', time()); return $data_body->message; } else //if message code is e104 force de-activation if ($data_body->status_code == 'e002' || $data_body->status_code == 'e104' || $data_body->status_code == 'e211') { self::saveKey(''); Setting::update('license_data', 'last_check', time()); return __('Deactivated', 'presto-player'); } else { self::saveKey(''); if ($data_body->message) { $code = $data_body->status_code ?? 'error'; return new \WP_Error($code, $data_body->message); } return new \WP_Error('error', 'There was a problem deactivating the licence'); } } else { return new \WP_Error('error', 'There was a problem with the connecting to the licensing server.'); } } }