Exemplo n.º 1
0
 /**
  * Writes no GZIP rules into root `.htaccess` file.
  *
  * @package s2Member\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__s2member_files::remove_no_gzip_from_root_htaccess()) {
         $start_line = '# BEGIN s2Member GZIP exclusions';
         // Beginning line for this entry.
         $end_line = '# END s2Member GZIP exclusions';
         // Identifying end line for this entry.
         $htaccess = ABSPATH . '.htaccess';
         // Location of this `.htaccess` file we need to write in.
         $ideally_position_before = '# BEGIN WordPress';
         // Ideally, we can position before this entry.
         $no_gzip = $start_line . "\n" . trim(c_ws_plugin__s2member_utilities::evl(file_get_contents($GLOBALS['WS_PLUGIN__']['s2member']['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 {
                 $htaccess_contents = trim($no_gzip . "\n\n" . $htaccess_contents);
             }
             // Else, let's put it at the very top of the file by default.
             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;
     // Default return `FALSE`.
 }
Exemplo n.º 2
0
 /**
  * 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());
 }
Exemplo n.º 3
0
 /**
  * Writes no GZIP rules into root `.htaccess` file.
  *
  * @package s2Member\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__s2member_files::remove_no_gzip_from_root_htaccess()) {
         $start_line = "# BEGIN s2Member GZIP exclusions";
         $end_line = "# END s2Member GZIP exclusions";
         $htaccess = ABSPATH . ".htaccess";
         $ideally_position_before = "# BEGIN WordPress";
         $no_gzip = $start_line . "\n" . trim(c_ws_plugin__s2member_utilities::evl(file_get_contents($GLOBALS["WS_PLUGIN__"]["s2member"]["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;
 }
Exemplo n.º 4
0
 /**
  * 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;
 }