PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.16.19
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.16.19
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 / Themes / DragDrop / ProfileFieldListing.php
wp-user-avatar / src / Themes / DragDrop Last commit date
EditProfile 5 years ago Login 3 years ago MemberDirectory 8 months ago PasswordReset 5 years ago Registration 3 years ago UserProfile 1 year ago AbstractBuildScratch.php 8 months ago AbstractMemberDirectoryTheme.php 4 months ago AbstractTheme.php 11 months ago FieldListing.php 8 months ago MemberDirectoryListing.php 2 months ago MemberDirectoryTrait.php 1 year ago ProfileFieldListing.php 2 months ago ThemeInterface.php 5 years ago ThemesRepository.php 1 year ago index.php 5 years ago
ProfileFieldListing.php
198 lines
1 <?php
2
3 namespace ProfilePress\Core\Themes\DragDrop;
4
5 use ProfilePress\Core\Base;
6 use ProfilePress\Core\Classes\FormRepository as FR;
7 use ProfilePress\Core\Classes\PROFILEPRESS_sql;
8 use ProfilePress\Core\Membership\CheckoutFields;
9
10 class ProfileFieldListing
11 {
12 private $form_id;
13 private $field_settings = [];
14
15 private $has_field_data = false;
16
17 private $item_wrap_start_tag = '';
18 private $item_wrap_end_tag = '';
19 private $title_start_tag = '';
20 private $title_end_tag = '';
21 private $info_start_tag = '';
22 private $info_end_tag = '';
23
24 private $output = '';
25
26 private $defaults;
27
28 public function __construct($form_id)
29 {
30 $this->form_id = $form_id;
31
32 $this->field_settings = FR::form_builder_fields_settings($form_id, FR::USER_PROFILE_TYPE);
33 }
34
35 public function defaults($defaults)
36 {
37 $this->defaults = $defaults;
38
39 return $this;
40 }
41
42 public function item_wrap_start_tag($tag)
43 {
44 $this->item_wrap_start_tag = $tag;
45
46 return $this;
47 }
48
49 public function item_wrap_end_tag($tag)
50 {
51 $this->item_wrap_end_tag = $tag;
52
53 return $this;
54 }
55
56 public function title_start_tag($tag)
57 {
58 $this->title_start_tag = $tag;
59
60 return $this;
61 }
62
63 public function title_end_tag($tag)
64 {
65 $this->title_end_tag = $tag;
66
67 return $this;
68 }
69
70 public function info_start_tag($tag)
71 {
72 $this->info_start_tag = $tag;
73
74 return $this;
75 }
76
77 public function info_end_tag($tag)
78 {
79 $this->info_end_tag = $tag;
80
81 return $this;
82 }
83
84 public function has_field_data()
85 {
86 return $this->has_field_data;
87 }
88
89 public function forge()
90 {
91 $output = '';
92
93 foreach ($this->field_settings as $field_setting) {
94
95 $field_type = $field_setting['fieldType'];
96
97 if (isset($this->defaults, $this->defaults[$field_type])) {
98 $field_setting = wp_parse_args($field_setting, $this->defaults[$field_type]);
99 }
100
101 $field_title = isset($field_setting['label']) ? $field_setting['label'] : '';
102
103 $field_key = '';
104
105 if ($field_type == 'profile-cpf') {
106
107 if ( ! empty($field_setting['field_key']) && ! empty($field_setting['label'])) {
108 $field_key = $field_setting['field_key'];
109
110 $field_type = $field_type . ' key="' . $field_key . '"';
111
112 } elseif ( ! empty($field_setting['custom_field'])) {
113
114 $field_key = $field_setting['custom_field'];
115
116 $custom_field_title = PROFILEPRESS_sql::get_field_label($field_key);
117
118 if ( ! $custom_field_title) {
119 $custom_field_title = PROFILEPRESS_sql::get_contact_info_field_label($field_key);
120 }
121
122 if ( ! empty($custom_field_title)) $field_title = $custom_field_title;
123
124 $field_type = $field_type . ' key="' . $field_key . '"';
125 }
126 }
127
128 if ($field_type == 'profile-display-name') {
129
130 if ( ! empty($field_setting['format'])) {
131
132 $field_type = $field_type . ' format="' . $field_setting['format'] . '"';
133 }
134 }
135
136 if ($field_type == 'pp-custom-html') {
137
138 if ( ! empty($field_setting['custom_html'])) {
139
140 $field_type = $field_type . ' custom_html="' . base64_encode($field_setting['custom_html']) . '"';
141 }
142 }
143
144 $parsed_shortcode = apply_filters(
145 'ppress_drag_drop_profile_listing_item',
146 do_shortcode('[' . $field_type . ']', true),
147 $field_type, $field_key, $this
148 );
149
150 if ( ! empty($parsed_shortcode)) {
151
152 $this->has_field_data = true;
153
154 if ($field_type == 'profile-website') {
155 $parsed_shortcode = sprintf('<a href="%1$s" rel="nofollow" target="_blank">%1$s</a>', esc_url($parsed_shortcode));
156 }
157
158 if ( ! empty($field_key) && strpos($field_type, 'profile-cpf') !== false) {
159
160 if (in_array($field_key, array_keys(ppress_social_network_fields()))) {
161 $parsed_shortcode = sprintf('<a href="%s">%s</a>', esc_url($parsed_shortcode), ppress_var(ppress_social_network_fields(), $field_key));
162 }
163
164 $custom_field_type = PROFILEPRESS_sql::get_field_type($field_key);
165
166 if ($field_key == CheckoutFields::BILLING_COUNTRY || $custom_field_type == 'country') {
167 $parsed_shortcode = ppress_get_country_title($parsed_shortcode);
168 }
169
170 if ($field_key == CheckoutFields::BILLING_STATE) {
171 $db_country = do_shortcode('[profile-cpf key=' . CheckoutFields::BILLING_COUNTRY . ']', true);
172 $parsed_shortcode = ppress_get_country_state_title($parsed_shortcode, $db_country);
173 }
174
175 if ($custom_field_type == 'textarea') {
176 $parsed_shortcode = nl2br($parsed_shortcode);
177 }
178 }
179
180 $output .= $this->item_wrap_start_tag;
181 if ( ! empty($field_title)) {
182 $output .= $this->title_start_tag . wp_kses_post($field_title) . $this->title_end_tag;
183 }
184 $output .= $this->info_start_tag . $parsed_shortcode . $this->info_end_tag;
185 $output .= $this->item_wrap_end_tag;
186 }
187 }
188
189 $this->output = $output;
190
191 return $this;
192 }
193
194 public function output()
195 {
196 return $this->output;
197 }
198 }