blog_id : "1"); /* Forces the Main Site. */ /**/ return apply_filters ("ws_plugin__s2member_mms_dashboard_blog", ($dashboard_blog = $main_site), get_defined_vars ()); } /** * Allows access to the Registration Form. * * @package s2Member\Option_Forces * @since 3.5 * * @attaches-to: ``add_filter("pre_option_users_can_register");`` * * @param int|str $users_can_register Numeric (`1`) or (`0`), indicating true or false; passed through by the Filter. * @return str Numeric value of (`1`) or (`0`), indicating true or false; depending on several factors. */ public static function check_register_access ($users_can_register = FALSE) { global $wpdb; /* Global database object reference */ /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action ("ws_plugin__s2member_before_check_register_access", get_defined_vars ()); unset ($__refs, $__v); /* Unset defined __refs, __v. */ /**/ $by_default = $users_can_register = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["allow_subscribers_in"]; /**/ if (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && is_main_site ()) return apply_filters ("ws_plugin__s2member_check_register_access", ($users_can_register = "0"), get_defined_vars ()); /**/ else if (!is_admin () && !$users_can_register) /* Do NOT run these security checks on option pages; it's confusing to a site owner. */ if (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || !is_main_site () || is_super_admin () || current_user_can ("create_users")) { if ((is_multisite () && is_super_admin ()) || current_user_can ("create_users") || c_ws_plugin__s2member_register_access::reg_cookies_ok ()) { return apply_filters ("ws_plugin__s2member_check_register_access", ($users_can_register = "1"), get_defined_vars ()); } } /**/ return apply_filters ("ws_plugin__s2member_check_register_access", $users_can_register, get_defined_vars ()); } /** * Allows access to the main Multisite Registration Form. * * @package s2Member\Option_Forces * @since 3.5 * * @attaches-to: ``add_filter("pre_site_option_registration");`` * * @param str $users_can_register Expects *( `none`, `all`, or `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__s2member_before_check_register_access", get_defined_vars ()); unset ($__refs, $__v); /* Unset defined __refs, __v. */ /**/ $by_default = $users_can_register = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_registration_grants"]; /**/ if (c_ws_plugin__s2member_utils_conds::bp_is_installed () && is_multisite () && /* BP Multisite / but NOT offering Blogs? */ !c_ws_plugin__s2member_utils_conds::is_multisite_farm ()) return apply_filters ("ws_plugin__s2member_check_mms_register_access", ($users_can_register = ((c_ws_plugin__s2member_option_forces::check_register_access ()) ? "user" : "none")), get_defined_vars ()); /**/ else if (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || !is_main_site ()) /* Blog Farm? */ return apply_filters ("ws_plugin__s2member_check_mms_register_access", ($users_can_register = "none"), get_defined_vars ()); /**/ else if (!is_admin () && $users_can_register !== "all") /* Do NOT run these checks on option pages; it's confusing to a site owner. */ { if (is_super_admin () || current_user_can ("create_users") || (($reg_cookies = c_ws_plugin__s2member_register_access::reg_cookies_ok ()) && extract ($reg_cookies))) { if (is_super_admin () || current_user_can ("create_users")) /* Either a Super Administrator, or an Administrator that can create. */ { return apply_filters ("ws_plugin__s2member_check_mms_register_access", ($users_can_register = "all"), get_defined_vars ()); } else if (!empty ($reg_cookies) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $item_number, $m) && !empty ($m[1]) && is_numeric ($level = $m[1])) { if (!empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_registration_blogs_level" . $level])) /* Blog(s)? */ { return apply_filters ("ws_plugin__s2member_check_mms_register_access", ($users_can_register = "all"), get_defined_vars ()); } else /* Otherwise, we MUST allow them to at least create an account; they paid for it! Defaults to `user`. */ { return apply_filters ("ws_plugin__s2member_check_mms_register_access", ($users_can_register = "user"), get_defined_vars ()); } } } /* --------------------> $users_can_register !== "all", so exclude Level #0. */ else if (is_user_logged_in () && current_user_can ("access_s2member_level1") && is_object ($user = wp_get_current_user ()) && $user->ID) { $blogs_allowed = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_registration_blogs_level" . c_ws_plugin__s2member_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) /* Are they within their limit? */ { return apply_filters ("ws_plugin__s2member_check_mms_register_access", ($users_can_register = "all"), get_defined_vars ()); } } } /**/ else if (!is_admin () && $users_can_register === "all") /* Do NOT run these security checks on option pages; it's confusing to a site owner. */ { if (is_user_logged_in () && is_object ($user = wp_get_current_user ()) && $user->ID) { $blogs_allowed = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_registration_blogs_level" . c_ws_plugin__s2member_user_access::user_access_level ()]; $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) /* Are they at their limit? */ { return apply_filters ("ws_plugin__s2member_check_mms_register_access", ($users_can_register = "none"), get_defined_vars ()); } } } /**/ return apply_filters ("ws_plugin__s2member_check_mms_register_access", $users_can_register, get_defined_vars ()); } /** * Register access in BuddyPress, for Multisite compatibility. * * BuddyPress bypasses the default Filter `pre_site_option_registration`, and instead uses: ``bp_core_get_site_options()``. * * @package s2Member\Option_Forces * @since 3.5 * * @attaches-to: ``add_filter("bp_core_get_site_options");`` * * @param array $site_options Expects array of BuddyPress site options. * @return array Site options array, after having been Filtered by this routine. */ public static function check_bp_mms_register_access ($site_options = FALSE) { if (is_multisite ()) /* Only if Multisite Networking is enabled. Pointless otherwise. */ $site_options["registration"] = c_ws_plugin__s2member_option_forces::check_mms_register_access ($site_options["registration"]); /**/ return apply_filters ("ws_plugin__s2member_check_bp_mms_register_access", $site_options, get_defined_vars ()); } } } ?>