__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
// phpcs:ignoreFile
/**
* The tools
*
* @since 3.0
* @package LiteSpeed
*/
namespace LiteSpeed;
defined( 'WPINC' ) || exit();
/**
* Class Tool
*
* Provides utility functions for LiteSpeed Cache, including IP detection and heartbeat control.
*
* @since 3.0
*/
class Tool extends Root {
const LOG_TAG = '[Tool]';
/**
* Get public IP
*
* Retrieves the public IP address of the server.
*
* @since 3.0
* @access public
* @return string The public IP address or an error message.
*/
public function check_ip() {
self::debug( '✅ check_ip' );
$response = wp_safe_remote_get( 'https://cyberpanel.sh/?ip', array(
'headers' => array(
'User-Agent' => 'curl/8.7.1',
),
) );
if ( is_wp_error( $response ) ) {
return esc_html__( 'Failed to detect IP', 'litespeed-cache' );
}
$ip = trim( $response['body'] );
self::debug( 'result [ip] ' . $ip );
if ( Utility::valid_ipv4( $ip ) ) {
return $ip;
}
return esc_html__( 'Failed to detect IP', 'litespeed-cache' );
}
/**
* Heartbeat Control
*
* Configures WordPress heartbeat settings for frontend, backend, and editor.
*
* @since 3.0
* @access public
*/
public function heartbeat() {
add_action( 'wp_enqueue_scripts', array( $this, 'heartbeat_frontend' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'heartbeat_backend' ) );
add_filter( 'heartbeat_settings', array( $this, 'heartbeat_settings' ) );
}
/**
* Heartbeat Control frontend control
*
* Manages heartbeat settings for the frontend.
*
* @since 3.0
* @access public
*/
public function heartbeat_frontend() {
if ( ! $this->conf( Base::O_MISC_HEARTBEAT_FRONT ) ) {
return;
}
if ( ! $this->conf( Base::O_MISC_HEARTBEAT_FRONT_TTL ) ) {
wp_deregister_script( 'heartbeat' );
Debug2::debug( '[Tool] Deregistered frontend heartbeat' );
}
}
/**
* Heartbeat Control backend control
*
* Manages heartbeat settings for the backend and editor.
*
* @since 3.0
* @access public
*/
public function heartbeat_backend() {
if ( $this->is_editor() ) {
if ( ! $this->conf( Base::O_MISC_HEARTBEAT_EDITOR ) ) {
return;
}
if ( ! $this->conf( Base::O_MISC_HEARTBEAT_EDITOR_TTL ) ) {
wp_deregister_script( 'heartbeat' );
Debug2::debug( '[Tool] Deregistered editor heartbeat' );
}
} else {
if ( ! $this->conf( Base::O_MISC_HEARTBEAT_BACK ) ) {
return;
}
if ( ! $this->conf( Base::O_MISC_HEARTBEAT_BACK_TTL ) ) {
wp_deregister_script( 'heartbeat' );
Debug2::debug( '[Tool] Deregistered backend heartbeat' );
}
}
}
/**
* Heartbeat Control settings
*
* Adjusts heartbeat interval settings based on configuration.
*
* @since 3.0
* @access public
* @param array $settings Existing heartbeat settings.
* @return array Modified heartbeat settings.
*/
public function heartbeat_settings( $settings ) {
// Check editor first to make frontend editor valid too
if ( $this->is_editor() ) {
if ( $this->conf( Base::O_MISC_HEARTBEAT_EDITOR ) ) {
$settings['interval'] = $this->conf( Base::O_MISC_HEARTBEAT_EDITOR_TTL );
Debug2::debug( '[Tool] Heartbeat interval set to ' . $this->conf( Base::O_MISC_HEARTBEAT_EDITOR_TTL ) );
}
} elseif ( ! is_admin() ) {
if ( $this->conf( Base::O_MISC_HEARTBEAT_FRONT ) ) {
$settings['interval'] = $this->conf( Base::O_MISC_HEARTBEAT_FRONT_TTL );
Debug2::debug( '[Tool] Heartbeat interval set to ' . $this->conf( Base::O_MISC_HEARTBEAT_FRONT_TTL ) );
}
} elseif ( $this->conf( Base::O_MISC_HEARTBEAT_BACK ) ) {
$settings['interval'] = $this->conf( Base::O_MISC_HEARTBEAT_BACK_TTL );
Debug2::debug( '[Tool] Heartbeat interval set to ' . $this->conf( Base::O_MISC_HEARTBEAT_BACK_TTL ) );
}
return $settings;
}
/**
* Check if in editor
*
* Determines if the current request is within the WordPress editor.
*
* @since 3.0
* @access public
* @return bool True if in editor, false otherwise.
*/
public function is_editor() {
$request_uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : '';
$res = is_admin() && Utility::str_hit_array( $request_uri, array( 'post.php', 'post-new.php' ) );
return apply_filters( 'litespeed_is_editor', $res );
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| cdn | Folder | 0755 |
|
|
| data_structure | Folder | 0755 |
|
|
| activation.cls.php | File | 17.44 KB | 0644 |
|
| admin-display.cls.php | File | 48.12 KB | 0644 |
|
| admin-settings.cls.php | File | 11.12 KB | 0644 |
|
| admin.cls.php | File | 5.05 KB | 0644 |
|
| api.cls.php | File | 10.44 KB | 0644 |
|
| avatar.cls.php | File | 8.68 KB | 0644 |
|
| base.cls.php | File | 34.58 KB | 0644 |
|
| cdn.cls.php | File | 15.92 KB | 0644 |
|
| cloud.cls.php | File | 65.8 KB | 0644 |
|
| conf.cls.php | File | 19.53 KB | 0644 |
|
| control.cls.php | File | 24.35 KB | 0644 |
|
| core.cls.php | File | 21.01 KB | 0644 |
|
| crawler-map.cls.php | File | 19.43 KB | 0644 |
|
| crawler.cls.php | File | 42.2 KB | 0644 |
|
| css.cls.php | File | 15.27 KB | 0644 |
|
| data.cls.php | File | 16.49 KB | 0644 |
|
| data.upgrade.func.php | File | 3.07 KB | 0644 |
|
| db-optm.cls.php | File | 10.34 KB | 0644 |
|
| debug2.cls.php | File | 14.17 KB | 0644 |
|
| doc.cls.php | File | 4.07 KB | 0644 |
|
| error.cls.php | File | 7.38 KB | 0644 |
|
| esi.cls.php | File | 27.18 KB | 0644 |
|
| file.cls.php | File | 10.57 KB | 0644 |
|
| gui.cls.php | File | 36.5 KB | 0644 |
|
| health.cls.php | File | 2.83 KB | 0644 |
|
| htaccess.cls.php | File | 24 KB | 0644 |
|
| img-optm.cls.php | File | 65.13 KB | 0644 |
|
| import.cls.php | File | 4.29 KB | 0644 |
|
| import.preset.cls.php | File | 5.5 KB | 0644 |
|
| lang.cls.php | File | 15.06 KB | 0644 |
|
| localization.cls.php | File | 3.44 KB | 0644 |
|
| media.cls.php | File | 40.37 KB | 0644 |
|
| metabox.cls.php | File | 5.32 KB | 0644 |
|
| object-cache-wp.cls.php | File | 24.67 KB | 0644 |
|
| object-cache.cls.php | File | 20.3 KB | 0644 |
|
| object.lib.php | File | 13.31 KB | 0644 |
|
| optimize.cls.php | File | 38.66 KB | 0644 |
|
| optimizer.cls.php | File | 9.41 KB | 0644 |
|
| placeholder.cls.php | File | 14.19 KB | 0644 |
|
| purge.cls.php | File | 33.95 KB | 0644 |
|
| report.cls.php | File | 6.12 KB | 0644 |
|
| rest.cls.php | File | 8.64 KB | 0644 |
|
| root.cls.php | File | 13.99 KB | 0644 |
|
| router.cls.php | File | 20.57 KB | 0644 |
|
| str.cls.php | File | 3.15 KB | 0644 |
|
| tag.cls.php | File | 9.26 KB | 0644 |
|
| task.cls.php | File | 6.13 KB | 0644 |
|
| tool.cls.php | File | 4.22 KB | 0644 |
|
| ucss.cls.php | File | 14.37 KB | 0644 |
|
| utility.cls.php | File | 21.76 KB | 0644 |
|
| vary.cls.php | File | 20.2 KB | 0644 |
|
| vpi.cls.php | File | 9.36 KB | 0644 |
|