PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 3.1
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v3.1
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 / ContentProtection / Frontend / Redirect.php
wp-user-avatar / src / ContentProtection / Frontend Last commit date
Checker.php 5 years ago PostContent.php 5 years ago Redirect.php 5 years ago index.php 5 years ago
Redirect.php
88 lines
1 <?php
2
3 namespace ProfilePress\Core\ContentProtection\Frontend;
4
5 use ProfilePress\Core\ContentProtection\SettingsPage;
6 use ProfilePress\Core\Classes\PROFILEPRESS_sql;
7
8 class Redirect
9 {
10 public function __construct()
11 {
12 add_action('template_redirect', [$this, 'handler']);
13 }
14
15 public function handler()
16 {
17 $metas = PROFILEPRESS_sql::get_meta_data_by_key(SettingsPage::META_DATA_KEY);
18
19 if (is_array($metas)) {
20
21 foreach ($metas as $meta) {
22
23 $meta = ppress_var($meta, 'meta_value', []);
24
25 if ( ! in_array(ppress_var($meta, 'is_active', true), ['true', true], true)) continue;
26
27 $access_condition = ppress_var($meta, 'access_condition', []);
28
29 $noaccess_action = ppress_var($access_condition, 'noaccess_action');
30
31 if ('redirect' != $noaccess_action) continue;
32
33 $redirect_url = '';
34
35 $current_url = ppress_get_current_url_query_string();
36
37 if ('custom_url' == ppress_var($access_condition, 'noaccess_action_redirect_url')) {
38 $redirect_url = ppress_var($access_condition, 'noaccess_action_redirect_custom_url');
39 }
40
41 if (empty($redirect_url)) {
42 $redirect_url = ppress_login_url($current_url);
43 }
44
45 // ----- Exclude the redirect url, login, registration, password reset and edit profile pages ------//
46 /** strtok() remove all query strings and trailing slash. @see https://stackoverflow.com/a/6975045/2648410 */
47 $comp_redirect_url = untrailingslashit(strtok($redirect_url, '?'));
48
49 $login_url = untrailingslashit(strtok(ppress_login_url(), '?'));
50 $registration_url = untrailingslashit(strtok(ppress_registration_url(), '?'));
51 $password_reset_url = untrailingslashit(strtok(ppress_password_reset_url(), '?'));
52 $edit_profile_url = untrailingslashit(strtok(ppress_edit_profile_url(), '?'));
53
54 if (strpos($current_url, $comp_redirect_url) !== false) continue;
55 if (strpos($current_url, $login_url) !== false) continue;
56 if (strpos($current_url, $registration_url) !== false) continue;
57 if (strpos($current_url, $password_reset_url) !== false) continue;
58 if (strpos($current_url, $edit_profile_url) !== false) continue;
59
60 $who_can_access = ppress_var($access_condition, 'who_can_access', 'everyone');
61
62 $access_roles = ppress_var($access_condition, 'access_roles', []);
63
64 if (Checker::content_match($meta['content'], true)) {
65
66 if (Checker::is_blocked($who_can_access, $access_roles)) {
67 wp_safe_redirect($redirect_url);
68 exit;
69 }
70
71 break;
72 };
73
74 }
75 }
76 }
77
78 public static function get_instance()
79 {
80 static $instance = null;
81
82 if (is_null($instance)) {
83 $instance = new self();
84 }
85
86 return $instance;
87 }
88 }