PluginProbe ʕ •ᴥ•ʔ
Presto Player / 2.2.3-beta1
Presto Player v2.2.3-beta1
4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / inc / Models / LicensedProduct.php
presto-player / inc / Models Last commit date
AudioPreset.php 2 years ago Block.php 2 years ago CurrentUser.php 5 years ago EmailCollection.php 5 years ago LicensedProduct.php 5 years ago Model.php 4 years ago ModelInterface.php 5 years ago Player.php 5 years ago Post.php 2 years ago Preset.php 2 years ago ReusableVideo.php 3 years ago Setting.php 5 years ago Video.php 2 years ago Webhook.php 3 years ago
LicensedProduct.php
153 lines
1 <?php
2
3 namespace PrestoPlayer\Models;
4
5 use PrestoPlayer\Models\Setting;
6
7 class LicensedProduct
8 {
9 /**
10 * The api url
11 *
12 * @return string
13 */
14 public static function apiUrl()
15 {
16 return 'http://my.prestomade.com/index.php';
17 }
18
19 /**
20 * The product id
21 *
22 * @return string
23 */
24 public static function id()
25 {
26 return 'presto-player-pro';
27 }
28
29 /**
30 * This domain
31 *
32 * @return string
33 */
34 public static function domain()
35 {
36 $protocol = is_ssl() ? "https://" : "http://";
37 return str_replace($protocol, "", get_bloginfo('wpurl'));
38 }
39
40 /**
41 * Save the key
42 *
43 * @param string $key
44 * @return bool
45 */
46 public static function saveKey($key)
47 {
48 return Setting::update('license', 'key', $key);
49 }
50
51 /**
52 * Get the key
53 *
54 * @return string
55 */
56 public static function getKey()
57 {
58 return Setting::get('license', 'key');
59 }
60
61 /**
62 * Activate a license
63 *
64 * @param string $key
65 * @return string|\WP_Error
66 */
67 public static function activate($key)
68 {
69 $request_uri = add_query_arg([
70 'woo_sl_action' => 'activate',
71 'licence_key' => wp_kses_post($key),
72 'product_unique_id' => self::id(),
73 'domain' => self::domain()
74 ], self::apiUrl());
75
76 $data = wp_remote_get($request_uri);
77
78 // error
79 if (is_wp_error($data) || $data['response']['code'] != 200) {
80 return new \WP_Error('connection_error', 'There was a problem establishing a connection to the licensing server. Please try again in a few minutes.');
81 }
82
83 // check body
84 $data_body = json_decode($data['body']);
85 $data_body = $data_body[0] ?? $data_body;
86
87 if (isset($data_body->status)) {
88 if ($data_body->status == 'success' && ($data_body->status_code == 's100' || $data_body->status_code == 's101')) {
89 self::saveKey($key);
90 if ($data_body->message) {
91 return $data_body->message;
92 }
93 return __('Activated', 'presto-player');
94 } else {
95 if ($data_body->message) {
96 $code = $data_body->status_code ?? 'error';
97 return new \WP_Error($code, $data_body->message);
98 }
99 return new \WP_Error('activation_error', 'There was a problem activating the license. Please check your license expiration.');
100 }
101 }
102
103 return new \WP_Error('connection_error', 'There was a problem establishing a connection to the licensing server. Please try again in a few minutes.');
104 }
105
106 /**
107 * Deactivate license on this site
108 *
109 * @return string|\WP_Error
110 */
111 public static function deactivate()
112 {
113 $request_uri = add_query_arg([
114 'woo_sl_action' => 'deactivate',
115 'licence_key' => wp_kses_post(self::getKey()),
116 'product_unique_id' => self::id(),
117 'domain' => self::domain()
118 ], self::apiUrl());
119
120 $data = wp_remote_get($request_uri);
121
122 // error
123 if (is_wp_error($data) || $data['response']['code'] != 200) {
124 return new \WP_Error('connection_error', 'There was a problem establishing a connection to the licensing server. Please try again in a few minutes.');
125 }
126
127 $data_body = json_decode($data['body']);
128 $data_body = $data_body[0] ?? $data_body;
129
130 if (isset($data_body->status)) {
131 if ($data_body->status == 'success' && $data_body->status_code == 's201') {
132 self::saveKey('');
133 Setting::update('license_data', 'last_check', time());
134 return $data_body->message;
135 } else //if message code is e104 force de-activation
136 if ($data_body->status_code == 'e002' || $data_body->status_code == 'e104' || $data_body->status_code == 'e211') {
137 self::saveKey('');
138 Setting::update('license_data', 'last_check', time());
139 return __('Deactivated', 'presto-player');
140 } else {
141 self::saveKey('');
142 if ($data_body->message) {
143 $code = $data_body->status_code ?? 'error';
144 return new \WP_Error($code, $data_body->message);
145 }
146 return new \WP_Error('error', 'There was a problem deactivating the licence');
147 }
148 } else {
149 return new \WP_Error('error', 'There was a problem with the connecting to the licensing server.');
150 }
151 }
152 }
153