public static function activate() { do_action("ws_plugin__qcache_before_activation", get_defined_vars()); /**/ !is_numeric(get_option("ws_plugin__qcache_configured")) ? update_option("ws_plugin__qcache_configured", "0") : null; !is_array(get_option("ws_plugin__qcache_notices")) ? update_option("ws_plugin__qcache_notices", array()) : null; !is_array(get_option("ws_plugin__qcache_options")) ? update_option("ws_plugin__qcache_options", array()) : null; /**/ if ($GLOBALS["WS_PLUGIN__"]["qcache"]["c"]["configured"] && $GLOBALS["WS_PLUGIN__"]["qcache"]["o"]["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(false, false, false)) { $re_activated = true; /* Set this variable has having been re-activated successfully. */ $GLOBALS["WS_PLUGIN__"]["qcache"]["o"]["auto_cache_enabled"] ? c_ws_plugin__qcache_auto_cache::add_auto_cache_engine() : c_ws_plugin__qcache_auto_cache::delete_auto_cache_engine(); c_ws_plugin__qcache_admin_notices::enqueue_admin_notice('<strong>Quick Cache</strong> has been <strong>re-activated</strong> with the latest version. The cache has been reset automatically to avoid conflicts :-)', array("blog|network:plugins.php", "blog|network:ws-plugin--qcache-options")); } } } } /**/ if (!$re_activated) { c_ws_plugin__qcache_admin_notices::enqueue_admin_notice('<strong>Quick Cache</strong> Please go to <code>Quick Cache -> Config Options</code>. You\'ll need to disable, and then re-enable Quick Cache, to complete the upgrade process.', array("blog|network:plugins.php", "blog|network:ws-plugin--qcache-options"), true); } } /**/ update_option("ws_plugin__qcache_activated_version", WS_PLUGIN__QCACHE_VERSION); /**/ do_action("ws_plugin__qcache_after_activation", get_defined_vars()); /**/ return; /* Return for uniformity. */ }
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. */ }