PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 3.2.7
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v3.2.7
4.17.2 4.17.1 4.17.0 4.16.19 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 / RestrictionShortcode.php
wp-user-avatar / src / ContentProtection / Frontend Last commit date
Checker.php 4 years ago PostContent.php 4 years ago Redirect.php 4 years ago RestrictionShortcode.php 4 years ago index.php 5 years ago
RestrictionShortcode.php
75 lines
1 <?php
2
3 namespace ProfilePress\Core\ContentProtection\Frontend;
4
5 class RestrictionShortcode
6 {
7 public function __construct()
8 {
9 add_shortcode('pp-restrict-content', [$this, 'shortcode_handler']);
10 }
11
12 public function shortcode_handler($atts, $content = null)
13 {
14 $atts = shortcode_atts(array(
15 'roles' => '',
16 'users' => '',
17 'action' => 'show' // value can be "show" or "hide"
18 ), $atts);
19
20 if ($this->rule_matches($atts['roles'], $atts['users'])) {
21 return ($atts['action'] == 'hide') ? '' : \do_shortcode($content);
22 }
23
24 return '';
25 }
26
27 public function rule_matches($roles = [], $user_ids = [])
28 {
29 if (is_user_logged_in()) {
30
31 if ( ! empty($roles)) {
32
33 $roles = array_map('sanitize_text_field', explode(',', $roles));
34
35 $user_roles = wp_get_current_user()->roles;
36
37 if ( ! empty(array_intersect($roles, $user_roles))) return true;
38 }
39
40 if ( ! empty($user_ids)) {
41
42 $user_ids = array_map('sanitize_text_field', explode(',', $user_ids));
43
44 foreach ($user_ids as $user_id) {
45
46 if (is_numeric($user_id) && get_current_user_id() == absint($user_id)) {
47 return true;
48 } else {
49 $user = get_user_by('login', $user_id);
50 if ( ! $user) {
51 $user = get_user_by('email', $user_id);
52 }
53
54 if ($user instanceof \WP_User && get_current_user_id() == absint($user->ID)) {
55 return true;
56 }
57 }
58 }
59 }
60 }
61
62 return false;
63 }
64
65 public static function get_instance()
66 {
67 static $instance = null;
68
69 if (is_null($instance)) {
70 $instance = new self();
71 }
72
73 return $instance;
74 }
75 }