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 / ContentProtection / ElementorDisplayCondition.php
wp-user-avatar / src / ContentProtection Last commit date
Frontend 3 months ago views 1 year ago CapabilityCheck.php 3 years ago ConditionCallbacks.php 3 years ago ConditionalBlocksIntegration.php 3 years ago ContentConditions.php 7 months ago ElementorDisplayCondition.php 1 month ago ElementorRestriction.php 3 years ago Init.php 1 month ago NavMenuProtection.php 3 years ago SettingsPage.php 1 year ago WPListTable.php 1 year ago index.php 5 years ago
ElementorDisplayCondition.php
105 lines
1 <?php
2
3 namespace ProfilePress\Core\ContentProtection;
4
5 use Elementor\Controls_Manager;
6 use ElementorPro\Modules\DisplayConditions\Classes\Comparator_Provider as CP;
7 use ElementorPro\Modules\DisplayConditions\Classes\Comparators_Checker;
8 use ElementorPro\Modules\DisplayConditions\Conditions\Base\Condition_Base;
9 use ProfilePress\Core\Membership\Models\Customer\CustomerFactory;
10 use ProfilePress\Core\Membership\Repositories\PlanRepository;
11
12 if ( ! defined('ABSPATH')) {
13 exit; // Exit if accessed directly
14 }
15
16 class ElementorDisplayCondition extends Condition_Base
17 {
18
19 public function get_name()
20 {
21 return 'profilepress_membership';
22 }
23
24 public function get_label()
25 {
26 return esc_html__('ProfilePress Membership', 'wp-user-avatar');
27 }
28
29 public function get_group()
30 {
31 return 'user';
32 }
33
34 public function check($args): bool
35 {
36 $user_id = get_current_user_id();
37
38 if (empty($args['plans'])) {
39
40 return Comparators_Checker::check_equality(
41 $args['comparator'] == CP::COMPARATOR_IS_ONE_OF ? CP::COMPARATOR_IS : CP::COMPARATOR_IS_NOT,
42 CustomerFactory::fromUserId($user_id)->has_active_subscription(),
43 true
44 );
45
46 } else {
47
48 $user_subscribed_plans = $user_id ? CustomerFactory::fromUserId($user_id)->get_active_subscriptions() : [];
49
50 if ( ! empty($user_subscribed_plans)) {
51 $user_subscribed_plans = array_map(function ($sub) {
52 return $sub->get_plan_id();
53
54 }, $user_subscribed_plans);
55 }
56
57 return Comparators_Checker::check_array_contains($args['comparator'], $user_subscribed_plans, $args['plans']);
58 }
59 }
60
61 public function get_options()
62 {
63 $comparators = CP::get_comparators(
64 [
65 CP::COMPARATOR_IS_ONE_OF,
66 CP::COMPARATOR_IS_NONE_OF,
67 ]
68 );
69
70 $this->add_control(
71 'comparator',
72 [
73 'type' => Controls_Manager::SELECT,
74 'options' => $comparators,
75 'default' => CP::COMPARATOR_IS_ONE_OF,
76 ]
77 );
78
79 $this->add_control(
80 'plans',
81 [
82 'type' => Controls_Manager::SELECT2,
83 'options' => $this->get_plan_options(),
84 'multiple' => true,
85 'default' => [],
86 ]
87 );
88 }
89
90 /**
91 * @return array
92 */
93 private function get_plan_options()
94 {
95 $options = [];
96
97 $plans = PlanRepository::init()->retrieveAll();
98
99 foreach ($plans as $plan) {
100 $options[$plan->get_id()] = $plan->get_name();
101 }
102
103 return $options;
104 }
105 }