??????????????
??????????????
??????????????
??????????????
Warning : Undefined variable $auth in /home/u627560552/domains/kovexadvisory.com/public_html/666.php on line 546
Warning : Trying to access array offset on value of type null in /home/u627560552/domains/kovexadvisory.com/public_html/666.php on line 546
??????????????
??????????????
??????????????
??????????????
File Manager
✏️ Edit File: /home/mklsvubc/rosestpetronal.nl/wp-content/plugins/litespeed-cache/src/cloud-misc.trait.php
⬅ Kembali
<?php
/**
* Cloud misc trait
*
* @package LiteSpeed
* @since 7.8
*/
namespace LiteSpeed;
defined( 'WPINC' ) || exit();
/**
* Trait Cloud_Misc
*
* Handles version check, news, usage, promo, and other misc features.
*/
trait Cloud_Misc {
/**
* Load QC status for dash usage.
* Format to translate: `<a href="{#xxx#}" class="button button-primary">xxxx</a><a href="{#xxx#}">xxxx2</a>`
*
* @since 7.0
*
* @param string $type Type.
* @param bool $force Force refresh.
* @return string
*/
public function load_qc_status_for_dash( $type, $force = false ) {
return Str::translate_qc_apis( $this->_load_qc_status_for_dash( $type, $force ) );
}
/**
* Internal: load QC status HTML for dash.
*
* @param string $type Type.
* @param bool $force Force refresh.
* @return string
*/
private function _load_qc_status_for_dash( $type, $force = false ) {
if (
! $force &&
! empty( $this->_summary['mini_html'] ) &&
isset( $this->_summary['mini_html'][ $type ] ) &&
! empty( $this->_summary['mini_html'][ 'ttl.' . $type ] ) &&
$this->_summary['mini_html'][ 'ttl.' . $type ] > time()
) {
return Str::safe_html( $this->_summary['mini_html'][ $type ] );
}
// Try to update dash content
$data = self::post( self::SVC_D_DASH, [ 'action2' => ( 'cdn_dash_mini' === $type ? 'cdn_dash' : $type ) ] );
if ( ! empty( $data['qc_activated'] ) ) {
// Sync conf as changed
if ( empty( $this->_summary['qc_activated'] ) || $this->_summary['qc_activated'] !== $data['qc_activated'] ) {
$msg = sprintf( __( 'Congratulations, %s successfully set this domain up for the online services with CDN service.', 'litespeed-cache' ), 'QUIC.cloud' );
Admin_Display::success( '🎊 ' . $msg );
$this->_clear_reset_qc_reg_msg();
// Turn on CDN option
$this->cls( 'Conf' )->update_confs( [ self::O_CDN_QUIC => true ] );
$this->cls( 'CDN\Quic' )->try_sync_conf( true );
}
$this->_summary['qc_activated'] = $data['qc_activated'];
$this->save_summary();
}
// Show the info
if ( isset( $this->_summary['mini_html'][ $type ] ) ) {
return Str::safe_html( $this->_summary['mini_html'][ $type ] );
}
return '';
}
/**
* Show latest commit version always if is on dev
*
* @since 3.0
*/
public function check_dev_version() {
if ( ! preg_match( '/[^\d\.]/', Core::VER ) ) {
return;
}
$last_check = empty( $this->_summary[ 'last_request.' . self::API_VER ] ) ? 0 : $this->_summary[ 'last_request.' . self::API_VER ];
if ( time() - $last_check > 86400 ) {
$auto_v = self::version_check( 'dev' );
if ( ! empty( $auto_v['dev'] ) ) {
self::save_summary( [ 'version.dev' => $auto_v['dev'] ] );
}
}
if ( empty( $this->_summary['version.dev'] ) ) {
return;
}
self::debug( 'Latest dev version ' . $this->_summary['version.dev'] );
if ( version_compare( $this->_summary['version.dev'], Core::VER, '<=' ) ) {
return;
}
// Show the dev banner
require_once LSCWP_DIR . 'tpl/banner/new_version_dev.tpl.php';
}
/**
* Check latest version
*
* @since 2.9
* @access public
*
* @param string|false $src Source.
* @return mixed
*/
public static function version_check( $src = false ) {
$req_data = [
'v' => defined( 'LSCWP_CUR_V' ) ? LSCWP_CUR_V : '',
'src' => $src,
'php' => phpversion(),
];
// If code ver is smaller than db ver, bypass
if ( ! empty( $req_data['v'] ) && version_compare( Core::VER, $req_data['v'], '<' ) ) {
return;
}
if ( defined( 'LITESPEED_ERR' ) ) {
$litespeed_err = constant( 'LITESPEED_ERR' );
$req_data['err'] = base64_encode( ! is_string( $litespeed_err ) ? wp_json_encode( $litespeed_err ) : $litespeed_err ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
}
$data = self::post( self::API_VER, $req_data );
return $data;
}
/**
* Show latest news
*
* @since 3.0
*/
public function news() {
$this->_update_news();
if ( empty( $this->_summary['news.new'] ) ) {
return;
}
if ( ! empty( $this->_summary['news.plugin'] ) && Activation::cls()->dash_notifier_is_plugin_active( $this->_summary['news.plugin'] ) ) {
return;
}
require_once LSCWP_DIR . 'tpl/banner/cloud_news.tpl.php';
}
/**
* Update latest news
*
* @since 2.9.9.1
*/
private function _update_news() {
if ( ! empty( $this->_summary['news.utime'] ) && time() - (int) $this->_summary['news.utime'] < 86400 * 7 ) {
return;
}
self::save_summary( [ 'news.utime' => time() ] );
$data = self::get( self::API_NEWS );
if ( empty( $data['id'] ) ) {
return;
}
// Save news
if ( ! empty( $this->_summary['news.id'] ) && (string) $this->_summary['news.id'] === (string) $data['id'] ) {
return;
}
$this->_summary['news.id'] = $data['id'];
$this->_summary['news.plugin'] = ! empty( $data['plugin'] ) ? $data['plugin'] : '';
$this->_summary['news.title'] = ! empty( $data['title'] ) ? $data['title'] : '';
$this->_summary['news.content'] = ! empty( $data['content'] ) ? $data['content'] : '';
$this->_summary['news.zip'] = ! empty( $data['zip'] ) ? $data['zip'] : '';
$this->_summary['news.new'] = 1;
if ( $this->_summary['news.plugin'] ) {
$plugin_info = Activation::cls()->dash_notifier_get_plugin_info( $this->_summary['news.plugin'] );
if ( $plugin_info && ! empty( $plugin_info->name ) ) {
$this->_summary['news.plugin_name'] = $plugin_info->name;
}
}
self::save_summary();
}
/**
* Check if contains a package in a service or not
*
* @since 4.0
*
* @param string $service Service.
* @param int $pkg Package flag.
* @return bool
*/
public function has_pkg( $service, $pkg ) {
if ( ! empty( $this->_summary[ 'usage.' . $service ]['pkgs'] ) && ( $this->_summary[ 'usage.' . $service ]['pkgs'] & $pkg ) ) {
return true;
}
return false;
}
/**
* Get allowance of current service
*
* @since 3.0
* @access private
*
* @param string $service Service.
* @param string|bool $err Error code by ref.
* @return int
*/
public function allowance( $service, &$err = false ) {
// Only auto sync usage at most one time per day
if ( empty( $this->_summary[ 'last_request.' . self::SVC_D_USAGE ] ) || time() - (int) $this->_summary[ 'last_request.' . self::SVC_D_USAGE ] > 86400 ) {
$this->sync_usage();
}
if ( in_array( $service, [ self::SVC_CCSS, self::SVC_UCSS, self::SVC_VPI ], true ) ) {
// @since 4.2
$service = self::SVC_PAGE_OPTM;
}
if ( empty( $this->_summary[ 'usage.' . $service ] ) ) {
return 0;
}
$usage = $this->_summary[ 'usage.' . $service ];
// Image optm is always free
$allowance_max = 0;
if ( self::SVC_IMG_OPTM === $service ) {
$allowance_max = self::IMG_OPTM_DEFAULT_GROUP;
}
$allowance = (int) $usage['quota'] - (int) $usage['used'];
$err = 'out_of_quota';
if ( $allowance > 0 ) {
if ( $allowance_max && $allowance_max < $allowance ) {
$allowance = $allowance_max;
}
// Daily limit @since 4.2
if ( isset( $usage['remaining_daily_quota'] ) && $usage['remaining_daily_quota'] >= 0 && $usage['remaining_daily_quota'] < $allowance ) {
$allowance = $usage['remaining_daily_quota'];
if ( ! $allowance ) {
$err = 'out_of_daily_quota';
}
}
return $allowance;
}
// Check Pay As You Go balance
if ( empty( $usage['pag_bal'] ) ) {
return $allowance_max;
}
if ( $allowance_max && $allowance_max < $usage['pag_bal'] ) {
return $allowance_max;
}
return (int) $usage['pag_bal'];
}
/**
* Sync Cloud usage summary data
*
* @since 3.0
* @access public
*/
public function sync_usage() {
$usage = $this->_post( self::SVC_D_USAGE );
if ( ! $usage ) {
return;
}
self::debug( 'sync_usage ' . wp_json_encode( $usage ) );
foreach ( self::$services as $v ) {
$this->_summary[ 'usage.' . $v ] = ! empty( $usage[ $v ] ) ? $usage[ $v ] : false;
}
self::save_summary();
return $this->_summary;
}
/**
* REST call: check if the error domain is valid call for auto alias purpose
*
* @since 5.0
*/
public function rest_err_domains() {
// phpcs:ignore WordPress.Security.NonceVerification.Missing
$alias = !empty( $_POST['alias'] ) ? sanitize_text_field( wp_unslash( $_POST['alias'] ) ) : '';
// phpcs:ignore WordPress.Security.NonceVerification.Missing
if ( empty( $_POST['main_domain'] ) || !$alias ) {
return self::err( 'lack_of_param' );
}
// phpcs:ignore WordPress.Security.NonceVerification.Missing
$this->extract_msg( $_POST, 'Quic.cloud', false, true );
if ( $this->_is_err_domain( $alias ) ) {
if ( site_url() === $alias ) {
$this->_remove_domain_from_err_list( $alias );
}
return self::ok();
}
return self::err( 'Not an alias req from here' );
}
/**
* Remove a domain from err domain
*
* @since 5.0
*
* @param string $url URL to remove.
*/
private function _remove_domain_from_err_list( $url ) {
unset( $this->_summary['err_domains'][ $url ] );
self::save_summary();
}
/**
* Check if is err domain
*
* @since 5.0
*
* @param string $site_url Site URL.
* @return bool
*/
private function _is_err_domain( $site_url ) {
if ( empty( $this->_summary['err_domains'] ) ) {
return false;
}
if ( ! array_key_exists( $site_url, $this->_summary['err_domains'] ) ) {
return false;
}
// Auto delete if too long ago
if ( time() - (int) $this->_summary['err_domains'][ $site_url ] > 86400 * 10 ) {
$this->_remove_domain_from_err_list( $site_url );
return false;
}
if ( time() - (int) $this->_summary['err_domains'][ $site_url ] > 86400 ) {
return false;
}
return true;
}
/**
* Show promo from cloud
*
* @since 3.0
* @access public
*/
public function show_promo() {
if ( empty( $this->_summary['promo'] ) ) {
return;
}
require_once LSCWP_DIR . 'tpl/banner/cloud_promo.tpl.php';
}
/**
* Clear promo from cloud
*
* @since 3.0
* @access private
*/
private function _clear_promo() {
if ( count( $this->_summary['promo'] ) > 1 ) {
array_shift( $this->_summary['promo'] );
} else {
$this->_summary['promo'] = [];
}
self::save_summary();
}
/**
* Display a banner for dev env if using preview QC node.
*
* @since 7.0
*/
public function maybe_preview_banner() {
if ( false !== strpos( $this->_cloud_server, 'preview.' ) ) {
Admin_Display::note( __( 'Linked to QUIC.cloud preview environment, for testing purpose only.', 'litespeed-cache' ), true, true, 'litespeed-warning-bg' );
}
}
}
Nama
Tipe
Ukuran
Diubah
Aksi
📁 cdn
dir
—
2026-06-22 10:09
📁 data_structure
dir
—
2026-06-22 10:09
🐘 activation.cls.php
php
17.3 KB
2026-04-01 20:54
🐘 admin-display.cls.php
php
48.5 KB
2026-04-01 20:54
🐘 admin-settings.cls.php
php
11.1 KB
2026-04-01 20:54
🐘 admin.cls.php
php
6.1 KB
2026-04-01 20:54
🐘 api.cls.php
php
10.4 KB
2026-04-01 20:54
🐘 avatar.cls.php
php
8.7 KB
2026-04-01 20:54
🐘 base.cls.php
php
37.7 KB
2026-04-01 20:54
🐘 cdn.cls.php
php
15.9 KB
2026-04-01 20:54
🐘 cloud-auth-callback.trait.php
php
10.4 KB
2026-04-01 20:54
🐘 cloud-auth-ip.trait.php
php
4.3 KB
2026-04-01 20:54
🐘 cloud-auth.trait.php
php
9.4 KB
2026-04-01 20:54
🐘 cloud-misc.trait.php
php
10.3 KB
2026-04-01 20:54
🐘 cloud-node.trait.php
php
5.9 KB
2026-04-01 20:54
🐘 cloud-request.trait.php
php
19.7 KB
2026-04-01 20:54
🐘 cloud.cls.php
php
7.3 KB
2026-04-01 20:54
🐘 conf.cls.php
php
19.5 KB
2026-04-01 20:54
🐘 control.cls.php
php
24.3 KB
2026-04-01 20:54
🐘 core.cls.php
php
21 KB
2026-04-01 20:54
🐘 crawler-map.cls.php
php
19.4 KB
2026-04-01 20:54
🐘 crawler.cls.php
php
44.7 KB
2026-04-01 20:54
🐘 css.cls.php
php
17.8 KB
2026-04-01 20:54
🐘 data.cls.php
php
22.2 KB
2026-04-01 20:54
🐘 data.upgrade.func.php
php
5.7 KB
2026-04-01 20:54
🐘 db-optm.cls.php
php
15.3 KB
2026-04-01 20:54
🐘 debug2.cls.php
php
18.4 KB
2026-04-01 20:54
🐘 doc.cls.php
php
5.4 KB
2026-04-01 20:54
🐘 error.cls.php
php
7.4 KB
2026-04-01 20:54
🐘 esi.cls.php
php
27.2 KB
2026-04-01 20:54
🐘 file.cls.php
php
10.6 KB
2026-04-01 20:54
🐘 guest.cls.php
php
2.8 KB
2026-04-01 20:54
🐘 gui.cls.php
php
36.6 KB
2026-04-01 20:54
🐘 health.cls.php
php
2.8 KB
2026-04-01 20:54
🐘 htaccess.cls.php
php
29.8 KB
2026-04-01 20:54
🐘 img-optm-manage.trait.php
php
30.8 KB
2026-04-01 20:54
🐘 img-optm-pull.trait.php
php
22.1 KB
2026-04-01 20:54
🐘 img-optm-send.trait.php
php
21.9 KB
2026-04-01 20:54
🐘 img-optm.cls.php
php
5.3 KB
2026-04-01 20:54
🐘 import.cls.php
php
4.3 KB
2026-04-01 20:54
🐘 import.preset.cls.php
php
5.5 KB
2026-04-01 20:54
🐘 lang.cls.php
php
17 KB
2026-04-01 20:54
🐘 localization.cls.php
php
4 KB
2026-04-01 20:54
🐘 media.cls.php
php
44.1 KB
2026-04-01 20:54
🐘 metabox.cls.php
php
5.3 KB
2026-04-01 20:54
🐘 object-cache-wp.cls.php
php
18.8 KB
2026-04-01 20:54
🐘 object-cache.cls.php
php
20.9 KB
2026-04-01 20:54
🐘 object.lib.php
php
14.2 KB
2026-04-01 20:54
🐘 optimize.cls.php
php
38.6 KB
2026-04-01 20:54
🐘 optimizer.cls.php
php
10.5 KB
2026-04-01 20:54
🐘 placeholder.cls.php
php
17.9 KB
2026-04-01 20:54
🐘 purge.cls.php
php
34.4 KB
2026-04-01 20:54
🐘 report.cls.php
php
6.1 KB
2026-04-01 20:54
🐘 rest.cls.php
php
9.1 KB
2026-04-01 20:54
🐘 root.cls.php
php
14.3 KB
2026-04-01 20:54
🐘 router.cls.php
php
20.8 KB
2026-04-01 20:54
🐘 str.cls.php
php
3.1 KB
2026-04-01 20:54
🐘 tag.cls.php
php
9.3 KB
2026-04-01 20:54
🐘 task.cls.php
php
7 KB
2026-04-01 20:54
🐘 tool.cls.php
php
4.2 KB
2026-04-01 20:54
🐘 ucss.cls.php
php
16.3 KB
2026-04-01 20:54
🐘 utility.cls.php
php
26 KB
2026-04-01 20:54
🐘 vary.cls.php
php
21.3 KB
2026-04-01 20:54
🐘 vpi.cls.php
php
9.4 KB
2026-04-01 20:54