/** * Deactivation routines for optimizeMember. * * @package optimizeMember\Installation * @since 3.5 * * @return null */ public static function deactivate() { global $wpdb; /* Global database object reference. */ global $current_site, $current_blog; /* Multisite. */ /**/ do_action("ws_plugin__optimizemember_before_deactivation", get_defined_vars()); /**/ /*THIS LINES MOVE PRO FOLDER INTO RIGHT PLACE!*/ //@rename(WP_PLUGIN_DIR.'/optimizeMember-pro', $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["dir"].'/optimizeMember-pro'); if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["run_deactivation_routines"]) { c_ws_plugin__optimizemember_roles_caps::unlink_roles(); /* Unlink Roles/Caps. */ /**/ c_ws_plugin__optimizemember_files::remove_no_gzip_from_root_htaccess(); /**/ if (is_dir($files_dir = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["files_dir"])) { if (file_exists($htaccess = $files_dir . "/.htaccess")) { if (is_writable($htaccess)) { unlink($htaccess); } } /**/ @rmdir($files_dir) . @rmdir(c_ws_plugin__optimizemember_utils_dirs::strip_dir_app_data($files_dir)); } /**/ if (is_dir($logs_dir = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["logs_dir"])) { foreach (scandir($logs_dir) as $log_file) { if (is_file($log_file = $logs_dir . "/" . $log_file)) { if (is_writable($log_file)) { unlink($log_file); } } } /**/ @rmdir($logs_dir) . @rmdir(c_ws_plugin__optimizemember_utils_dirs::strip_dir_app_data($logs_dir)); } /**/ delete_option("ws_plugin__optimizemember_cache"); delete_option("ws_plugin__optimizemember_notices"); delete_option("ws_plugin__optimizemember_options"); delete_option("ws_plugin__optimizemember_configured"); delete_option("ws_plugin__optimizemember_activated_levels"); delete_option("ws_plugin__optimizemember_activated_version"); delete_option("ws_plugin__optimizemember_activated_mms_version"); /**/ if (is_multisite() && is_main_site()) { /* Site options? */ delete_site_option("ws_plugin__optimizemember_options"); } /**/ $wpdb->query("DELETE FROM `" . $wpdb->options . "` WHERE `option_name` LIKE '%" . esc_sql(like_escape("optimizemember_")) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->options . "` WHERE `option_name` LIKE '" . esc_sql(like_escape("_transient_s2m_")) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->options . "` WHERE `option_name` LIKE '" . esc_sql(like_escape("_transient_timeout_s2m_")) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->postmeta . "` WHERE `meta_key` LIKE '%" . esc_sql(like_escape("optimizemember_")) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->usermeta . "` WHERE `meta_key` LIKE '%" . esc_sql(like_escape("optimizemember_")) . "%'"); /**/ do_action("ws_plugin__optimizemember_during_deactivation", get_defined_vars()); } /**/ do_action("ws_plugin__optimizemember_after_deactivation", get_defined_vars()); /**/ return; /* Return for uniformity. */ }
/** * Writes no GZIP rules into root `.htaccess` file. * * @package optimizeMember\Files * @since 120212 * * @return bool True if successfull, else false on any type of failure. */ public static function write_no_gzip_into_root_htaccess() { if (c_ws_plugin__optimizemember_files::remove_no_gzip_from_root_htaccess()) { $start_line = "# BEGIN optimizeMember GZIP exclusions"; $end_line = "# END optimizeMember GZIP exclusions"; $htaccess = ABSPATH . ".htaccess"; $ideally_position_before = "# BEGIN WordPress"; /**/ $no_gzip = $start_line . "\n" . trim(c_ws_plugin__optimizemember_utilities::evl(file_get_contents($GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["files_no_gzip_htaccess"]))) . "\n" . $end_line; /**/ if (file_exists($htaccess) && is_readable($htaccess) && is_writable($htaccess) && ($htaccess_contents = file_get_contents($htaccess)) !== false && is_string($htaccess_contents = trim($htaccess_contents))) { if (stripos($htaccess_contents, $ideally_position_before) !== false) { $htaccess_contents = trim(str_ireplace($ideally_position_before, $no_gzip . "\n\n" . $ideally_position_before, $htaccess_contents)); } else { /* Else, let's put it at the very top of the file by default. */ $htaccess_contents = trim($no_gzip . "\n\n" . $htaccess_contents); } /**/ return file_put_contents($htaccess, $htaccess_contents); } else { if (!file_exists($htaccess) && is_writable(dirname($htaccess))) { return file_put_contents($htaccess, $no_gzip); } } } return false; }