コード例 #1
0
 public static function deactivate()
 {
     do_action("ws_plugin__qcache_before_deactivation", get_defined_vars());
     /**/
     c_ws_plugin__qcache_wp_cache::delete_wp_cache();
     c_ws_plugin__qcache_advanced_cache::delete_advanced();
     c_ws_plugin__qcache_garbage_collection::delete_garbage_collector();
     c_ws_plugin__qcache_auto_cache::delete_auto_cache_engine();
     /**/
     if ($GLOBALS["WS_PLUGIN__"]["qcache"]["o"]["run_deactivation_routines"]) {
         delete_option("ws_plugin__qcache_activated_version");
         delete_option("ws_plugin__qcache_configured");
         delete_option("ws_plugin__qcache_notices");
         delete_option("ws_plugin__qcache_options");
     }
     /**/
     c_ws_plugin__qcache_purging_routines::purge_cache_dir(false, false, false);
     /**/
     do_action("ws_plugin__qcache_after_deactivation", get_defined_vars());
     /**/
     return;
     /* Return for uniformity. */
 }
コード例 #2
0
 public static function update_all_options($new_options = FALSE, $verified = FALSE, $update_other = TRUE, $display_notices = TRUE, $enqueue_notices = FALSE, $request_refresh = FALSE)
 {
     do_action("ws_plugin__qcache_before_update_all_options", get_defined_vars());
     /* If you use this Hook, be sure to use `wp_verify_nonce()`. */
     /**/
     if ($verified || ($nonce = $_POST["ws_plugin__qcache_options_save"]) && wp_verify_nonce($nonce, "ws-plugin--qcache-options-save")) {
         if (!is_multisite() || is_main_site() && is_super_admin()) {
             $options = $GLOBALS["WS_PLUGIN__"]["qcache"]["o"];
             /* Here we get all of the existing options. */
             $new_options = is_array($new_options) ? $new_options : (array) $_POST;
             /* Force array. */
             $new_options = c_ws_plugin__qcache_utils_strings::trim_deep(stripslashes_deep($new_options));
             /**/
             foreach ((array) $new_options as $key => $value) {
                 /* Looking for relevant keys. */
                 if (preg_match("/^" . preg_quote("ws_plugin__qcache_", "/") . "/", $key)) {
                     /**/
                     if ($key === "ws_plugin__qcache_configured") {
                         update_option("ws_plugin__qcache_configured", $value);
                         $GLOBALS["WS_PLUGIN__"]["qcache"]["c"]["configured"] = $value;
                     } else {
                         is_array($value) ? array_shift($value) : null;
                         /* Arrays should be padded. */
                         $key = preg_replace("/^" . preg_quote("ws_plugin__qcache_", "/") . "/", "", $key);
                         $options[$key] = $value;
                         /* Overriding a possible existing option. */
                     }
                 }
             }
             /**/
             $options["options_version"] = (string) ($options["options_version"] + 0.001);
             $options = ws_plugin__qcache_configure_options_and_their_defaults($options);
             /**/
             eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
             do_action("ws_plugin__qcache_during_update_all_options", get_defined_vars());
             unset($__refs, $__v);
             /* Unset defined __refs, __v. */
             /**/
             update_option("ws_plugin__qcache_options", $options);
             /**/
             $updated_all_options = true;
             /* Flag/indication. */
             /**/
             if ($update_other && $options["enabled"]) {
                 if (c_ws_plugin__qcache_wp_cache::add_wp_cache()) {
                     /* Add WP_CACHE to the config file. */
                     if (c_ws_plugin__qcache_advanced_cache::add_advanced()) {
                         /* Add the advanced-cache.php file. */
                         if (c_ws_plugin__qcache_garbage_collection::add_garbage_collector()) {
                             /* Add the garbage collector. */
                             if (c_ws_plugin__qcache_purging_routines::schedule_cache_dir_purge()) {
                                 $enabled = true;
                                 /* Mark this variable as enabled successfully. */
                                 $options["auto_cache_enabled"] ? c_ws_plugin__qcache_auto_cache::add_auto_cache_engine() : c_ws_plugin__qcache_auto_cache::delete_auto_cache_engine();
                                 if (($display_notices === true || in_array("success", (array) $display_notices)) && ($notice = '<strong>Options saved</strong>, and the cache was reset to avoid conflicts.' . ($request_refresh ? ' Please <a href="' . esc_attr($_SERVER["REQUEST_URI"]) . '">refresh</a>.' : '') . '')) {
                                     $enqueue_notices === true || in_array("success", (array) $enqueue_notices) ? c_ws_plugin__qcache_admin_notices::enqueue_admin_notice($notice, "*:*") : c_ws_plugin__qcache_admin_notices::display_admin_notice($notice);
                                 }
                             }
                         }
                     }
                 }
                 /**/
                 if (!$enabled) {
                     if (!function_exists("wp_cron")) {
                         if (($display_notices === true || in_array("success", (array) $display_notices)) && ($notice = '<strong>Error:</strong> Could NOT enable Quick Cache. Your installation of WordPress® is missing the <code>wp_cron</code> function. Some web hosts disable this intentionally. Please contact your web host for assistance.')) {
                             $enqueue_notices === true || in_array("success", (array) $enqueue_notices) ? c_ws_plugin__qcache_admin_notices::enqueue_admin_notice($notice, "*:*", true) : c_ws_plugin__qcache_admin_notices::display_admin_notice($notice, true);
                         }
                     } else {
                         if (($display_notices === true || in_array("success", (array) $display_notices)) && ($notice = '<strong>Error:</strong> Could NOT enable Quick Cache. Please check permissions on <code>/wp-config.php</code>, <code>/wp-content/</code> and <code>/wp-content/cache/</code>. Permissions need to be <code>755</code> or higher.')) {
                             $enqueue_notices === true || in_array("success", (array) $enqueue_notices) ? c_ws_plugin__qcache_admin_notices::enqueue_admin_notice($notice, "*:*", true) : c_ws_plugin__qcache_admin_notices::display_admin_notice($notice, true);
                         }
                     }
                 }
             } else {
                 if ($update_other && !$options["enabled"]) {
                     if (c_ws_plugin__qcache_wp_cache::delete_wp_cache()) {
                         /* Delete WP_CACHE from the config file. */
                         if (c_ws_plugin__qcache_advanced_cache::delete_advanced()) {
                             /* Delete the advanced-cache.php file. */
                             if (c_ws_plugin__qcache_garbage_collection::delete_garbage_collector()) {
                                 /* Delete the garbage collector. */
                                 if (c_ws_plugin__qcache_purging_routines::schedule_cache_dir_purge()) {
                                     $disabled = true;
                                     /* Mark this variable as disabled successfully. */
                                     c_ws_plugin__qcache_auto_cache::delete_auto_cache_engine();
                                     /* Delete Auto-Cache. */
                                     if (($display_notices === true || in_array("success", (array) $display_notices)) && ($notice = '<strong>Options saved.</strong> Quick Cache disabled.' . ($request_refresh ? ' Please <a href="' . esc_attr($_SERVER["REQUEST_URI"]) . '">refresh</a>.' : '') . '')) {
                                         $enqueue_notices === true || in_array("success", (array) $enqueue_notices) ? c_ws_plugin__qcache_admin_notices::enqueue_admin_notice($notice, "*:*") : c_ws_plugin__qcache_admin_notices::display_admin_notice($notice);
                                     }
                                 }
                             }
                         }
                     }
                     /**/
                     if (!$disabled) {
                         if (!function_exists("wp_cron")) {
                             if (($display_notices === true || in_array("success", (array) $display_notices)) && ($notice = '<strong>Error:</strong> Could NOT disable Quick Cache. Your installation of WordPress® is missing the <code>wp_cron</code> function. Some web hosts disable this intentionally. Please contact your web host for assistance.')) {
                                 $enqueue_notices === true || in_array("success", (array) $enqueue_notices) ? c_ws_plugin__qcache_admin_notices::enqueue_admin_notice($notice, "*:*", true) : c_ws_plugin__qcache_admin_notices::display_admin_notice($notice, true);
                             }
                         } else {
                             if (($display_notices === true || in_array("success", (array) $display_notices)) && ($notice = '<strong>Error:</strong> Could NOT disable Quick Cache. Please check permissions on <code>/wp-config.php</code>, <code>/wp-content/</code> and <code>/wp-content/cache/</code>. Permissions need to be <code>755</code> or higher.')) {
                                 $enqueue_notices === true || in_array("success", (array) $enqueue_notices) ? c_ws_plugin__qcache_admin_notices::enqueue_admin_notice($notice, "*:*", true) : c_ws_plugin__qcache_admin_notices::display_admin_notice($notice, true);
                             }
                         }
                     }
                 } else {
                     if (!$update_other) {
                         if (($display_notices === true || in_array("success", (array) $display_notices)) && ($notice = '<strong>Options saved.' . ($request_refresh ? ' Please <a href="' . esc_attr($_SERVER["REQUEST_URI"]) . '">refresh</a>.' : '') . '</strong>')) {
                             $enqueue_notices === true || in_array("success", (array) $enqueue_notices) ? c_ws_plugin__qcache_admin_notices::enqueue_admin_notice($notice, "*:*") : c_ws_plugin__qcache_admin_notices::display_admin_notice($notice);
                         }
                     }
                 }
             }
         } else {
             if (($display_notices === true || in_array("success", (array) $display_notices)) && ($notice = 'Quick Cache can ONLY be modified by a Super Administrator, while operating on the Main Site.')) {
                 $enqueue_notices === true || in_array("success", (array) $enqueue_notices) ? c_ws_plugin__qcache_admin_notices::enqueue_admin_notice($notice, "*:*", true) : c_ws_plugin__qcache_admin_notices::display_admin_notice($notice, true);
             }
         }
     }
     /**/
     do_action("ws_plugin__qcache_after_update_all_options", get_defined_vars());
     /**/
     return $updated_all_options;
     /* Return status update. */
 }
