PluginProbe
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions / 111017
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions v111017
260917 260913 260909 260829 260814 260805 110710 110731 110812 110815 110912 110913 110915 110926 110927 111002 111003 111011 111017 111029 111105 111206 111216 111220 120213 All 189 releases
s2member / includes / classes / custom-reg-fields-4bp.inc.php

custom-reg-fields-4bp.inc.php in s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions 111017, at includes/classes/custom-reg-fields-4bp.inc.php

289 lines 18.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Custom Registration/Profile Fields for BuddyPress integration.
4 *
5 * Copyright: © 2009-2011
6 * {@link http://www.websharks-inc.com/ WebSharks, Inc.}
7 * ( coded in the USA )
8 *
9 * Released under the terms of the GNU General Public License.
10 * You should have received a copy of the GNU General Public License,
11 * along with this software. In the main directory, see: /licensing/
12 * If not, see: {@link http://www.gnu.org/licenses/}.
13 *
14 * @package s2Member\Custom_Reg_Fields
15 * @since 3.5
16 */
17 if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
18 exit("Do not access this file directly.");
19 /**/
20 if (!class_exists ("c_ws_plugin__s2member_custom_reg_fields_4bp"))
21 {
22 /**
23 * Custom Registration/Profile Fields for BuddyPress integration.
24 *
25 * @package s2Member\Custom_Reg_Fields
26 * @since 3.5
27 */
28 class c_ws_plugin__s2member_custom_reg_fields_4bp
29 {
30 /**
31 * Adds Custom Fields to BuddyPress Registration Form.
32 *
33 * @package s2Member\Custom_Reg_Fields
34 * @since 110524RC
35 *
36 * @attaches-to: ``add_action("bp_after_signup_profile_fields");``
37 *
38 * @return null
39 *
40 * @todo Optimize with ``empty()``.
41 */
42 public static function custom_registration_fields_4bp ()
43 {
44 static $processed = false; /* Process this routine only one time. */
45 /**/
46 do_action ("ws_plugin__s2member_before_custom_registration_fields_4bp", get_defined_vars ());
47 /**/
48 if (!$processed && in_array ("registration", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields_4bp"]))
49 if (apply_filters ("ws_plugin__s2member_custom_registration_fields_4bp_display", true, get_defined_vars ()))
50 if (bp_is_register_page () && ($processed = true))
51 {
52 $_p = (!empty ($_POST)) ? c_ws_plugin__s2member_utils_strings::trim_deep (stripslashes_deep ($_POST)) : array ();
53 /**/
54 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"])
55 if (($fields_applicable = c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level ("auto-detection", "registration")) || ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in"] && c_ws_plugin__s2member_list_servers::list_servers_integrated ()))
56 if (($close_section_container = true))
57 {
58 echo '<div id="ws-plugin--s2member-custom-reg-fields-4bp-section" class="ws-plugin--s2member-custom-reg-fields-4bp-section register-section">' . "\n";
59 echo '<div id="ws-plugin--s2member-custom-reg-fields-4bp-container" class="ws-plugin--s2member-custom-reg-fields-4bp-container">' . "\n";
60 echo '<input type="hidden" name="ws_plugin__s2member_registration" value="' . esc_attr (wp_create_nonce ("ws-plugin--s2member-registration")) . '" />' . "\n";
61 }
62 /**/
63 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
64 do_action ("ws_plugin__s2member_during_custom_registration_fields_4bp_before", get_defined_vars ());
65 unset ($__refs, $__v); /* Unset defined __refs, __v. */
66 /**/
67 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"])
68 if ($fields_applicable = c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level ("auto-detection", "registration"))
69 {
70 foreach (json_decode ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], true) as $field)
71 {
72 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
73 do_action ("ws_plugin__s2member_during_custom_registration_fields_4bp_before_custom_fields", get_defined_vars ());
74 unset ($__refs, $__v); /* Unset defined __refs, __v. */
75 /**/
76 if (in_array ($field["id"], $fields_applicable)) /* Field applicable? */
77 {
78 $field_var = preg_replace ("/[^a-z0-9]/i", "_", strtolower ($field["id"]));
79 $field_id_class = preg_replace ("/_/", "-", $field_var);
80 /**/
81 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
82 if (apply_filters ("ws_plugin__s2member_during_custom_registration_fields_4bp_during_custom_fields_display", true, get_defined_vars ()))
83 {
84 if (!empty ($field["section"]) && $field["section"] === "yes") /* Starts a new section? */
85 echo '<div class="ws-plugin--s2member-custom-reg-field-4bp-divider-section' . ((!empty ($field["sectitle"])) ? '-title' : '') . '">' . ((!empty ($field["sectitle"])) ? $field["sectitle"] : '') . '</div>';
86 /**/
87 echo '<div class="ws-plugin--s2member-custom-reg-field-4bp ws-plugin--s2member-custom-reg-field-4bp-' . esc_attr ($field_id_class) . ' field_' . esc_attr ($field_var) . ' editfield">' . "\n";
88 echo '<label for="ws-plugin--s2member-custom-reg-field-4bp-' . esc_attr ($field_id_class) . '">' . "\n";
89 echo '<span' . ((preg_match ("/^(checkbox|pre_checkbox)$/", $field["type"])) ? ' style="display:none;"' : '') . '>' . $field["label"] . (($field["required"] === "yes") ? ' *' : '') . '</span></label>' . "\n";
90 echo c_ws_plugin__s2member_custom_reg_fields::custom_field_gen (__FUNCTION__, $field, "ws_plugin__s2member_custom_reg_field_", "ws-plugin--s2member-custom-reg-field-4bp-", "ws-plugin--s2member-custom-reg-field-4bp", "", "", "", $_p, $_p["ws_plugin__s2member_custom_reg_field_" . $field_var], "registration");
91 echo '</div>' . "\n";
92 }
93 unset ($__refs, $__v); /* Unset defined __refs, __v. */
94 }
95 /**/
96 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
97 do_action ("ws_plugin__s2member_during_custom_registration_fields_4bp_after_custom_fields", get_defined_vars ());
98 unset ($__refs, $__v); /* Unset defined __refs, __v. */
99 }
100 }
101 /**/
102 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in"] && c_ws_plugin__s2member_list_servers::list_servers_integrated ())
103 {
104 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
105 do_action ("ws_plugin__s2member_during_custom_registration_fields_4bp_before_opt_in", get_defined_vars ());
106 unset ($__refs, $__v); /* Unset defined __refs, __v. */
107 /**/
108 echo '<div class="ws-plugin--s2member-custom-reg-field-4bp field_opt_in editfield">' . "\n";
109 echo '<label for="ws-plugin--s2member-custom-reg-field-4bp-opt-in">' . "\n";
110 echo '<input type="checkbox" name="ws_plugin__s2member_custom_reg_field_opt_in" id="ws-plugin--s2member-custom-reg-field-4bp-opt-in" class="ws-plugin--s2member-custom-reg-field-4bp" value="1"' . (((empty ($_p) && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in"] == 1) || $_p["ws_plugin__s2member_custom_reg_field_opt_in"]) ? ' checked="checked"' : '') . ' />' . "\n";
111 echo $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in_label"] . "\n";
112 echo '</label>' . "\n";
113 echo '</div>' . "\n";
114 /**/
115 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
116 do_action ("ws_plugin__s2member_during_custom_registration_fields_4bp_after_opt_in", get_defined_vars ());
117 unset ($__refs, $__v); /* Unset defined __refs, __v. */
118 }
119 /**/
120 if (isset ($close_section_container) && $close_section_container)
121 echo '</div>' . "\n" . '</div>' . "\n";
122 /**/
123 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
124 do_action ("ws_plugin__s2member_during_custom_registration_fields_4bp_after", get_defined_vars ());
125 unset ($__refs, $__v); /* Unset defined __refs, __v. */
126 }
127 /**/
128 do_action ("ws_plugin__s2member_after_custom_registration_fields_4bp", get_defined_vars ());
129 /**/
130 return; /* Return for uniformity. */
131 }
132 /**
133 * Adds Custom Fields to BuddyPress Profiles.
134 *
135 * @package s2Member\Custom_Reg_Fields
136 * @since 110524RC
137 *
138 * @attaches-to: ``add_action("bp_after_profile_field_content");``
139 *
140 * @return null
141 */
142 public static function custom_profile_fields_4bp ()
143 {
144 global $bp; /* Global BuddyPress object reference. */
145 static $processed = false; /* Process this routine only one time. */
146 /**/
147 do_action ("ws_plugin__s2member_before_custom_profile_fields_4bp", get_defined_vars ());
148 /**/
149 if (!$processed && in_array ("profile", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields_4bp"]))
150 if (apply_filters ("ws_plugin__s2member_custom_profile_fields_4bp_display", true, get_defined_vars ()))
151 if (bp_is_user_profile () && (( /* BuddyPress v1.5. */function_exists ("bp_is_user_profile_edit") && bp_is_user_profile_edit ())/**/
152 || ( /* for BuddyPress < v1.5. */function_exists ("bp_is_profile_edit") && bp_is_profile_edit ())) && (int)bp_get_the_profile_group_id () === 1)
153 if (isset ($bp->displayed_user->id) && ($user_id = $bp->displayed_user->id))
154 if (($processed = true)) /* Mark as having been processed now. */
155 {
156 echo '<input type="hidden" name="ws_plugin__s2member_profile_4bp_save" id="ws-plugin--s2member-profile-4bp-save" value="' . esc_attr (wp_create_nonce ("ws-plugin--s2member-profile-4bp-save")) . '" />' . "\n";
157 /**/
158 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
159 do_action ("ws_plugin__s2member_during_custom_profile_fields_4bp_before", get_defined_vars ());
160 unset ($__refs, $__v); /* Unset defined __refs, __v. */
161 /**/
162 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"])
163 if (($level = c_ws_plugin__s2member_user_access::user_access_level (new WP_User ($user_id))) >= 0)
164 if ($fields_applicable = c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level ($level, "profile"))
165 {
166 $fields = get_user_option ("s2member_custom_fields", $user_id); /* Existing Custom Fields. */
167 /**/
168 foreach (json_decode ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], true) as $field)
169 {
170 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
171 do_action ("ws_plugin__s2member_during_custom_profile_fields_4bp_before_custom_fields", get_defined_vars ());
172 unset ($__refs, $__v); /* Unset defined __refs, __v. */
173 /**/
174 if (in_array ($field["id"], $fields_applicable)) /* Field applicable? */
175 {
176 $field_var = preg_replace ("/[^a-z0-9]/i", "_", strtolower ($field["id"]));
177 $field_id_class = preg_replace ("/_/", "-", $field_var);
178 /**/
179 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
180 if (apply_filters ("ws_plugin__s2member_during_custom_profile_fields_4bp_during_custom_fields_display", true, get_defined_vars ()))
181 {
182 if (!empty ($field["section"]) && $field["section"] === "yes") /* Starts a new section? */
183 echo '<div class="ws-plugin--s2member-profile-field-4bp-divider-section' . ((!empty ($field["sectitle"])) ? '-title' : '') . '">' . ((!empty ($field["sectitle"])) ? $field["sectitle"] : '') . '</div>';
184 /**/
185 echo '<div class="ws-plugin--s2member-profile-field-4bp ws-plugin--s2member-profile-4bp-' . esc_attr ($field_id_class) . ' field_' . esc_attr ($field_var) . ' editfield">' . "\n";
186 echo '<label for="ws-plugin--s2member-profile-4bp-' . esc_attr ($field_id_class) . '">' . "\n";
187 echo '<span' . ((preg_match ("/^(checkbox|pre_checkbox)$/", $field["type"])) ? ' style="display:none;"' : '') . '>' . $field["label"] . (($field["required"] === "yes") ? ' *' : '') . '</span></label>' . "\n";
188 echo c_ws_plugin__s2member_custom_reg_fields::custom_field_gen (__FUNCTION__, $field, "ws_plugin__s2member_profile_4bp_", "ws-plugin--s2member-profile-4bp-", "ws-plugin--s2member-profile-field-4bp", "", "", "", $fields, $fields[$field_var], "profile");
189 echo '</div>' . "\n";
190 }
191 unset ($__refs, $__v); /* Unset defined __refs, __v. */
192 }
193 /**/
194 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
195 do_action ("ws_plugin__s2member_during_custom_profile_fields_4bp_after_custom_fields", get_defined_vars ());
196 unset ($__refs, $__v); /* Unset defined __refs, __v. */
197 }
198 }
199 /**/
200 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
201 do_action ("ws_plugin__s2member_during_custom_profile_fields_4bp_after", get_defined_vars ());
202 unset ($__refs, $__v); /* Unset defined __refs, __v. */
203 }
204 /**/
205 do_action ("ws_plugin__s2member_after_custom_profile_fields_4bp", get_defined_vars ());
206 /**/
207 return; /* Return for uniformity. */
208 }
209 /**
210 * Adds Custom Fields to BuddyPress Profiles in public view.
211 *
212 * @package s2Member\Custom_Reg_Fields
213 * @since 110524RC
214 *
215 * @attaches-to: ``add_action("bp_profile_field_item");``
216 *
217 * @return null
218 */
219 public static function custom_profile_field_items_4bp ()
220 {
221 global $bp; /* Global BuddyPress object reference. */
222 static $processed = false; /* Process this routine only one time. */
223 /**/
224 do_action ("ws_plugin__s2member_before_custom_profile_field_items_4bp", get_defined_vars ());
225 /**/
226 if (!$processed && in_array ("profile-view", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields_4bp"]))
227 if (apply_filters ("ws_plugin__s2member_custom_profile_field_items_4bp_display", true, get_defined_vars ()))
228 if (bp_is_user_profile () && (( /* BuddyPress v1.5. */function_exists ("bp_is_user_profile_edit") && !bp_is_user_profile_edit ())/**/
229 || ( /* for BuddyPress < v1.5. */function_exists ("bp_is_profile_edit") && !bp_is_profile_edit ())) && (int)bp_get_the_profile_group_id () === 1)
230 if (isset ($bp->displayed_user->id) && ($user_id = $bp->displayed_user->id))
231 if (($processed = true)) /* Mark as having been processed now. */
232 {
233 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
234 do_action ("ws_plugin__s2member_during_custom_profile_field_items_4bp_before", get_defined_vars ());
235 unset ($__refs, $__v); /* Unset defined __refs, __v. */
236 /**/
237 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"])
238 if (($level = c_ws_plugin__s2member_user_access::user_access_level (new WP_User ($user_id))) >= 0)
239 if ($fields_applicable = c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level ($level, "profile-view"))
240 {
241 $fields = get_user_option ("s2member_custom_fields", $user_id); /* Existing Custom Fields. */
242 /**/
243 foreach (json_decode ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], true) as $field)
244 {
245 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
246 do_action ("ws_plugin__s2member_during_custom_profile_field_items_4bp_before_custom_fields", get_defined_vars ());
247 unset ($__refs, $__v); /* Unset defined __refs, __v. */
248 /**/
249 if (in_array ($field["id"], $fields_applicable)) /* Field applicable? */
250 {
251 $field_var = preg_replace ("/[^a-z0-9]/i", "_", strtolower ($field["id"]));
252 $field_id_class = preg_replace ("/_/", "-", $field_var);
253 /**/
254 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
255 if (apply_filters ("ws_plugin__s2member_during_custom_profile_field_items_4bp_during_custom_fields_display", true, get_defined_vars ()))
256 {
257 if (!empty ($field["section"]) && $field["section"] === "yes") /* New section? */
258 {
259 echo '<tr class="ws-plugin--s2member-profile-field-4bp-divider-section">' . "\n";
260 echo '<td colspan="2"><div class="ws-plugin--s2member-profile-field-4bp-divider-section' . ((!empty ($field["sectitle"])) ? '-title' : '') . '">' . ((!empty ($field["sectitle"])) ? $field["sectitle"] : '') . '</div></td>' . "\n";
261 echo '</tr>' . "\n";
262 }
263 /**/
264 echo '<tr class="ws-plugin--s2member-profile-field-4bp ws-plugin--s2member-profile-4bp-' . esc_attr ($field_id_class) . ' field_' . esc_attr ($field_var) . '">' . "\n";
265 echo '<td class="ws-plugin--s2member-profile-field-4bp ws-plugin--s2member-profile-4bp-' . esc_attr ($field_id_class) . ' field_' . esc_attr ($field_var) . ' label"><span>' . $field["label"] . '</span></td>' . "\n";
266 echo '<td class="ws-plugin--s2member-profile-field-4bp ws-plugin--s2member-profile-4bp-' . esc_attr ($field_id_class) . ' field_' . esc_attr ($field_var) . ' data">' . c_ws_plugin__s2member_custom_reg_fields::custom_field_gen (__FUNCTION__, $field, "ws_plugin__s2member_profile_4bp_", "ws-plugin--s2member-profile-4bp-", "ws-plugin--s2member-profile-field-4bp", "", "", "", $fields, $fields[$field_var], "profile-view") . '</td>' . "\n";
267 echo '</tr>' . "\n";
268 }
269 unset ($__refs, $__v); /* Unset defined __refs, __v. */
270 }
271 /**/
272 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
273 do_action ("ws_plugin__s2member_during_custom_profile_field_items_4bp_after_custom_fields", get_defined_vars ());
274 unset ($__refs, $__v); /* Unset defined __refs, __v. */
275 }
276 }
277 /**/
278 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
279 do_action ("ws_plugin__s2member_during_custom_profile_field_items_4bp_after", get_defined_vars ());
280 unset ($__refs, $__v); /* Unset defined __refs, __v. */
281 }
282 /**/
283 do_action ("ws_plugin__s2member_after_custom_profile_field_items_4bp", get_defined_vars ());
284 /**/
285 return; /* Return for uniformity. */
286 }
287 }
288 }
289 ?>