/** * Updates Roles/Capabilities via AJAX. * * @package s2Member\Roles_Caps * @since 110524RC * * @attaches-to ``add_action('wp_ajax_ws_plugin__s2member_update_roles_via_ajax');`` */ public static function update_roles_via_ajax() { do_action('ws_plugin__s2member_before_update_roles_via_ajax', get_defined_vars()); status_header(200); // Send a 200 OK status header. header('Content-Type: text/plain; charset=UTF-8'); // Content-Type with UTF-8. while (@ob_end_clean()) { } // Clean any existing output buffers. if (current_user_can('create_users')) { // Check privileges. Ability to create Users? if (!empty($_POST['ws_plugin__s2member_update_roles_via_ajax'])) { if ($nonce = $_POST['ws_plugin__s2member_update_roles_via_ajax']) { if (wp_verify_nonce($nonce, 'ws-plugin--s2member-update-roles-via-ajax')) { if (!apply_filters('ws_plugin__s2member_lock_roles_caps', FALSE)) { c_ws_plugin__s2member_roles_caps::config_roles(); $success = TRUE; // Roles updated. } else { // Else flag as having been locked here. $locked = TRUE; } } } } } exit(apply_filters('ws_plugin__s2member_update_roles_via_ajax', isset($success) && $success ? '1' : (isset($locked) && $locked ? 'l' : '0'), get_defined_vars())); }
/** * Uninstall routines for s2Member. * * @package s2Member\Installation * @since 3.5 */ public static function uninstall() { global $wpdb; /** @var $wpdb wpdb */ global $current_site, $current_blog; // Multisite. do_action('ws_plugin__s2member_before_uninstall', get_defined_vars()); if ($GLOBALS['WS_PLUGIN__']['s2member']['o']['run_uninstall_routines']) { c_ws_plugin__s2member_roles_caps::unlink_roles(); c_ws_plugin__s2member_files::remove_no_gzip_from_root_htaccess(); if (is_dir($files_dir = $GLOBALS['WS_PLUGIN__']['s2member']['c']['files_dir'])) { if (file_exists($htaccess = $files_dir . '/.htaccess')) { if (is_writable($htaccess)) { unlink($htaccess); } } @rmdir($files_dir) . @rmdir(c_ws_plugin__s2member_utils_dirs::strip_dir_app_data($files_dir)); } if (is_dir($logs_dir = $GLOBALS['WS_PLUGIN__']['s2member']['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__s2member_utils_dirs::strip_dir_app_data($logs_dir)); } delete_option('ws_plugin__s2member_cache'); delete_option('ws_plugin__s2member_notices'); delete_option('ws_plugin__s2member_options'); delete_option('ws_plugin__s2member_configured'); delete_option('ws_plugin__s2member_activated_levels'); delete_option('ws_plugin__s2member_activated_version'); delete_option('ws_plugin__s2member_activated_mms_version'); if (is_multisite() && is_main_site()) { delete_site_option('ws_plugin__s2member_options'); } $wpdb->query("DELETE FROM `" . $wpdb->postmeta . "` WHERE `meta_key` LIKE '" . esc_sql(c_ws_plugin__s2member_utils_strings::like_escape('s2m_')) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->postmeta . "` WHERE `meta_key` LIKE '%" . esc_sql(c_ws_plugin__s2member_utils_strings::like_escape('_s2m_')) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->postmeta . "` WHERE `meta_key` LIKE '%" . esc_sql(c_ws_plugin__s2member_utils_strings::like_escape('s2member_')) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->usermeta . "` WHERE `meta_key` LIKE '" . esc_sql(c_ws_plugin__s2member_utils_strings::like_escape('s2m_')) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->usermeta . "` WHERE `meta_key` LIKE '%" . esc_sql(c_ws_plugin__s2member_utils_strings::like_escape('_s2m_')) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->usermeta . "` WHERE `meta_key` LIKE '%" . esc_sql(c_ws_plugin__s2member_utils_strings::like_escape('s2member_')) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->options . "` WHERE `option_name` LIKE '" . esc_sql(c_ws_plugin__s2member_utils_strings::like_escape('s2m_')) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->options . "` WHERE `option_name` LIKE '%" . esc_sql(c_ws_plugin__s2member_utils_strings::like_escape('_s2m_')) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->options . "` WHERE `option_name` LIKE '%" . esc_sql(c_ws_plugin__s2member_utils_strings::like_escape('s2member_')) . "%'"); do_action('ws_plugin__s2member_during_uninstall', get_defined_vars()); } do_action('ws_plugin__s2member_after_uninstall', get_defined_vars()); }
/** * Updates Roles/Capabilities via AJAX. * * @package s2Member\Roles_Caps * @since 110524RC * * @attaches-to ``add_action("wp_ajax_ws_plugin__s2member_update_roles_via_ajax");`` * * @return null Exits script execution after output for AJAX caller. */ public static function update_roles_via_ajax() { do_action("ws_plugin__s2member_before_update_roles_via_ajax", get_defined_vars()); /**/ status_header(200); /* Send a 200 OK status header. */ header("Content-Type: text/plain; charset=utf-8"); /* Content-Type with UTF-8. */ eval('while (@ob_end_clean ());'); /* End/clean all output buffers that may exist. */ /**/ if (current_user_can("create_users")) { /* Check priveledges. Ability to create Users? */ /**/ if (!empty($_POST["ws_plugin__s2member_update_roles_via_ajax"])) { if ($nonce = $_POST["ws_plugin__s2member_update_roles_via_ajax"]) { if (wp_verify_nonce($nonce, "ws-plugin--s2member-update-roles-via-ajax")) { /**/ if (!apply_filters("ws_plugin__s2member_lock_roles_caps", false)) { c_ws_plugin__s2member_roles_caps::config_roles(); $success = true; /* Roles updated. */ } else { /* Else flag as having been locked here. */ $locked = true; } } } } } /**/ exit(apply_filters("ws_plugin__s2member_update_roles_via_ajax", isset($success) && $success ? "1" : (isset($locked) && $locked ? "l" : "0"), get_defined_vars())); }
/** * Deactivation routines for s2Member. * * @package s2Member\Installation * @since 3.5 * * @return null */ public static function deactivate() { global $wpdb; global $current_site, $current_blog; do_action("ws_plugin__s2member_before_deactivation", get_defined_vars()); if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["run_deactivation_routines"]) { c_ws_plugin__s2member_roles_caps::unlink_roles(); c_ws_plugin__s2member_files::remove_no_gzip_from_root_htaccess(); if (is_dir($files_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) { if (file_exists($htaccess = $files_dir . "/.htaccess")) { if (is_writable($htaccess)) { unlink($htaccess); } } @rmdir($files_dir) . @rmdir(c_ws_plugin__s2member_utils_dirs::strip_dir_app_data($files_dir)); } if (is_dir($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["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__s2member_utils_dirs::strip_dir_app_data($logs_dir)); } delete_option("ws_plugin__s2member_cache"); delete_option("ws_plugin__s2member_notices"); delete_option("ws_plugin__s2member_options"); delete_option("ws_plugin__s2member_configured"); delete_option("ws_plugin__s2member_activated_levels"); delete_option("ws_plugin__s2member_activated_version"); delete_option("ws_plugin__s2member_activated_mms_version"); if (is_multisite() && is_main_site()) { delete_site_option("ws_plugin__s2member_options"); } $wpdb->query("DELETE FROM `" . $wpdb->options . "` WHERE `option_name` LIKE '%" . esc_sql(like_escape("s2member_")) . "%'"); $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("s2member_")) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->usermeta . "` WHERE `meta_key` LIKE '%" . esc_sql(like_escape("s2member_")) . "%'"); do_action("ws_plugin__s2member_during_deactivation", get_defined_vars()); } do_action("ws_plugin__s2member_after_deactivation", get_defined_vars()); return; }
/** * Deactivation routines for s2Member. * * @package s2Member\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__s2member_before_deactivation", get_defined_vars()); /**/ if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["run_deactivation_routines"]) { c_ws_plugin__s2member_roles_caps::unlink_roles(); /* Unlink Roles/Caps. */ /**/ if (is_dir($files_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) { if (file_exists($htaccess = $files_dir . "/.htaccess")) { if (is_writable($htaccess)) { unlink($htaccess); } } /**/ @rmdir($files_dir) . @rmdir(c_ws_plugin__s2member_utils_dirs::strip_dir_app_data($files_dir)); } /**/ if (is_dir($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["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__s2member_utils_dirs::strip_dir_app_data($logs_dir)); } /**/ delete_option("ws_plugin__s2member_cache"); delete_option("ws_plugin__s2member_notices"); delete_option("ws_plugin__s2member_options"); delete_option("ws_plugin__s2member_configured"); delete_option("ws_plugin__s2member_activated_levels"); delete_option("ws_plugin__s2member_activated_version"); delete_option("ws_plugin__s2member_activated_mms_version"); /**/ if (is_multisite() && is_main_site()) { /* Site options? */ delete_site_option("ws_plugin__s2member_options"); } /**/ $wpdb->query("DELETE FROM `" . $wpdb->options . "` WHERE `option_name` LIKE '%" . esc_sql(like_escape("s2member_")) . "%'"); $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("s2member_")) . "%'"); $wpdb->query("DELETE FROM `" . $wpdb->usermeta . "` WHERE `meta_key` LIKE '%" . esc_sql(like_escape("s2member_")) . "%'"); /**/ do_action("ws_plugin__s2member_during_deactivation", get_defined_vars()); } /**/ do_action("ws_plugin__s2member_after_deactivation", get_defined_vars()); /**/ return; /* Return for uniformity. */ }