コード例 #3
0
ファイル: autoptimize.php プロジェクト: junaidkbr/autoptimize
function autoptimize_flush_pagecache($nothing)
{
    if (function_exists('wp_cache_clear_cache')) {
        if (is_multisite()) {
            $blog_id = get_current_blog_id();
            wp_cache_clear_cache($blog_id);
        } else {
            wp_cache_clear_cache();
        }
    } else {
        if (has_action('cachify_flush_cache')) {
            do_action('cachify_flush_cache');
        } else {
            if (function_exists('w3tc_pgcache_flush')) {
                w3tc_pgcache_flush();
                // w3 total cache
            } else {
                if (function_exists('hyper_cache_invalidate')) {
                    hyper_cache_invalidate();
                    // hypercache
                } else {
                    if (function_exists('wp_fast_cache_bulk_delete_all')) {
                        wp_fast_cache_bulk_delete_all();
                        // wp fast cache
                    } else {
                        if (class_exists("WpFastestCache")) {
                            $wpfc = new WpFastestCache();
                            // wp fastest cache
                            $wpfc->deleteCache();
                        } else {
                            if (class_exists("c_ws_plugin__qcache_purging_routines")) {
                                c_ws_plugin__qcache_purging_routines::purge_cache_dir();
                                // quick cache
                            } else {
                                if (file_exists(WP_CONTENT_DIR . '/wp-cache-config.php') && function_exists('prune_super_cache')) {
                                    // fallback for WP-Super-Cache
                                    global $cache_path;
                                    if (is_multisite()) {
                                        $blog_id = get_current_blog_id();
                                        prune_super_cache(get_supercache_dir($blog_id), true);
                                        prune_super_cache($cache_path . 'blogs/', true);
                                    } else {
                                        prune_super_cache($cache_path . 'supercache/', true);
                                        prune_super_cache($cache_path, true);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
コード例 #4
0
function autoptimize_flush_pagecache()
{
    if (function_exists('wp_cache_clear_cache')) {
        if (is_multisite()) {
            $blog_id = get_current_blog_id();
            wp_cache_clear_cache($blog_id);
        } else {
            wp_cache_clear_cache();
        }
    } else {
        if (has_action('cachify_flush_cache')) {
            do_action('cachify_flush_cache');
        } else {
            if (function_exists('w3tc_pgcache_flush')) {
                w3tc_pgcache_flush();
            } else {
                if (function_exists('wp_fast_cache_bulk_delete_all')) {
                    wp_fast_cache_bulk_delete_all();
                    // still to retest
                } else {
                    if (class_exists("WpFastestCache")) {
                        $wpfc = new WpFastestCache();
                        $wpfc->deleteCache();
                    } else {
                        if (class_exists("c_ws_plugin__qcache_purging_routines")) {
                            c_ws_plugin__qcache_purging_routines::purge_cache_dir();
                            // quick cache, still to retest
                        } else {
                            if (class_exists("zencache")) {
                                zencache::clear();
                            } else {
                                if (class_exists("comet_cache")) {
                                    comet_cache::clear();
                                } else {
                                    if (class_exists("WpeCommon")) {
                                        if (apply_filters('autoptimize_flush_wpengine_aggressive', false)) {
                                            if (method_exists("WpeCommon", "purge_memcached")) {
                                                WpeCommon::purge_memcached();
                                            }
                                            if (method_exists("WpeCommon", "clear_maxcdn_cache")) {
                                                WpeCommon::clear_maxcdn_cache();
                                            }
                                        }
                                        if (method_exists("WpeCommon", "purge_varnish_cache")) {
                                            WpeCommon::purge_varnish_cache();
                                        }
                                    } else {
                                        if (file_exists(WP_CONTENT_DIR . '/wp-cache-config.php') && function_exists('prune_super_cache')) {
                                            // fallback for WP-Super-Cache
                                            global $cache_path;
                                            if (is_multisite()) {
                                                $blog_id = get_current_blog_id();
                                                prune_super_cache(get_supercache_dir($blog_id), true);
                                                prune_super_cache($cache_path . 'blogs/', true);
                                            } else {
                                                prune_super_cache($cache_path . 'supercache/', true);
                                                prune_super_cache($cache_path, true);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
コード例 #5
0
 static function clearall()
 {
     if (!autoptimizeCache::cacheavail()) {
         return false;
     }
     // scan the cachedirs
     foreach (array("", "js", "css") as $scandirName) {
         $scan[$scandirName] = scandir(AUTOPTIMIZE_CACHE_DIR . $scandirName);
     }
     // clear the cachedirs
     foreach ($scan as $scandirName => $scanneddir) {
         $thisAoCacheDir = rtrim(AUTOPTIMIZE_CACHE_DIR . $scandirName, "/") . "/";
         foreach ($scanneddir as $file) {
             if (!in_array($file, array('.', '..')) && strpos($file, 'autoptimize') !== false && is_file($thisAoCacheDir . $file)) {
                 @unlink($thisAoCacheDir . $file);
             }
         }
     }
     @unlink(AUTOPTIMIZE_CACHE_DIR . "/.htaccess");
     // Do we need to clean any caching plugins cache-files?
     if (function_exists('wp_cache_clear_cache')) {
         if (is_multisite()) {
             $blog_id = get_current_blog_id();
             wp_cache_clear_cache($blog_id);
         } else {
             wp_cache_clear_cache();
         }
     } else {
         if (function_exists('w3tc_pgcache_flush')) {
             w3tc_pgcache_flush();
             // w3 total cache
         } else {
             if (function_exists('hyper_cache_invalidate')) {
                 hyper_cache_invalidate();
                 // hypercache
             } else {
                 if (function_exists('wp_fast_cache_bulk_delete_all')) {
                     wp_fast_cache_bulk_delete_all();
                     // wp fast cache
                 } else {
                     if (class_exists("WpFastestCache")) {
                         $wpfc = new WpFastestCache();
                         // wp fastest cache
                         $wpfc->deleteCache();
                     } else {
                         if (class_exists("c_ws_plugin__qcache_purging_routines")) {
                             c_ws_plugin__qcache_purging_routines::purge_cache_dir();
                             // quick cache
                         } else {
                             if (file_exists(WP_CONTENT_DIR . '/wp-cache-config.php') && function_exists('prune_super_cache')) {
                                 // fallback for WP-Super-Cache
                                 global $cache_path;
                                 if (is_multisite()) {
                                     $blog_id = get_current_blog_id();
                                     prune_super_cache(get_supercache_dir($blog_id), true);
                                     prune_super_cache($cache_path . 'blogs/', true);
                                 } else {
                                     prune_super_cache($cache_path . 'supercache/', true);
                                     prune_super_cache($cache_path, true);
                                 }
                             } else {
                                 // fallback; schedule event and try to clear there
                                 wp_schedule_single_event(time() + 1, 'ao_flush_pagecache', array(time()));
                             }
                         }
                     }
                 }
             }
         }
     }
     return true;
 }
 public static function ajax_clear()
 {
     global $current_site, $current_blog;
     /* Multisite details. */
     /**/
     do_action("ws_plugin__qcache_before_ajax_clear", get_defined_vars());
     /**/
     if (($nonce = $_POST["ws_plugin__qcache_ajax_clear"]) && wp_verify_nonce($nonce, "ws-plugin--qcache-ajax-clear")) {
         if (is_multisite() && !is_main_site() && is_object($current_blog) && $current_blog->blog_id) {
             c_ws_plugin__qcache_purging_routines::purge_cache_dir($current_blog);
             /**/
             header("Content-Type: text/plain; charset=utf-8");
             /**/
             $status = 'Cleared ( this blog )';
             /* Indicate "this blog" to the Super Admin. */
             /**/
             echo "jQuery ('input#ws-plugin--qcache-ajax-clear').css ('background-image', 'url(\\'" . c_ws_plugin__qcache_utils_strings::esc_sq($GLOBALS["WS_PLUGIN__"]["qcache"]["c"]["dir_url"]) . "/images/ajax-clear.png\\')');";
             echo "setTimeout (function (){ jQuery ('input#ws-plugin--qcache-ajax-clear').val ('Clear Cache'); }, 2000);";
             echo "jQuery ('input#ws-plugin--qcache-ajax-clear').val ('" . c_ws_plugin__qcache_utils_strings::esc_sq($status) . "');";
             echo "jQuery ('input#ws-plugin--qcache-ajax-clear').each (function (){ this.blur(); });";
         } else {
             c_ws_plugin__qcache_purging_routines::purge_cache_dir();
             /**/
             header("Content-Type: text/plain; charset=utf-8");
             /**/
             $status = is_multisite() ? 'Cleared ( all blogs )' : '( Cleared )';
             /**/
             echo "jQuery ('input#ws-plugin--qcache-ajax-clear').css ('background-image', 'url(\\'" . c_ws_plugin__qcache_utils_strings::esc_sq($GLOBALS["WS_PLUGIN__"]["qcache"]["c"]["dir_url"]) . "/images/ajax-clear.png\\')');";
             echo "setTimeout (function (){ jQuery ('input#ws-plugin--qcache-ajax-clear').val ('Clear Cache'); }, 2000);";
             echo "jQuery ('input#ws-plugin--qcache-ajax-clear').val ('" . c_ws_plugin__qcache_utils_strings::esc_sq($status) . "');";
             echo "jQuery ('input#ws-plugin--qcache-ajax-clear').each (function (){ this.blur(); });";
         }
         /**/
         do_action("ws_plugin__qcache_during_ajax_clear", get_defined_vars());
     }
     /**/
     do_action("ws_plugin__qcache_after_ajax_clear", get_defined_vars());
     /**/
     exit;
     /* Clean exit. */
 }