PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Classes / GlobalSiteAccess.php
wp-user-avatar / src / Classes Last commit date
Installer 3 years ago AdminNotices.php 1 month ago AjaxHandler.php 1 year ago Autologin.php 9 months ago BlockRegistrations.php 10 months ago BuddyPressBbPress.php 3 years ago DisableConcurrentLogins.php 2 years ago EditUserProfile.php 5 months ago ExtensionManager.php 1 month ago FileUploader.php 3 months ago FormPreviewHandler.php 5 months ago FormRepository.php 1 year ago FormShortcodeDefaults.php 1 month ago GDPR.php 3 years ago Geolocation.php 3 years ago GlobalSiteAccess.php 3 years ago ImageUploader.php 1 year ago LoginAuth.php 1 year ago Miscellaneous.php 3 years ago ModifyRedirectDefaultLinks.php 5 months ago PPRESS_Session.php 1 year ago PROFILEPRESS_sql.php 1 year ago PasswordReset.php 1 year ago ProfileUrlRewrite.php 4 years ago RegistrationAuth.php 1 week ago SendEmail.php 3 years ago ShortcodeThemeFactory.php 5 years ago UserAvatar.php 1 year ago UserSignupLocationListingPage.php 3 years ago UsernameEmailRestrictLogin.php 4 years ago WPProfileFieldParserTrait.php 1 year ago WelcomeEmailAfterSignup.php 1 year ago default-email-template.php 1 year ago index.php 3 years ago
GlobalSiteAccess.php
82 lines
1 <?php
2
3 namespace ProfilePress\Core\Classes;
4
5 class GlobalSiteAccess
6 {
7 public static function init()
8 {
9 // using wp hook because it precedes template_redirect which is used by Content protection redirect rules.
10 add_action('wp', array(__CLASS__, 'global_redirect'), -1);
11 }
12
13 /**
14 * Exclude the redirect URL.
15 * strtok() remove all query strings and trailing slash. @see https://stackoverflow.com/a/6975045/2648410
16 *
17 * @param $val
18 *
19 * @return string
20 */
21 public static function remove_query_string_trailing_slash($val)
22 {
23 return untrailingslashit(strtok($val, '?'));
24 }
25
26 public static function global_redirect()
27 {
28 if (is_admin()) return;
29
30 $access = ppress_get_setting('global_site_access', 'everyone', true);
31
32 if ('login' != $access) return;
33
34 $redirect_url = $redirect_url_page_id = ppress_get_setting('global_site_access_redirect_page');
35 $custom_redirect_url = ppress_get_setting('global_site_access_custom_redirect_page');
36
37 $excluded_pages = ppress_get_setting('global_site_access_exclude_pages', [], true);
38
39 $excluded_pages = array_map('absint', array_filter(
40 array_merge($excluded_pages, [
41 ppress_get_setting('set_login_url', false, true),
42 ppress_get_setting('set_registration_url', false, true),
43 ppress_get_setting('set_lost_password_url', false, true),
44 ])
45 )
46 );
47
48 $allow_homepage = ppress_get_setting('global_site_access_allow_homepage');
49
50 if ( ! empty($redirect_url)) {
51
52 $redirect_url = get_permalink(absint($redirect_url));
53
54 if (ppress_get_setting('set_login_url') == $redirect_url_page_id) {
55 $redirect_url = add_query_arg('redirect_to', ppress_get_current_url_query_string(), $redirect_url);
56 }
57 }
58
59 if ( ! empty($custom_redirect_url)) {
60 $redirect_url = $custom_redirect_url;
61 }
62
63 if (empty($redirect_url)) return;
64
65 $current_url = ppress_get_current_url_query_string();
66
67 // skip all wp-login urls.
68 if (strpos($current_url, 'wp-login.php') !== false) return;
69
70 if (self::remove_query_string_trailing_slash($current_url) == self::remove_query_string_trailing_slash($redirect_url)) return;
71
72 if ($allow_homepage == 'yes' && is_front_page()) return;
73
74 if ( ! empty($excluded_pages) && is_page($excluded_pages)) return;
75
76 if ( ! is_user_logged_in()) {
77 nocache_headers();
78 wp_safe_redirect($redirect_url);
79 exit;
80 }
81 }
82 }