/** * 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. */ }
/** * Configures Roles/Capabilities. * * @package optimizeMember\Roles_Caps * @since 110524RC * * @return null */ public static function config_roles() { do_action("ws_plugin__optimizemember_before_config_roles", get_defined_vars()); /**/ if (!apply_filters("ws_plugin__optimizemember_lock_roles_caps", false)) { c_ws_plugin__optimizemember_roles_caps::unlink_roles(); /**/ if (function_exists("bbp_get_dynamic_roles")) { foreach (bbp_get_caps_for_role(bbp_get_participant_role()) as $bbp_participant_cap => $bbp_participant_cap_is) { if ($bbp_participant_cap_is) { $bbp_participant_caps[$bbp_participant_cap] = true; } } } else { if (function_exists("bbp_get_caps_for_role")) { foreach (bbp_get_caps_for_role(bbp_get_participant_role()) as $bbp_participant_cap) { $bbp_participant_caps[$bbp_participant_cap] = true; } } } /**/ if (0 === 0) { $caps = array("read" => true, "level_0" => true); $caps = array_merge($caps, array("access_optimizemember_level0" => true)); $caps = !empty($bbp_participant_caps) ? array_merge($caps, $bbp_participant_caps) : $caps; /**/ if (!($role =& get_role("subscriber"))) { add_role("subscriber", "Subscriber"); $role =& get_role("subscriber"); } /**/ foreach (array_keys($caps) as $cap) { $role->add_cap($cap); } } /**/ for ($n = 1; $n <= $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n++) { for ($i = 0, $caps = array("read" => true, "level_0" => true); $i <= $n; $i++) { $caps = array_merge($caps, array("access_optimizemember_level" . $i => true)); } $caps = !empty($bbp_participant_caps) ? array_merge($caps, $bbp_participant_caps) : $caps; /**/ if (!($role =& get_role("optimizemember_level" . $n))) { add_role("optimizemember_level" . $n, "optimizeMember Level " . $n); $role =& get_role("optimizemember_level" . $n); } /**/ foreach (array_keys($caps) as $cap) { $role->add_cap($cap); } } /**/ $full_access_roles = array("administrator", "editor", "author", "contributor"); /**/ if (function_exists("bbp_get_caps_for_role") && !function_exists("bbp_get_dynamic_roles")) { $full_access_roles = array_merge($full_access_roles, (array) bbp_get_moderator_role()); } /**/ foreach ($full_access_roles as $role) { if ($role =& get_role($role)) { for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n++) { $role->add_cap("access_optimizemember_level" . $n); } } } } /**/ do_action("ws_plugin__optimizemember_after_config_roles", get_defined_vars()); /**/ return; /* Return for uniformity. */ }