Edit File by line
/home/zeestwma/ajeebong.../wp-conte.../plugins/image-op.../modules/oauth/classes
File: data.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace ImageOptimization\Modules\Oauth\Classes;
[2] Fix | Delete
[3] Fix | Delete
use ImageOptimization\Modules\Oauth\Components\Connect;
[4] Fix | Delete
[5] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[6] Fix | Delete
exit; // Exit if accessed directly.
[7] Fix | Delete
}
[8] Fix | Delete
[9] Fix | Delete
/**
[10] Fix | Delete
* Class Data
[11] Fix | Delete
*/
[12] Fix | Delete
class Data {
[13] Fix | Delete
const CONNECT_CLIENT_DATA_OPTION_NAME = 'image_optimizer_client_data';
[14] Fix | Delete
const CONNECT_DATA_OPTION_NAME = 'image_optimizer_connect_data';
[15] Fix | Delete
const OPTION_CONNECT_SITE_KEY = 'image_optimizer_site_key';
[16] Fix | Delete
const OPTION_CONNECT_STATE = 'image_optimizer_connect_state';
[17] Fix | Delete
const OPTION_ACTIVATION_STATE = 'image_optimizer_activation_state';
[18] Fix | Delete
const OPTION_OWNER_USER_ID = 'image_optimizer_owner_user_id';
[19] Fix | Delete
[20] Fix | Delete
/**
[21] Fix | Delete
* set_client_data
[22] Fix | Delete
* @param $client_id
[23] Fix | Delete
* @param $auth_secret
[24] Fix | Delete
*/
[25] Fix | Delete
public static function set_client_data( $client_id, $auth_secret ) {
[26] Fix | Delete
update_option( self::CONNECT_CLIENT_DATA_OPTION_NAME, [
[27] Fix | Delete
'client_id' => $client_id,
[28] Fix | Delete
'auth_secret' => $auth_secret,
[29] Fix | Delete
], false );
[30] Fix | Delete
}
[31] Fix | Delete
[32] Fix | Delete
/**
[33] Fix | Delete
* get_client_data
[34] Fix | Delete
* @return array
[35] Fix | Delete
*/
[36] Fix | Delete
public static function get_client_data(): array {
[37] Fix | Delete
return get_option( self::CONNECT_CLIENT_DATA_OPTION_NAME, [
[38] Fix | Delete
'client_id' => '',
[39] Fix | Delete
'auth_secret' => '',
[40] Fix | Delete
] );
[41] Fix | Delete
}
[42] Fix | Delete
[43] Fix | Delete
/**
[44] Fix | Delete
* get_client_id
[45] Fix | Delete
* @return string
[46] Fix | Delete
*/
[47] Fix | Delete
public static function get_client_id(): string {
[48] Fix | Delete
return self::get_client_data()['client_id'] ?? '';
[49] Fix | Delete
}
[50] Fix | Delete
[51] Fix | Delete
/**
[52] Fix | Delete
* get_client_secret
[53] Fix | Delete
* @return string
[54] Fix | Delete
*/
[55] Fix | Delete
public static function get_client_secret(): string {
[56] Fix | Delete
return self::get_client_data()['auth_secret'] ?? '';
[57] Fix | Delete
}
[58] Fix | Delete
[59] Fix | Delete
/**
[60] Fix | Delete
* get_connect_data
[61] Fix | Delete
*
[62] Fix | Delete
* @param bool $force
[63] Fix | Delete
*
[64] Fix | Delete
* @return array|null
[65] Fix | Delete
*/
[66] Fix | Delete
public static function get_connect_data( bool $force = false ): array {
[67] Fix | Delete
static $connect_data = null;
[68] Fix | Delete
if ( null === $connect_data || $force ) {
[69] Fix | Delete
$connect_data = array_merge(
[70] Fix | Delete
[
[71] Fix | Delete
'access_token' => '',
[72] Fix | Delete
'access_token_secret' => '',
[73] Fix | Delete
'last_update' => 0,
[74] Fix | Delete
'token_type' => 'bearer',
[75] Fix | Delete
'user' => [],
[76] Fix | Delete
'version' => 1,
[77] Fix | Delete
],
[78] Fix | Delete
get_option( self::CONNECT_DATA_OPTION_NAME, [] )
[79] Fix | Delete
);
[80] Fix | Delete
}
[81] Fix | Delete
return $connect_data;
[82] Fix | Delete
}
[83] Fix | Delete
[84] Fix | Delete
/**
[85] Fix | Delete
* set_connect_data
[86] Fix | Delete
*
[87] Fix | Delete
* @param array $data
[88] Fix | Delete
*/
[89] Fix | Delete
public static function set_connect_data( array $data = [] ): bool {
[90] Fix | Delete
$data['last_update'] = time();
[91] Fix | Delete
$data['version'] = 1;
[92] Fix | Delete
[93] Fix | Delete
update_option( self::OPTION_OWNER_USER_ID, get_current_user_id() );
[94] Fix | Delete
return update_option( self::CONNECT_DATA_OPTION_NAME, $data );
[95] Fix | Delete
}
[96] Fix | Delete
[97] Fix | Delete
/**
[98] Fix | Delete
* get_access_token
[99] Fix | Delete
* @return false|mixed
[100] Fix | Delete
*/
[101] Fix | Delete
public static function get_access_token() {
[102] Fix | Delete
return self::get_connect_data()['access_token'] ?? false;
[103] Fix | Delete
}
[104] Fix | Delete
[105] Fix | Delete
/**
[106] Fix | Delete
* get_connect_state
[107] Fix | Delete
*
[108] Fix | Delete
* @param bool $force
[109] Fix | Delete
*
[110] Fix | Delete
* @return false|mixed|null|string
[111] Fix | Delete
*/
[112] Fix | Delete
public static function get_connect_state( bool $force = false ) {
[113] Fix | Delete
$state = get_option( static::OPTION_CONNECT_STATE );
[114] Fix | Delete
if ( ! $state || $force ) {
[115] Fix | Delete
$state = wp_generate_password( 12, false );
[116] Fix | Delete
update_option( static::OPTION_CONNECT_STATE, $state, false );
[117] Fix | Delete
}
[118] Fix | Delete
return $state;
[119] Fix | Delete
}
[120] Fix | Delete
[121] Fix | Delete
/**
[122] Fix | Delete
* get_site_key
[123] Fix | Delete
* @return false|mixed|string|null
[124] Fix | Delete
*/
[125] Fix | Delete
public static function get_site_key() {
[126] Fix | Delete
$site_key = get_option( static::OPTION_CONNECT_SITE_KEY );
[127] Fix | Delete
[128] Fix | Delete
if ( ! $site_key ) {
[129] Fix | Delete
$site_key = md5( uniqid( wp_generate_password() ) );
[130] Fix | Delete
update_option( static::OPTION_CONNECT_SITE_KEY, $site_key, false );
[131] Fix | Delete
}
[132] Fix | Delete
[133] Fix | Delete
return $site_key;
[134] Fix | Delete
}
[135] Fix | Delete
[136] Fix | Delete
/**
[137] Fix | Delete
* delete_connect_state
[138] Fix | Delete
*/
[139] Fix | Delete
public static function delete_connect_state(): bool {
[140] Fix | Delete
return delete_option( static::OPTION_CONNECT_STATE );
[141] Fix | Delete
}
[142] Fix | Delete
[143] Fix | Delete
public static function get_activation_state(): string {
[144] Fix | Delete
return get_option( self::OPTION_ACTIVATION_STATE, '' );
[145] Fix | Delete
}
[146] Fix | Delete
[147] Fix | Delete
public static function set_activation_state( $state ): bool {
[148] Fix | Delete
return update_option( self::OPTION_ACTIVATION_STATE, $state );
[149] Fix | Delete
}
[150] Fix | Delete
[151] Fix | Delete
public static function delete_activation_state(): bool {
[152] Fix | Delete
return delete_option( self::OPTION_ACTIVATION_STATE );
[153] Fix | Delete
}
[154] Fix | Delete
[155] Fix | Delete
/**
[156] Fix | Delete
* reset connect data
[157] Fix | Delete
*/
[158] Fix | Delete
public static function reset(): void {
[159] Fix | Delete
self::delete_connect_state();
[160] Fix | Delete
self::delete_activation_state();
[161] Fix | Delete
[162] Fix | Delete
delete_option( self::OPTION_OWNER_USER_ID );
[163] Fix | Delete
delete_option( static::CONNECT_DATA_OPTION_NAME );
[164] Fix | Delete
delete_option( self::CONNECT_CLIENT_DATA_OPTION_NAME );
[165] Fix | Delete
delete_transient( Connect::STATUS_CHECK_TRANSIENT );
[166] Fix | Delete
}
[167] Fix | Delete
[168] Fix | Delete
public static function images_left(): int {
[169] Fix | Delete
$plan_data = Connect::get_connect_status();
[170] Fix | Delete
[171] Fix | Delete
if ( empty( $plan_data ) ) {
[172] Fix | Delete
return 0;
[173] Fix | Delete
}
[174] Fix | Delete
[175] Fix | Delete
$quota = $plan_data->quota;
[176] Fix | Delete
$used_quota = $plan_data->used_quota;
[177] Fix | Delete
[178] Fix | Delete
return max( $quota - $used_quota, 0 );
[179] Fix | Delete
}
[180] Fix | Delete
[181] Fix | Delete
public static function user_is_subscription_owner(): bool {
[182] Fix | Delete
$owner_id = (int) get_option( self::OPTION_OWNER_USER_ID );
[183] Fix | Delete
[184] Fix | Delete
return get_current_user_id() === $owner_id;
[185] Fix | Delete
}
[186] Fix | Delete
}
[187] Fix | Delete
[188] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function