Exemplo n.º 1
0
 /**
  * Configures Roles/Capabilities.
  *
  * @package s2Member\Roles_Caps
  * @since 110524RC
  *
  * @return null
  */
 public static function config_roles()
 {
     do_action("ws_plugin__s2member_before_config_roles", get_defined_vars());
     if (!apply_filters("ws_plugin__s2member_lock_roles_caps", false)) {
         c_ws_plugin__s2member_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_s2member_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__"]["s2member"]["c"]["levels"]; $n++) {
             for ($i = 0, $caps = array("read" => true, "level_0" => true); $i <= $n; $i++) {
                 $caps = array_merge($caps, array("access_s2member_level" . $i => true));
             }
             $caps = !empty($bbp_participant_caps) ? array_merge($caps, $bbp_participant_caps) : $caps;
             if (!($role =& get_role("s2member_level" . $n))) {
                 add_role("s2member_level" . $n, "s2Member Level " . $n);
                 $role =& get_role("s2member_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__"]["s2member"]["c"]["levels"]; $n++) {
                     $role->add_cap("access_s2member_level" . $n);
                 }
             }
         }
     }
     do_action("ws_plugin__s2member_after_config_roles", get_defined_vars());
     return;
 }
Exemplo n.º 2
0
 /**
  * Configures Roles/Capabilities.
  *
  * @package s2Member\Roles_Caps
  * @since 110524RC
  *
  * @return null
  */
 public static function config_roles()
 {
     do_action('ws_plugin__s2member_before_config_roles', get_defined_vars());
     if (!apply_filters('ws_plugin__s2member_lock_roles_caps', FALSE)) {
         c_ws_plugin__s2member_roles_caps::unlink_roles();
         if (function_exists('bbp_get_dynamic_roles') && function_exists('bbp_get_caps_for_role') && function_exists('bbp_get_participant_role')) {
             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') && function_exists('bbp_get_participant_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_s2member_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__']['s2member']['c']['levels']; $n++) {
             for ($i = 0, $caps = array('read' => TRUE, 'level_0' => TRUE); $i <= $n; $i++) {
                 $caps = array_merge($caps, array('access_s2member_level' . $i => TRUE));
             }
             $caps = !empty($bbp_participant_caps) ? array_merge($caps, $bbp_participant_caps) : $caps;
             if (!($role = get_role('s2member_level' . $n))) {
                 add_role('s2member_level' . $n, 's2Member Level ' . $n);
                 $role = get_role('s2member_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_dynamic_roles') && function_exists('bbp_get_caps_for_role') && function_exists('bbp_get_moderator_role')) {
             $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__']['s2member']['c']['levels']; $n++) {
                     $role->add_cap('access_s2member_level' . $n);
                 }
             }
         }
     }
     do_action('ws_plugin__s2member_after_config_roles', get_defined_vars());
 }
Exemplo n.º 3
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.º 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;
 }
 /**
  * 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. */
 }