X7ROOT File Manager
Current Path:
/var/softaculous/sitepad/editor/site-data/plugins/speedycache/main
var
/
softaculous
/
sitepad
/
editor
/
site-data
/
plugins
/
speedycache
/
main
/
??
..
??
admin.php
(8.43 KB)
??
advanced-cache.php
(6.47 KB)
??
ajax.php
(30.26 KB)
??
cache.php
(15.15 KB)
??
cdn.php
(8.19 KB)
??
css.php
(6.21 KB)
??
delete.php
(13.59 KB)
??
gravatar.php
(3.12 KB)
??
htaccess.php
(8.46 KB)
??
install.php
(4.61 KB)
??
js.php
(5.87 KB)
??
preload.php
(3.37 KB)
??
promo.php
(1.79 KB)
??
settings.php
(100.6 KB)
??
util.php
(8.47 KB)
Editing: admin.php
<?php namespace SpeedyCache; if(!defined('ABSPATH')){ die('HACKING ATTEMPT!'); } use \SpeedyCache\Util; class Admin{ static $conflicting_plugins = []; static function hooks(){ //NOTE:: Most actions will go here if(current_user_can('manage_options')){ add_action('admin_notices', '\SpeedyCache\Admin::combitibility_notice'); add_action('admin_menu', '\SpeedyCache\Admin::list_menu'); do_action('speedycache_pro_admin_hooks'); // adds hooks for the pro-version. if(!defined('SITEPAD')){ self::notices(); } } if(self::user_can_delete_cache()){ add_action('admin_post_speedycache_delete_cache', '\SpeedyCache\Admin::delete_cache'); add_action('admin_post_speedycache_delete_single', '\SpeedyCache\Admin::delete_single'); add_action('admin_post_speedycache_delete_single_url', '\SpeedyCache\Admin::delete_single_url'); $post_types = ['post', 'page', 'category', 'tag']; foreach($post_types as $post_type){ add_filter($post_type.'_row_actions', '\SpeedyCache\Admin::delete_link', 10, 2); } } } static function list_menu(){ global $speedycache; $capability = 'activate_plugins'; //$speedycache->settings['disabled_tabs'] = apply_filters('speedycache_disabled_tabs', []); $url = SPEEDYCACHE_URL.'/assets/images/'. (defined('SITEPAD') ? 'grey-icon.svg' : 'icon.svg'); $hooknames[] = add_menu_page('SpeedyCache Settings', 'SpeedyCache', $capability, 'speedycache', '\SpeedyCache\Settings::base', $url); foreach($hooknames as $hookname){ add_action('load-'.$hookname, '\SpeedyCache\Admin::load_assets'); } } static function load_assets(){ add_action('admin_enqueue_scripts', '\SpeedyCache\Admin::enqueue_scripts'); } // Enqueues Admin CSS on load of the page static function enqueue_scripts(){ wp_enqueue_style('speedycache-admin', SPEEDYCACHE_URL.'/assets/css/admin.css', [], SPEEDYCACHE_VERSION); wp_enqueue_script('speedycache-admin', SPEEDYCACHE_URL . '/assets/js/admin.js', [], SPEEDYCACHE_VERSION); wp_localize_script('speedycache-admin', 'speedycache_ajax', [ 'url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('speedycache_ajax_nonce'), 'premium' => defined('SPEEDYCACHE_PRO'), ]); } // Post action to delete cache through Manage cache options. static function delete_cache(){ check_admin_referer('speedycache_post_nonce'); if(!self::user_can_delete_cache()){ wp_die(esc_html__('You do not have a required privilege', 'speedycache')); } $delete['minified'] = isset($_REQUEST['minified']); $delete['font'] = isset($_REQUEST['font']); $delete['gravatars'] = isset($_REQUEST['gravatars']); $delete['domain'] = isset($_REQUEST['domain']); $delete['preload'] = isset($_REQUEST['preload_cache']); \SpeedyCache\Delete::run($delete); $redirect_to = esc_url_raw(wp_unslash($_REQUEST['_wp_http_referer'])); wp_safe_redirect($redirect_to); die(); } static function delete_single(){ check_admin_referer('speedycache_post_nonce', 'security'); if(!self::user_can_delete_cache()){ wp_die(esc_html__('You do not have a required privilege', 'speedycache')); } $post_id = Util::sanitize_get('post_id'); \SpeedyCache\Delete::cache($post_id); $redirect_to = esc_url_raw(wp_unslash($_REQUEST['referer'])); wp_safe_redirect($redirect_to); die(); } static function delete_single_url(){ check_admin_referer('speedycache_post_nonce', 'security'); if(!self::user_can_delete_cache()){ wp_die(esc_html__('You do not have a required privilege', 'speedycache')); } $url = esc_url_raw(wp_unslash($_REQUEST['referer'])); \SpeedyCache\Delete::url($url); wp_safe_redirect($url); die(); } static function combitibility_notice(){ $incompatible_plugins = [ 'wp-rocket/wp-rocket.php' => 'WP Rocket', 'wp-super-cache/wp-cache.php' => 'WP Super Cache', 'litespeed-cache/litespeed-cache.php' => 'LiteSpeed Cache', 'swift-performance-lite/performance.php' => 'Swift Performance Lite', 'swift-performance/performance.php' => 'Swift Performance', 'wp-fastest-cache/wpFastestCache.php' => 'WP Fastest Cache', 'wp-optimize/wp-optimize.php' => 'WP Optimize', 'w3-total-cache/w3-total-cache.php' => 'W3 Total Cache', 'flyingpress/flyingpress.php' => 'FlyingPress', ]; $conflicting_plugins = []; foreach($incompatible_plugins as $plugin_path => $plugin_name){ if(is_plugin_active($plugin_path)){ $conflicting_plugins[] = $plugin_name; } } if(empty($conflicting_plugins)){ return; } echo '<div class="notice notice-warning is-dismissible"> <h3>Conflicting Plugins</h3> <p>'.esc_html__('You have activated plugins that conflict with SpeedyCache. We recommend deactivating these plugins to ensure SpeedyCache functions properly.', 'speedycache').'</p> <ol>'; foreach($conflicting_plugins as $plugin){ echo '<li>'.esc_html($plugin).'</li>'; } echo '</ol></div>'; } static function delete_link($actions, $post){ if(!self::user_can_delete_cache()){ return; } $request_url = remove_query_arg( '_wp_http_referer' ); $actions['speedycache_delete'] = '<a href="'.admin_url('admin-post.php?action=speedycache_delete_single&post_id='.$post->ID.'&security='.wp_create_nonce('speedycache_post_nonce')).'&referer='.esc_url($request_url).'">'.esc_html__('Delete Cache', 'speedycache').'</a>'; return $actions; } static function admin_bar($admin_bar){ global $post; if(!self::user_can_delete_cache()){ return; } $request_url = remove_query_arg('_wp_http_referer'); $admin_bar->add_menu([ 'id' => 'speedycache-adminbar', 'title' => __('SpeedyCache', 'speedycache'), ]); $admin_bar->add_menu(array( 'id' => 'speedycache-adminbar-delete-all', 'title' => __('Delete all Cache', 'speedycache'), 'parent' => 'speedycache-adminbar', 'href' => wp_nonce_url(admin_url('admin-post.php?action=speedycache_delete_cache&_wp_http_referer='.esc_url($request_url)), 'speedycache_post_nonce'), 'meta' => ['class' => 'speedycache-adminbar-options'] )); $admin_bar->add_menu(array( 'id' => 'speedycache-adminbar-delete-minified', 'title' => __('Delete Cache and Minified', 'speedycache'), 'parent' => 'speedycache-adminbar', 'href' => wp_nonce_url(admin_url('admin-post.php?action=speedycache_delete_cache&minified=true&_wp_http_referer='.esc_url($request_url)), 'speedycache_post_nonce'), 'meta' => ['class' => 'speedycache-adminbar-options'] )); if(!is_admin()){ $admin_bar->add_menu(array( 'id' => 'speedycache-adminbar-delete', 'parent' => 'speedycache-adminbar', 'title' => __('Clear this page\'s cache', 'speedycache'), 'href' => wp_nonce_url(admin_url('admin-post.php?action=speedycache_delete_single_url&referer='.esc_url($request_url)), 'speedycache_post_nonce', 'security'), 'meta' => ['class' => 'speedycache-adminbar-options'] )); } } // Checks if the current users role is allowed static function user_can_delete_cache(){ $allowed_roles = get_option('speedycache_deletion_roles', []); array_push($allowed_roles, 'administrator'); // admin is default $user = wp_get_current_user(); if(!array_intersect($allowed_roles, $user->roles)){ return false; } return true; } static function update_notice_filter($plugins = []){ $plugins['speedycache/speedycache.php'] = 'SpeedyCache'; return $plugins; } static function notices(){ // === Plugin Update Notice === // $plugin_update_notice = get_option('softaculous_plugin_update_notice', []); $available_update_list = get_site_transient('update_plugins'); $plugin_path_slug = 'speedycache/speedycache.php'; if( !empty($available_update_list) && is_object($available_update_list) && !empty($available_update_list->response) && !empty($available_update_list->response[$plugin_path_slug]) && (empty($plugin_update_notice) || empty($plugin_update_notice[$plugin_path_slug]) || (!empty($plugin_update_notice[$plugin_path_slug]) && version_compare($plugin_update_notice[$plugin_path_slug], $available_update_list->response[$plugin_path_slug]->new_version, '<'))) ){ add_action('admin_notices', '\SpeedyCache\Promo::update_notice'); add_filter('softaculous_plugin_update_notice', '\SpeedyCache\Admin::update_notice_filter'); } // === Plugin Update Notice === // } }
Upload File
Create Folder