PluginProbe
Image Optimizer – Compress Images and Convert to WebP or AVIF / 1.0.0
Image Optimizer – Compress Images and Convert to WebP or AVIF v1.0.0
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
image-optimization / modules / oauth / classes / data.php

data.php in Image Optimizer – Compress Images and Convert to WebP or AVIF 1.0.0, at modules/oauth/classes/data.php

169 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ImageOptimizer\Modules\Oauth\Classes;
4
5 use ImageOptimizer\Modules\Oauth\Components\Connect;
6
7 if ( ! defined( 'ABSPATH' ) ) {
8 exit; // Exit if accessed directly
9 }
10
11 /**
12 * Class Data
13 */
14 class Data {
15
16 const CONNECT_CLIENT_DATA_OPTION_NAME = 'image_optimizer_client_data';
17 const CONNECT_DATA_OPTION_NAME = 'image_optimizer_connect_data';
18 const OPTION_CONNECT_SITE_KEY = 'image_optimizer_site_key';
19 const OPTION_CONNECT_STATE = 'image_optimizer_connect_state';
20 const OPTION_ACTIVATION_STATE = 'image_optimizer_activation_state';
21
22 /**
23 * set_client_data
24 * @param $client_id
25 * @param $auth_secret
26 */
27 public static function set_client_data( $client_id, $auth_secret ) {
28 update_option( self::CONNECT_CLIENT_DATA_OPTION_NAME, [
29 'client_id' => $client_id,
30 'auth_secret' => $auth_secret,
31 ], false );
32 }
33
34 /**
35 * get_client_data
36 * @return array
37 */
38 public static function get_client_data(): array {
39 return get_option( self::CONNECT_CLIENT_DATA_OPTION_NAME, [
40 'client_id' => '',
41 'auth_secret' => '',
42 ] );
43 }
44
45
46 /**
47 * get_client_id
48 * @return string
49 */
50 public static function get_client_id(): string {
51 return self::get_client_data()['client_id'] ?? '';
52 }
53
54 /**
55 * get_connect_data
56 *
57 * @param bool $force
58 *
59 * @return array|null
60 */
61 public static function get_connect_data( bool $force = false ): array {
62 static $connect_data = null;
63 if ( $connect_data === null || $force ) {
64 $connect_data = array_merge(
65 [
66 'access_token' => '',
67 'access_token_secret' => '',
68 'last_update' => 0,
69 'token_type' => 'bearer',
70 'user' => [],
71 ],
72 get_option( self::CONNECT_DATA_OPTION_NAME, [] )
73 );
74 }
75 return $connect_data;
76 }
77
78 /**
79 * set_connect_data
80 *
81 * @param array $data
82 */
83 public static function set_connect_data( array $data = [] ): bool {
84 $data['last_update'] = time();
85 return update_option( self::CONNECT_DATA_OPTION_NAME, $data );
86 }
87
88 /**
89 * get_access_token
90 * @return false|mixed
91 */
92 public static function get_access_token() {
93 return self::get_connect_data()['access_token'] ?? false;
94 }
95
96 /**
97 * get_connect_state
98 *
99 * @param bool $force
100 *
101 * @return false|mixed|null|string
102 */
103 public static function get_connect_state( bool $force = false ) {
104 $state = get_option( static::OPTION_CONNECT_STATE );
105 if ( ! $state || $force ) {
106 $state = wp_generate_password( 12, false );
107 update_option( static::OPTION_CONNECT_STATE, $state, false );
108 }
109 return $state;
110 }
111
112 /**
113 * get_site_key
114 * @return false|mixed|string|null
115 */
116 public static function get_site_key() {
117 $site_key = get_option( static::OPTION_CONNECT_SITE_KEY );
118
119 if ( ! $site_key ) {
120 $site_key = md5( uniqid( wp_generate_password() ) );
121 update_option( static::OPTION_CONNECT_SITE_KEY, $site_key, false );
122 }
123
124 return $site_key;
125 }
126
127 /**
128 * delete_connect_state
129 */
130 public static function delete_connect_state(): bool {
131 return delete_option( static::OPTION_CONNECT_STATE );
132 }
133
134 public static function get_activation_state(): string {
135 return get_option( self::OPTION_ACTIVATION_STATE, '' );
136 }
137
138 public static function set_activation_state( $state ): bool {
139 return update_option( self::OPTION_ACTIVATION_STATE, $state );
140 }
141
142 public static function delete_activation_state(): bool {
143 return delete_option( self::OPTION_ACTIVATION_STATE );
144 }
145
146 /**
147 * reset connect data
148 */
149 public static function reset(): void {
150 self::delete_connect_state();
151 self::delete_activation_state();
152 delete_option( static::CONNECT_DATA_OPTION_NAME );
153 delete_option( self::CONNECT_CLIENT_DATA_OPTION_NAME );
154 }
155
156 public static function images_left(): int {
157 $plan_data = Connect::check_connect_status();
158
159 if ( empty( $plan_data ) ) {
160 return 0;
161 }
162
163 $quota = $plan_data->quota;
164 $used_quota = $plan_data->used_quota;
165
166 return max( $quota - $used_quota, 0 );
167 }
168 }
169