PluginProbe
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions / 110812
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions v110812
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 110812, at includes/classes/custom-reg-fields-4bp.inc.php

288 lines 18.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Custom Registration 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 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")/**/
56 || ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in"] && c_ws_plugin__s2member_list_servers::list_servers_integrated ()))
57 if (($close_section_container = true))
58 {
59 echo '<div id="ws-plugin--s2member-custom-reg-fields-4bp-section" class="ws-plugin--s2member-custom-reg-fields-4bp-section register-section">' . "\n";
60 echo '<div id="ws-plugin--s2member-custom-reg-fields-4bp-container" class="ws-plugin--s2member-custom-reg-fields-4bp-container">' . "\n";
61 echo '<input type="hidden" name="ws_plugin__s2member_registration" value="' . esc_attr (wp_create_nonce ("ws-plugin--s2member-registration")) . '" />' . "\n";
62 }
63 /**/
64 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
65 do_action ("ws_plugin__s2member_during_custom_registration_fields_4bp_before", get_defined_vars ());
66 unset ($__refs, $__v); /* Unset defined __refs, __v. */
67 /**/
68 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"])
69 if ($fields_applicable = c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level ("auto-detection", "registration"))
70 {
71 foreach (json_decode ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], true) as $field)
72 {
73 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
74 do_action ("ws_plugin__s2member_during_custom_registration_fields_4bp_before_custom_fields", get_defined_vars ());
75 unset ($__refs, $__v); /* Unset defined __refs, __v. */
76 /**/
77 if (in_array ($field["id"], $fields_applicable)) /* Field applicable? */
78 {
79 $field_var = preg_replace ("/[^a-z0-9]/i", "_", strtolower ($field["id"]));
80 $field_id_class = preg_replace ("/_/", "-", $field_var);
81 /**/
82 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
83 if (apply_filters ("ws_plugin__s2member_during_custom_registration_fields_4bp_during_custom_fields_display", true, get_defined_vars ()))
84 {
85 if (!empty ($field["section"]) && $field["section"] === "yes") /* Starts a new section? */
86 echo '<div class="ws-plugin--s2member-custom-reg-field-4bp-divider-section' . ((!empty ($field["sectitle"])) ? '-title' : '') . '">' . ((!empty ($field["sectitle"])) ? $field["sectitle"] : '') . '</div>';
87 /**/
88 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";
89 echo '<label for="ws-plugin--s2member-custom-reg-field-4bp-' . esc_attr ($field_id_class) . '">' . "\n";
90 echo '<span' . ((preg_match ("/^(checkbox|pre_checkbox)$/", $field["type"])) ? ' style="display:none;"' : '') . '>' . $field["label"] . (($field["required"] === "yes") ? ' *' : '') . '</span></label>' . "\n";
91 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");
92 echo '</div>' . "\n";
93 }
94 unset ($__refs, $__v); /* Unset defined __refs, __v. */
95 }
96 /**/
97 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
98 do_action ("ws_plugin__s2member_during_custom_registration_fields_4bp_after_custom_fields", get_defined_vars ());
99 unset ($__refs, $__v); /* Unset defined __refs, __v. */
100 }
101 }
102 /**/
103 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in"] && c_ws_plugin__s2member_list_servers::list_servers_integrated ())
104 {
105 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
106 do_action ("ws_plugin__s2member_during_custom_registration_fields_4bp_before_opt_in", get_defined_vars ());
107 unset ($__refs, $__v); /* Unset defined __refs, __v. */
108 /**/
109 echo '<div class="ws-plugin--s2member-custom-reg-field-4bp field_opt_in editfield">' . "\n";
110 echo '<label for="ws-plugin--s2member-custom-reg-field-4bp-opt-in">' . "\n";
111 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";
112 echo $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in_label"] . "\n";
113 echo '</label>' . "\n";
114 echo '</div>' . "\n";
115 /**/
116 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
117 do_action ("ws_plugin__s2member_during_custom_registration_fields_4bp_after_opt_in", get_defined_vars ());
118 unset ($__refs, $__v); /* Unset defined __refs, __v. */
119 }
120 /**/
121 if ($close_section_container)
122 echo '</div></div>' . "\n";
123 /**/
124 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
125 do_action ("ws_plugin__s2member_during_custom_registration_fields_4bp_after", get_defined_vars ());
126 unset ($__refs, $__v); /* Unset defined __refs, __v. */
127 }
128 /**/
129 do_action ("ws_plugin__s2member_after_custom_registration_fields_4bp", get_defined_vars ());
130 /**/
131 return; /* Return for uniformity. */
132 }
133 /**
134 * Adds Custom Fields to BuddyPress Profiles.
135 *
136 * @package s2Member\Custom_Reg_Fields
137 * @since 110524RC
138 *
139 * @attaches-to: ``add_action("bp_after_profile_field_content");``
140 *
141 * @return null
142 */
143 public static function custom_profile_fields_4bp ()
144 {
145 global $bp; /* Global BuddyPress object reference. */
146 static $processed = false; /* Process this routine only one time. */
147 /**/
148 do_action ("ws_plugin__s2member_before_custom_profile_fields_4bp", get_defined_vars ());
149 /**/
150 if (!$processed && in_array ("profile", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields_4bp"]))
151 if (apply_filters ("ws_plugin__s2member_custom_profile_fields_4bp_display", true, get_defined_vars ()))
152 if (bp_is_user_profile () && 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 () && !bp_is_profile_edit () && (int)bp_get_the_profile_group_id () === 1)
229 if (isset ($bp->displayed_user->id) && ($user_id = $bp->displayed_user->id))
230 if (($processed = true)) /* Mark as having been processed now. */
231 {
232 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
233 do_action ("ws_plugin__s2member_during_custom_profile_field_items_4bp_before", get_defined_vars ());
234 unset ($__refs, $__v); /* Unset defined __refs, __v. */
235 /**/
236 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"])
237 if (($level = c_ws_plugin__s2member_user_access::user_access_level (new WP_User ($user_id))) >= 0)
238 if ($fields_applicable = c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level ($level, "profile-view"))
239 {
240 $fields = get_user_option ("s2member_custom_fields", $user_id); /* Existing Custom Fields. */
241 /**/
242 foreach (json_decode ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], true) as $field)
243 {
244 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
245 do_action ("ws_plugin__s2member_during_custom_profile_field_items_4bp_before_custom_fields", get_defined_vars ());
246 unset ($__refs, $__v); /* Unset defined __refs, __v. */
247 /**/
248 if (in_array ($field["id"], $fields_applicable)) /* Field applicable? */
249 {
250 $field_var = preg_replace ("/[^a-z0-9]/i", "_", strtolower ($field["id"]));
251 $field_id_class = preg_replace ("/_/", "-", $field_var);
252 /**/
253 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
254 if (apply_filters ("ws_plugin__s2member_during_custom_profile_field_items_4bp_during_custom_fields_display", true, get_defined_vars ()))
255 {
256 if (!empty ($field["section"]) && $field["section"] === "yes") /* New section? */
257 {
258 echo '<tr class="ws-plugin--s2member-profile-field-4bp-divider-section">' . "\n";
259 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";
260 echo '</tr>' . "\n";
261 }
262 /**/
263 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";
264 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";
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) . ' 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";
266 echo '</tr>' . "\n";
267 }
268 unset ($__refs, $__v); /* Unset defined __refs, __v. */
269 }
270 /**/
271 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
272 do_action ("ws_plugin__s2member_during_custom_profile_field_items_4bp_after_custom_fields", get_defined_vars ());
273 unset ($__refs, $__v); /* Unset defined __refs, __v. */
274 }
275 }
276 /**/
277 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
278 do_action ("ws_plugin__s2member_during_custom_profile_field_items_4bp_after", get_defined_vars ());
279 unset ($__refs, $__v); /* Unset defined __refs, __v. */
280 }
281 /**/
282 do_action ("ws_plugin__s2member_after_custom_profile_field_items_4bp", get_defined_vars ());
283 /**/
284 return; /* Return for uniformity. */
285 }
286 }
287 }
288 ?>