Beispiel #1
0
 /**
  * Allows access to the main Multisite Registration Form.
  *
  * @package optimizeMember\Option_Forces
  * @since 3.5
  *
  * @attaches-to ``add_filter("pre_site_option_registration");``
  *
  * @param str $users_can_register Expects *( `none`, `all`, `blog`, `user` )*, passed through by the Filter.
  * @return str One of `none|all|user`; depending on several factors.
  */
 public static function check_mms_register_access($users_can_register = FALSE)
 {
     global $wpdb;
     /* Global database object reference */
     global $current_site, $current_blog;
     /* For Multisite support. */
     /**/
     eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
     do_action("ws_plugin__optimizemember_before_check_register_access", get_defined_vars());
     unset($__refs, $__v);
     /* Unset defined __refs, __v. */
     /**/
     $by_default = $users_can_register = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["mms_registration_grants"];
     /**/
     if (c_ws_plugin__optimizemember_utils_conds::bp_is_installed() && is_multisite() && !c_ws_plugin__optimizemember_utils_conds::is_multisite_farm()) {
         return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = c_ws_plugin__optimizemember_option_forces::check_register_access() ? "user" : "none", get_defined_vars());
     } else {
         if (!is_multisite() || !c_ws_plugin__optimizemember_utils_conds::is_multisite_farm()) {
             /* Blog Farm? */
             return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = "none", get_defined_vars());
         } else {
             if (!is_network_admin() && $users_can_register !== "all") {
                 if (is_main_site() && current_user_can("create_users") || is_super_admin()) {
                     return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = "all", get_defined_vars());
                 } else {
                     if (is_user_logged_in() && is_object($user = wp_get_current_user()) && $user->ID && is_object($user = new WP_User($user->ID, $current_site->blog_id)) && $user->ID && $user->has_cap("access_optimizemember_level1")) {
                         $mms_options = c_ws_plugin__optimizemember_utilities::mms_options();
                         $blogs_allowed = (int) @$mms_options["mms_registration_blogs_level" . c_ws_plugin__optimizemember_user_access::user_access_level($user)];
                         $user_blogs = is_array($blogs = get_blogs_of_user($user->ID)) ? count($blogs) - 1 : 0;
                         /**/
                         $user_blogs = $user_blogs >= 0 ? $user_blogs : 0;
                         /* NOT less than zero. */
                         $blogs_allowed = $blogs_allowed >= 0 ? $blogs_allowed : 0;
                         /**/
                         if ($user_blogs < $blogs_allowed) {
                             return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = "all", get_defined_vars());
                         }
                     } else {
                         if (!is_user_logged_in() && is_main_site() && ($reg_cookies = c_ws_plugin__optimizemember_register_access::reg_cookies_ok()) && extract($reg_cookies)) {
                             if (preg_match($GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["membership_item_number_w_level_regex"], $item_number, $m) && !empty($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["mms_registration_blogs_level" . $m[1]])) {
                                 return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = "all", get_defined_vars());
                             } else {
                                 return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = "user", get_defined_vars());
                             }
                         }
                     }
                 }
             } else {
                 if (!is_network_admin() && $users_can_register === "all") {
                     if (is_user_logged_in() && !(is_main_site() && current_user_can("create_users")) && !is_super_admin() && is_object($user = wp_get_current_user()) && $user->ID && is_object($user = new WP_User($user->ID, $current_site->blog_id)) && $user->ID) {
                         $mms_options = c_ws_plugin__optimizemember_utilities::mms_options();
                         $blogs_allowed = (int) @$mms_options["mms_registration_blogs_level" . c_ws_plugin__optimizemember_user_access::user_access_level($user)];
                         $user_blogs = is_array($blogs = get_blogs_of_user($user->ID)) ? count($blogs) - 1 : 0;
                         /**/
                         $user_blogs = $user_blogs >= 0 ? $user_blogs : 0;
                         /* NOT less than zero. */
                         $blogs_allowed = $blogs_allowed >= 0 ? $blogs_allowed : 0;
                         /**/
                         if ($user_blogs >= $blogs_allowed) {
                             return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register = "none", get_defined_vars());
                         }
                     }
                 }
             }
         }
     }
     /**/
     return apply_filters("ws_plugin__optimizemember_check_mms_register_access", $users_can_register, get_defined_vars());
 }