PluginProbe
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor / 2.0.7
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor v2.0.7
4.0.2 4.0.1 4.0.0 3.16.6 3.16.5 3.16.4 3.16.3 3.16.2 3.16.1 3.16.0 3.15.9 3.9.9 3.9.5 3.9.6 3.9.7 3.9.8 1.1.7 1.1.8 1.1.9 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 All 340 releases
profile-builder / features / upgrades / upgrades-functions.php

upgrades-functions.php in User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor 2.0.7, at features/upgrades/upgrades-functions.php

545 lines 29.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Function that adds backwards compatibility starting from v1.3.15 for the email customizer
4 *
5 * @since v.1.3.15
6 *
7 * @return void
8 */
9 function wppb_pro_v1_3_15(){
10 $email_customizer_array = get_option( 'emailCustomizer', 'not_found' );
11
12 if ( $email_customizer_array != 'not_found' ){
13 $new_email_customizer_array = array();
14
15 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'from', 'reply_to' );
16 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'settingsGroup1Option2', 'default_registration_email_subject' );
17 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'settingsGroup1Option3', 'default_registration_email_content' );
18 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'settingsGroup3Option2', 'registration_w_admin_approval_email_subject' );
19 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'settingsGroup3Option3', 'registration_w_admin_approval_email_content' );
20 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'settingsGroup4Option2', 'admin_approval_aproved_status_email_subject' );
21 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'settingsGroup4Option3', 'admin_approval_aproved_status_email_content' );
22 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'settingsGroup2Option2', 'registration_w_email_confirmation_email_subject' );
23 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'settingsGroup2Option3', 'registration_w_email_confirmation_email_content' );
24 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'settingsGroup4Option6', 'admin_approval_unaproved_status_email_subject' );
25 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'settingsGroup4Option7', 'admin_approval_unaproved_status_email_content' );
26 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'admin_settingsGroup1Option2', 'admin_default_registration_email_subject' );
27 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'admin_settingsGroup1Option3', 'admin_default_registration_email_content' );
28 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'admin_settingsGroup3Option2', 'admin_registration_w_admin_approval_email_subject' );
29 $new_email_customizer_array = wppb_copy_old_content( $email_customizer_array, $new_email_customizer_array, 'admin_settingsGroup3Option3', 'admin_registration_w_admin_approval_email_content' );
30
31 update_option( 'emailCustomizer', $new_email_customizer_array + $email_customizer_array );
32 }
33 }
34
35 function wppb_copy_old_content ( $email_customizer_array, $new_email_customizer_array, $old_index, $new_index ){
36 if ( isset( $email_customizer_array[$old_index] ) ){
37 $new_email_customizer_array[$new_index] = $email_customizer_array[$old_index];
38 unset( $email_customizer_array[$old_index] );
39 }
40
41 return $new_email_customizer_array;
42 }
43
44 /**
45 * Function that adds backwards compatibility version 1.3.13 to version 1.3.14: we need to copy all data from item_options_values, and create the item_option_labels index for the checkbox, radio and select extra-fields, to reflect the front-end changes
46 *
47 * @since v.1.3.13
48 *
49 * @return void
50 */
51 function wppb_pro_hobbyist_v1_3_13(){
52 $custom_fields = get_option( 'wppb_custom_fields','not_found' );
53
54 if ( $custom_fields != 'not_found' ){
55 foreach ( $custom_fields as $key => $value ){
56 if ( ( $value['item_type'] == 'checkbox' ) || ( $value['item_type'] == 'radio' ) || ( $value['item_type'] == 'select' ) ){
57 if ( isset( $custom_fields[$key]['item_option_values'] ) ){
58 $custom_fields[$key]['item_option_labels'] = $custom_fields[$key]['item_option_values'];
59 unset( $custom_fields[$key]['item_option_values'] );
60 }
61
62 }else
63 unset( $custom_fields[$key]['item_option_values'] );
64 }
65
66 update_option( 'wppb_custom_fields', $custom_fields );
67 }
68 }
69
70
71 /**
72 * Function that checks if there is at least one EP and/or R form. In the execution timeline this function runs faster than the wppb_prepopulate_fields function
73 *
74 * @since v.2.0
75 *
76 * @return void
77 */
78 function wppb_pro_hobbyist_free_v2_0(){
79 $wppb_manage_fields = get_option( 'wppb_manage_fields', 'not_found' );
80 $backed_up_manage_fields = array();
81
82 // part that handles the manage fields
83 if ( $wppb_manage_fields == 'not_found' ){
84
85 $old_default_fields = get_option( 'wppb_default_settings', 'not_found' );
86
87 if ( $old_default_fields != 'not_found' ){
88 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Name (Heading)', '', 'No' );
89
90 if ( $old_default_fields['username'] == 'show' )
91 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Username', '', ucfirst( trim( $old_default_fields['usernameRequired'] ) ), __( 'The usernames cannot be changed.', 'profilebuilder' ) );
92
93 if ( $old_default_fields['firstname'] == 'show' )
94 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - First Name', 'first_name', ucfirst( trim( $old_default_fields['firstnameRequired'] ) ) );
95
96 if ( $old_default_fields['lastname'] == 'show' )
97 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Last Name', 'last_name', ucfirst( trim( $old_default_fields['lastnameRequired'] ) ) );
98
99 if ( $old_default_fields['nickname'] == 'show' )
100 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Nickname', 'nickname', ucfirst( trim( $old_default_fields['nicknameRequired'] ) ) );
101
102 if ( $old_default_fields['dispname'] == 'show' )
103 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Display name publicly as', '', ucfirst( trim( $old_default_fields['dispnameRequired'] ) ) );
104
105 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Contact Info (Heading)', '', 'No' );
106
107 if ( $old_default_fields['email'] == 'show' )
108 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - E-mail', '', ucfirst( trim( $old_default_fields['emailRequired'] ) ), '(required)' );
109
110 if ( $old_default_fields['website'] == 'show' )
111 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Website', '', ucfirst( trim( $old_default_fields['websiteRequired'] ) ) );
112
113 if ( $old_default_fields['aim'] == 'show' )
114 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - AIM', 'aim', ucfirst( trim( $old_default_fields['aimRequired'] ) ) );
115
116 if ( $old_default_fields['yahoo'] == 'show' )
117 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Yahoo IM', 'yim', ucfirst( trim( $old_default_fields['yahooRequired'] ) ) );
118
119 if ( $old_default_fields['jabber'] == 'show' )
120 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Jabber / Google Talk', 'jabber', ucfirst( trim( $old_default_fields['jabberRequired'] ) ) );
121
122 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - About Yourself (Heading)', '', 'No' );
123
124 if ( $old_default_fields['bio'] == 'show' )
125 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Biographical Info', 'description', ucfirst( trim( $old_default_fields['bioRequired'] ) ) );
126
127 if ( $old_default_fields['password'] == 'show' ){
128 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Password', '', ucfirst( trim( $old_default_fields['passwordRequired'] ) ) );
129 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Repeat Password', '', ucfirst( trim( $old_default_fields['passwordRequired'] ) ) );
130 }
131
132 }else{
133 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Name (Heading)', '', 'No' );
134 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Username', '', 'Yes', __( 'The usernames cannot be changed.', 'profilebuilder' ) );
135 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - First Name', 'first_name', 'No' );
136 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Last Name', 'last_name', 'No' );
137 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Nickname', 'nickname', 'No' );
138 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Display name publicly as', '', 'No' );
139 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Contact Info (Heading)', '', 'No' );
140 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - E-mail', '', 'Yes', '(required)' );
141 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Website', '', 'No' );
142
143 // Default contact methods were removed in WP 3.6. A filter dictates contact methods.
144 if ( apply_filters( 'wppb_remove_default_contact_methods', get_site_option( 'initial_db_version' ) < 23588 ) ){
145 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - AIM', 'aim', 'No' );
146 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Yahoo IM', 'yim', 'No' );
147 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Jabber / Google Talk', 'jabber', 'No' );
148 }
149
150 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - About Yourself (Heading)', '', 'No' );
151 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Biographical Info', 'description', 'No' );
152 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Password', '', 'Yes' );
153 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'Default - Repeat Password', '', 'Yes' );
154 }
155
156 $old_custom_fields = get_option( 'wppb_custom_fields', 'not_found' );
157 if( $old_custom_fields != 'not_found' && count( $old_custom_fields ) != 0 ){
158 foreach ( $old_custom_fields as $key => $value ) {
159 $local_array = array();
160
161 /* id will be set up at a later point */
162 $local_array['id'] = '';
163 $local_array['meta-name'] = ( isset( $value['item_metaName'] ) ? trim( $value['item_metaName'] ) : '' );
164 $local_array['field-title'] = ( isset( $value['item_title'] ) ? trim( $value['item_title'] ) : '' );
165 $local_array['description'] = ( isset( $value['item_desc'] ) ? $value['item_desc'] : '' );
166 $local_array['required'] = 'No';
167 $local_array['overwrite-existing'] = 'No';
168 $local_array['row-count'] = '5';
169 $local_array['allowed-image-extensions'] = '.*';
170 $local_array['allowed-upload-extensions'] = '.*';
171 $local_array['avatar-size'] = '100';
172 $local_array['date-format'] = 'mm/dd/yy';
173 $local_array['terms-of-agreement'] = '';
174 $local_array['options'] = '';
175 $local_array['labels'] = '';
176 $local_array['public-key'] = '';
177 $local_array['private-key'] = '';
178 $local_array['default-value'] = '';
179 $local_array['default-option'] = '';
180 $local_array['default-options'] = '';
181 $local_array['default-content'] = '';
182
183 switch ( $value['item_type' ] ){
184 case "heading":{
185 $local_array['field'] = 'Heading';
186 $local_array['meta-name'] = '';
187 break;
188 }
189 case "input":{
190 $local_array['field'] = 'Input';
191 $local_array['required'] = ucfirst( trim( $value['item_required'] ) );
192 break;
193 }
194 case "hiddenInput":{
195 $local_array['field'] = 'Input (Hidden)';
196 $local_array['default-value'] = ( isset( $value['item_options'] ) ? trim( $value['item_options'] ) : '' );
197 break;
198 }
199 case "checkbox":{
200 $local_array['field'] = 'Checkbox';
201 $local_array['options'] = ( isset( $value['item_options'] ) ? trim( $value['item_options'] ) : '' );
202 $local_array['labels'] = ( isset( $value['item_option_labels'] ) ? trim( $value['item_option_labels'] ) : '' );
203 $local_array['required'] = ucfirst( trim( $value['item_required'] ) );
204 break;
205 }
206 case "agreeToTerms":{
207 $local_array['field'] = 'Checkbox (Terms and Conditions)';
208 $local_array['required'] = ucfirst( trim( "Yes" ) );
209 break;
210 }
211 case "radio":{
212 $local_array['field'] = 'Radio';
213 $local_array['options'] = ( isset( $value['item_options'] ) ? trim( $value['item_options'] ) : '' );
214 $local_array['labels'] = ( isset( $value['item_option_labels'] ) ? trim( $value['item_option_labels'] ) : '' );
215 $local_array['required'] = ucfirst( trim( $value['item_required'] ) );
216 break;
217 }
218 case "select":{
219 $local_array['field'] = 'Select';
220 $local_array['options'] = ( isset( $value['item_options'] ) ? trim( $value['item_options'] ) : '' );
221 $local_array['labels'] = ( isset( $value['item_option_labels'] ) ? trim( $value['item_option_labels'] ) : '' );
222 $local_array['required'] = ucfirst( trim( $value['item_required'] ) );
223 break;
224 }
225 case "countrySelect":{
226 $local_array['field'] = 'Select (Country)';
227 $local_array['required'] = ucfirst( trim( $value['item_required'] ) );
228 break;
229 }
230 case "timeZone":{
231 $local_array['field'] = 'Select (Timezone)';
232 $local_array['required'] = ucfirst( trim( $value['item_required'] ) );
233 break;
234 }
235 case "datepicker":{
236 $local_array['field'] = 'Datepicker';
237 $local_array['required'] = ucfirst( trim( $value['item_required'] ) );
238 break;
239 }
240 case "textarea":{
241 $local_array['field'] = 'Textarea';
242 $local_array['row-count'] = ( isset( $value['item_options'] ) ? trim( $value['item_options'] ) : '' );
243 $local_array['required'] = ucfirst( trim( $value['item_required'] ) );
244 break;
245 }
246 case "upload":{
247 $local_array['field'] = 'Upload';
248 $local_array['allowed-upload-extensions'] = ( isset( $value['item_options'] ) ? trim( $value['item_options'] ) : $local_array['allowed-upload-extensions'] );
249 $local_array['required'] = ucfirst( trim( $value['item_required'] ) );
250 break;
251 }
252 case "avatar":{
253 $local_array['field'] = 'Avatar';
254 $local_array['avatar-size'] = ( isset( $value['item_options'] ) ? trim( $value['item_options'] ) : $local_array['avatar-size'] );
255 $local_array['required'] = ucfirst( trim( $value['item_required'] ) );
256 break;
257 }
258 }
259
260 array_push( $backed_up_manage_fields, $local_array );
261 }
262 }
263 }
264
265
266 // part which handles the removal of the reCAPTCHA from the addon list
267 $wppb_module_settings = get_option( 'wppb_addon_settings', 'not_found' );
268 if ( $wppb_module_settings != 'not_found' ){
269 if ( isset( $wppb_module_settings['wppb_reCaptcha'] ) && ( $wppb_module_settings['wppb_reCaptcha'] == 'show' ) ){
270 $recaptcha_settings = get_option( 'reCaptchaSettings' );
271
272 if ( ( $recaptcha_settings != 'no_found' ) || ( count( $recaptcha_settings ) != 0 ) ){
273 $backed_up_manage_fields = wppb_add_existing_default_fields( $backed_up_manage_fields, 'reCAPTCHA', '', 'Yes', '', trim( $recaptcha_settings['publicKey'] ), trim( $recaptcha_settings['privateKey'] ) );
274 }
275 }
276
277 unset( $wppb_module_settings['wppb_reCaptcha'] );
278 $wppb_module_settings['wppb_multipleEditProfileForms'] = 'hide';
279 $wppb_module_settings['wppb_multipleRegistrationForms'] = 'hide';
280
281 update_option( 'wppb_module_settings', $wppb_module_settings );
282 }
283
284 /* set up ids for each field */
285 if( !empty( $backed_up_manage_fields ) ){
286 /*make sure we have a 0 based index */
287 $backed_up_manage_fields = array_values( $backed_up_manage_fields );
288 foreach( $backed_up_manage_fields as $key => $backed_up_manage_field ){
289 $backed_up_manage_fields[$key]['id'] = (int)$key + 1;
290 }
291 }
292 add_option( 'wppb_manage_fields', $backed_up_manage_fields );
293
294
295 // part which handles the general settings select->checkbox backwards comp.
296 $wppb_generalSettings = get_option( 'wppb_general_settings', 'not_found' );
297 if ( ( $wppb_generalSettings != 'not_found' ) && ( count( $wppb_generalSettings ) > 1 ) ){
298 if ( isset( $wppb_generalSettings['extraFieldsLayout'] ) && ( $wppb_generalSettings['extraFieldsLayout'] == 'no' ) )
299 unset( $wppb_generalSettings['extraFieldsLayout'] );
300
301 else
302 $wppb_generalSettings['extraFieldsLayout'] = 'default';
303
304 update_option( 'wppb_general_settings', $wppb_generalSettings );
305 }
306 }
307
308
309 /**
310 * Function that adds backwards compatibility for the userlisting
311 *
312 * @since v.2.0
313 *
314 */
315 function wppb_pro_userlisting_compatibility_upgrade(){
316 if ( wppb_default_form_already_present( 'Userlisting', 'wppb-ul-cpt' ) )
317 return '';
318
319 $old_userlisting_settings = get_option( 'customUserListingSettings', 'not_found' );
320 if ( $old_userlisting_settings == 'not_found' )
321 $old_userlisting_settings = get_option( 'userListingSettings' );
322
323 if ( $old_userlisting_settings == 'not_found' )
324 return;
325
326 $all_userlisting = ( isset( $old_userlisting_settings['allUserlisting'] ) ? wppb_replace_merge_tags( $old_userlisting_settings['allUserlisting'], true ) : '' );
327 $single_userlisting = ( isset( $old_userlisting_settings['singleUserlisting'] ) ? wppb_replace_merge_tags( $old_userlisting_settings['singleUserlisting'] ) : '' );
328
329 if( !empty( $old_userlisting_settings['sortingNumber'] ) )
330 $number_os_users_per_page = $old_userlisting_settings['sortingNumber'];
331 else
332 $number_os_users_per_page = '5';
333
334 if( !empty( $old_userlisting_settings['sortingCriteria'] ) )
335 $default_sorting_criteria = $old_userlisting_settings['sortingCriteria'];
336 else
337 $default_sorting_criteria = 'login';
338
339 if( !empty( $old_userlisting_settings['sortingOrder'] ) )
340 $default_sorting_order = $old_userlisting_settings['sortingOrder'];
341 else
342 $default_sorting_order = 'asc';
343
344 if( !empty( $old_userlisting_settings['avatarSize'] ) )
345 $avatar_size_all = $old_userlisting_settings['avatarSize'];
346 else
347 $avatar_size_all = '40';
348
349 if( !empty( $old_userlisting_settings['avatarSize'] ) )
350 $avatar_size_single = $old_userlisting_settings['avatarSize'];
351 else
352 $avatar_size_single = '60';
353
354 $userlisting_settings = array( array( 'roles-to-display' => '*', 'number-of-userspage' => $number_os_users_per_page, 'default-sorting-criteria' => $default_sorting_criteria, 'default-sorting-order' => $default_sorting_order, 'avatar-size-all-userlisting' => $avatar_size_all, 'avatar-size-single-userlisting' => $avatar_size_single ) );
355
356 $ul_post_id = wp_insert_post( array( 'post_title' => 'Userlisting', 'post_status' => 'publish', 'post_author' => get_current_user_id(), 'post_type' => 'wppb-ul-cpt', 'post_content' => 'Default Userlisting form placeholder' ), true );
357
358 add_post_meta( $ul_post_id, 'wppb-ul-templates', $all_userlisting );
359 add_post_meta( $ul_post_id, 'wppb-single-ul-templates', $single_userlisting );
360 add_post_meta( $ul_post_id, 'wppb_ul_page_settings', $userlisting_settings );
361 }
362
363
364 /**
365 * Function that replaces the individual merge-tags in the userlisting
366 *
367 * @since v.2.0
368 *
369 * @param string $content
370 * @param boolean $all_userlisting_form
371 *
372 * @return string
373 *
374 */
375 function wppb_replace_merge_tags( $content, $all_userlisting_form = false ){
376 $content = trim( $content );
377
378 $content = wppb_old_backwards_compatibility( $content );
379
380 $content = str_replace( '%%meta_number_of_posts%%', '{{{meta_number_of_posts}}}', $content );
381 $content = str_replace( '%%extra_search_all_fields%%', '{{{extra_search_all_fields}}}', $content );
382 $content = str_replace( '%%extra_more_info_link%%', '{{{more_info}}}', $content );
383 $content = str_replace( '%%extra_while_users%%', '{{#users}}', $content );
384 $content = str_replace( '%%extra_end_while_users%%', '{{/users}}', $content );
385 $content = str_replace( '%%extra_avatar_or_gravatar%%', '{{{avatar_or_gravatar}}}', $content );
386 $content = str_replace( '%%extra_go_back_link%%', '{{{extra_go_back_link}}}', $content );
387 $content = str_replace( '%%meta_first_last_name%%', '{{meta_first_name}}{{meta_last_name}}', $content );
388 $content = str_replace( '%%sort_first_last_name%%', '{{{sort_first_name}}}', $content );
389
390 preg_match_all( '/%%([a-z0-9\_]+)%%/', $content, $matches, PREG_PATTERN_ORDER );
391 foreach ( $matches[0] as $key => $value )
392 $content = ( ( strpos( $value, 'sort_' ) !== false ) ? str_replace( $value, '{{{'.$matches[1][$key].'}}}', $content ) : str_replace( $value, '{{'.$matches[1][$key].'}}', $content ) );
393
394 if ( $all_userlisting_form )
395 $content .= '{{{pagination}}}';
396
397 return $content;
398 }
399
400
401 /**
402 * Function that replaces the individual merge-tags which existed the very first time. These consisted of %%item_title%% instead of the (then) newer %%item_meta_name%%
403 *
404 * @since v.2.0
405 *
406 * @param string $content
407 *
408 * @return string
409 *
410 */
411 function wppb_old_backwards_compatibility( $content ){
412 $wppb_custom_fields = get_option( 'wppb_custom_fields', 'not_found' );
413
414 if ( ( $wppb_custom_fields == 'not_found' ) || ( count( $wppb_custom_fields ) < 1 ) )
415 return $content;
416
417 foreach( $wppb_custom_fields as $key => $value ){
418 if ( ( isset( $value['item_type'] ) ) && ( trim( $value['item_type'] != '' ) ) )
419 if ( ( isset( $value['item_metaName'] ) ) && ( trim( $value['item_metaName'] != '' ) ) ){
420 /* TODO don't know what's supposed to be here and don't have time before launch */
421 $string = str_replace( '%%meta_'.$value['item_title'].'%%', '%%meta_'.$value['item_metaName'].'%%', $string );
422 $string = str_replace( '%%meta_description_'.$value['item_title'].'%%', '%%meta_description_'.$value['item_metaName'].'%%', $string );
423 $string = str_replace( '%%sort_'.$value['item_title'].'%%', '%%sort_'.$value['item_metaName'].'%%', $string );
424 }
425 }
426
427 return $content;
428 }
429
430
431 /**
432 * Function that checks if a default userlisting-form is already present
433 *
434 * @since v.2.0
435 *
436 * @param string $post_title
437 * @param string $post_type
438 *
439 * @return boolean
440 *
441 */
442 function wppb_default_form_already_present( $post_title, $post_type ){
443 $defaults = get_posts( array( 'posts_per_page' => -1, 'post_status' => array( 'publish' ), 'post_type' => $post_type, 'orderby' => 'post_date', 'order' => 'ASC' ) );
444 foreach ( $defaults as $default ){
445 if ( $default->post_content == 'Default '.$post_title.' form placeholder' )
446 return true;
447 }
448
449 return false;
450 }
451
452
453 /**
454 * Function that assures backwards compatibility for the email customizer
455 *
456 * @since v.2.0
457 *
458 */
459 function wppb_pro_email_customizer_compatibility_upgrade(){
460 $email_customizer_array = get_option( 'emailCustomizer', 'not_found' );
461
462 if ( $email_customizer_array != 'not_found' ){
463 wppb_replace_and_save( $email_customizer_array['from_name'], 'wppb_emailc_common_settings_from_name' );
464 wppb_replace_and_save( $email_customizer_array['reply_to'], 'wppb_emailc_common_settings_from_reply_to_email' );
465 wppb_replace_and_save( $email_customizer_array['default_registration_email_subject'], 'wppb_user_emailc_default_registration_email_subject' );
466 wppb_replace_and_save( $email_customizer_array['default_registration_email_content'], 'wppb_user_emailc_default_registration_email_content' );
467 wppb_replace_and_save( $email_customizer_array['registration_w_admin_approval_email_subject'], 'wppb_user_emailc_registration_with_admin_approval_email_subject' );
468 wppb_replace_and_save( $email_customizer_array['registration_w_admin_approval_email_content'], 'wppb_user_emailc_registration_with_admin_approval_email_content' );
469 wppb_replace_and_save( $email_customizer_array['admin_approval_aproved_status_email_subject'], 'wppb_user_emailc_admin_approval_notif_approved_email_subject' );
470 wppb_replace_and_save( $email_customizer_array['admin_approval_aproved_status_email_content'], 'wppb_user_emailc_admin_approval_notif_approved_email_content' );
471 wppb_replace_and_save( $email_customizer_array['admin_approval_unaproved_status_email_subject'], 'wppb_user_emailc_admin_approval_notif_unapproved_email_subject' );
472 wppb_replace_and_save( $email_customizer_array['admin_approval_unaproved_status_email_content'], 'wppb_user_emailc_admin_approval_notif_unapproved_email_content' );
473 wppb_replace_and_save( $email_customizer_array['registration_w_email_confirmation_email_subject'], 'wppb_user_emailc_registr_w_email_confirm_email_subject' );
474 wppb_replace_and_save( $email_customizer_array['registration_w_email_confirmation_email_content'], 'wppb_user_emailc_registr_w_email_confirm_email_content' );
475 wppb_replace_and_save( $email_customizer_array['admin_default_registration_email_subject'], 'wppb_admin_emailc_default_registration_email_subject' );
476 wppb_replace_and_save( $email_customizer_array['admin_default_registration_email_content'], 'wppb_admin_emailc_default_registration_email_content' );
477 wppb_replace_and_save( $email_customizer_array['admin_registration_w_admin_approval_email_subject'], 'wppb_admin_emailc_registration_with_admin_approval_email_subject' );
478 wppb_replace_and_save( $email_customizer_array['admin_registration_w_admin_approval_email_content'], 'wppb_admin_emailc_registration_with_admin_approval_email_content' );
479 }
480 }
481
482
483 /**
484 * Function that checks if a default userlisting-form is already present
485 *
486 * @since v.2.0
487 *
488 * @param string $old_content
489 * @param string $option_name
490 *
491 */
492 function wppb_replace_and_save( $content, $option_name ){
493 preg_match_all( '/%%([a-z0-9\_]+)%%/', $content, $matches, PREG_PATTERN_ORDER );
494
495 foreach ( $matches[0] as $key => $value )
496 $content = str_replace( $value, '{{'.$matches[1][$key].'}}', $content );
497
498 update_option( $option_name, $content );
499 }
500
501
502 /**
503 * Function that adds backwards compatibility for the default fields only
504 *
505 * @since v.2.0
506 *
507 * @param array $backed_up_manage_fields
508 * @param string $field
509 * @param string $meta_name
510 * @param string $required
511 * @param string $description
512 * @param string $recaptcha_public_key
513 * @param string $recaptcha_private_key
514 *
515 * @return array
516 */
517 function wppb_add_existing_default_fields ( $backed_up_manage_fields = array(), $field, $meta_name, $required, $description = '', $recaptcha_public_key = '', $recaptcha_private_key = '' ){
518 $local_array = array();
519
520 $local_array['id'] = '';
521 $local_array['field'] = $field;
522 $local_array['meta-name'] = $meta_name;
523 $local_array['field-title'] = str_replace( array( 'Default - ', ' (Heading)' ), '', $field );
524 $local_array['description'] = '';
525 $local_array['required'] = $required;
526 $local_array['overwrite-existing'] = 'No';
527 $local_array['row-count'] = '5';
528 $local_array['allowed-image-extensions'] = '.*';
529 $local_array['allowed-upload-extensions'] = '.*';
530 $local_array['avatar-size'] = '100';
531 $local_array['date-format'] = 'mm/dd/yy';
532 $local_array['terms-of-agreement'] = '';
533 $local_array['options'] = '';
534 $local_array['labels'] = '';
535 $local_array['public-key'] = $recaptcha_public_key;
536 $local_array['private-key'] = $recaptcha_private_key;
537 $local_array['default-value'] = '';
538 $local_array['default-option'] = '';
539 $local_array['default-options'] = '';
540 $local_array['default-content'] = '';
541
542 array_push( $backed_up_manage_fields, $local_array );
543
544 return $backed_up_manage_fields;
545 }