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 / Membership / Models / Group / GroupEntity.php
wp-user-avatar / src / Membership / Models / Group Last commit date
GroupEntity.php 3 years ago GroupFactory.php 3 years ago index.php 3 years ago
GroupEntity.php
117 lines
1 <?php
2
3 namespace ProfilePress\Core\Membership\Models\Group;
4
5 use ProfilePress\Core\Membership\Models\AbstractModel;
6 use ProfilePress\Core\Membership\Models\ModelInterface;
7 use ProfilePress\Core\Membership\Repositories\GroupRepository;
8
9 /**
10 * @property int $id
11 * @property string $name
12 * @property string $plans_display_field
13 * @property int[] $plan_ids
14 */
15 class GroupEntity extends AbstractModel implements ModelInterface
16 {
17 protected $id = 0;
18
19 protected $name = '';
20
21 protected $plan_ids = [];
22
23 protected $plans_display_field = 'radio';
24
25 public function __construct($data = [])
26 {
27 if (is_array($data) && ! empty($data)) {
28
29 foreach ($data as $key => $value) {
30 $this->$key = $value;
31 }
32 }
33 }
34
35 /**
36 * @return bool
37 */
38 public function exists()
39 {
40 return ! empty($this->id);
41 }
42
43 /**
44 * @return int
45 */
46 public function get_id()
47 {
48 return absint($this->id);
49 }
50
51 /**
52 * @return string
53 */
54 public function get_name()
55 {
56 return $this->name;
57 }
58
59 public function get_plans_display_field()
60 {
61 return $this->plans_display_field;
62 }
63
64 /**
65 * @return int[]
66 */
67 public function get_plan_ids()
68 {
69 $plan_ids = is_array($this->plan_ids) ? $this->plan_ids : [];
70
71 return apply_filters('ppress_group_plan_ids', array_map('absint', $plan_ids), $this);
72 }
73
74 /**
75 * @return int|null
76 */
77 public function get_default_plan_id()
78 {
79 return apply_filters('ppress_default_plan_id', ppress_var($this->get_plan_ids(), 0, false), $this);
80 }
81
82 /**
83 * @return false|string
84 */
85 public function get_checkout_url()
86 {
87 $page_id = ppress_settings_by_key('checkout_page_id');
88
89 if ( ! empty($page_id)) {
90
91 return add_query_arg('group', absint($this->get_id()), get_permalink($page_id));
92 }
93
94 return false;
95 }
96
97 /**
98 * @return false|int
99 */
100 public function save()
101 {
102 if ($this->id > 0) {
103
104 $result = GroupRepository::init()->update($this);
105
106 do_action('ppress_membership_update_group', $result, $this);
107
108 return $result;
109 }
110
111 $result = GroupRepository::init()->add($this);
112
113 do_action('ppress_membership_add_group', $result, $this);
114
115 return $result;
116 }
117 }