PluginProbe
Image Optimizer – Compress Images and Convert to WebP or AVIF / trunk
Image Optimizer – Compress Images and Convert to WebP or AVIF vtrunk
1.7.7 1.7.6 1.7.5 1.7.4 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.2.0 1.2.1 1.3.0 1.4.0 1.4.1 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 All 33 releases
← All changes | modules/oauth/classes/data.php +27 -7 1.0.0 → trunk View file →
@@ -1,12 +1,12 @@
1 1 <?php
2 2
3 -namespace ImageOptimizer\Modules\Oauth\Classes;
3 +namespace ImageOptimization\Modules\Oauth\Classes;
4 4
5 -use ImageOptimizer\Modules\Oauth\Components\Connect;
5 +use ImageOptimization\Modules\Oauth\Components\Connect;
6 6
7 7 if ( ! defined( 'ABSPATH' ) ) {
8 - exit; // Exit if accessed directly
8 + exit; // Exit if accessed directly.
9 9 }
10 10
11 11 /**
12 12 * Class Data
@@ -11,14 +11,14 @@
11 11 /**
12 12 * Class Data
13 13 */
14 14 class Data {
15 -
16 15 const CONNECT_CLIENT_DATA_OPTION_NAME = 'image_optimizer_client_data';
17 16 const CONNECT_DATA_OPTION_NAME = 'image_optimizer_connect_data';
18 17 const OPTION_CONNECT_SITE_KEY = 'image_optimizer_site_key';
19 18 const OPTION_CONNECT_STATE = 'image_optimizer_connect_state';
20 19 const OPTION_ACTIVATION_STATE = 'image_optimizer_activation_state';
20 + const OPTION_OWNER_USER_ID = 'image_optimizer_owner_user_id';
21 21
22 22 /**
23 23 * set_client_data
24 24 * @param $client_id
@@ -41,9 +41,8 @@
41 41 'auth_secret' => '',
42 42 ] );
43 43 }
44 44
45 -
46 45 /**
47 46 * get_client_id
48 47 * @return string
49 48 */
@@ -51,8 +50,16 @@
51 50 return self::get_client_data()['client_id'] ?? '';
52 51 }
53 52
54 53 /**
54 + * get_client_secret
55 + * @return string
56 + */
57 + public static function get_client_secret(): string {
58 + return self::get_client_data()['auth_secret'] ?? '';
59 + }
60 +
61 + /**
55 62 * get_connect_data
56 63 *
57 64 * @param bool $force
58 65 *
@@ -59,9 +66,9 @@
59 66 * @return array|null
60 67 */
61 68 public static function get_connect_data( bool $force = false ): array {
62 69 static $connect_data = null;
63 - if ( $connect_data === null || $force ) {
70 + if ( null === $connect_data || $force ) {
64 71 $connect_data = array_merge(
65 72 [
66 73 'access_token' => '',
67 74 'access_token_secret' => '',
@@ -67,8 +74,9 @@
67 74 'access_token_secret' => '',
68 75 'last_update' => 0,
69 76 'token_type' => 'bearer',
70 77 'user' => [],
78 + 'version' => 1,
71 79 ],
72 80 get_option( self::CONNECT_DATA_OPTION_NAME, [] )
73 81 );
74 82 }
@@ -81,8 +89,11 @@
81 89 * @param array $data
82 90 */
83 91 public static function set_connect_data( array $data = [] ): bool {
84 92 $data['last_update'] = time();
93 + $data['version'] = 1;
94 +
95 + update_option( self::OPTION_OWNER_USER_ID, get_current_user_id() );
85 96 return update_option( self::CONNECT_DATA_OPTION_NAME, $data );
86 97 }
87 98
88 99 /**
@@ -148,14 +159,17 @@
148 159 */
149 160 public static function reset(): void {
150 161 self::delete_connect_state();
151 162 self::delete_activation_state();
163 +
164 + delete_option( self::OPTION_OWNER_USER_ID );
152 165 delete_option( static::CONNECT_DATA_OPTION_NAME );
153 166 delete_option( self::CONNECT_CLIENT_DATA_OPTION_NAME );
167 + delete_transient( Connect::STATUS_CHECK_TRANSIENT );
154 168 }
155 169
156 170 public static function images_left(): int {
157 - $plan_data = Connect::check_connect_status();
171 + $plan_data = Connect::get_connect_status();
158 172
159 173 if ( empty( $plan_data ) ) {
160 174 return 0;
161 175 }
@@ -163,6 +177,12 @@
163 177 $quota = $plan_data->quota;
164 178 $used_quota = $plan_data->used_quota;
165 179
166 180 return max( $quota - $used_quota, 0 );
181 + }
182 +
183 + public static function user_is_subscription_owner(): bool {
184 + $owner_id = (int) get_option( self::OPTION_OWNER_USER_ID );
185 +
186 + return get_current_user_id() === $owner_id;
167 187 }
168 188 }