PluginProbe
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor / 4.0.3
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor v4.0.3
4.0.3 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 All 341 releases
← All changes | features/upgrades/upgrades.php +287 -9 2.0.2 → 4.0.3 View file →
@@ -1,5 +1,7 @@
1 1 <?php
2 +if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3 +
2 4 include_once ( WPPB_PLUGIN_DIR.'/features/upgrades/upgrades-functions.php' );
3 5
4 6 /**
5 7 * Function that assures backwards compatibility for all future versions, where this is needed
@@ -19,14 +21,17 @@
19 21
20 22 do_action( 'wppb_before_default_changes', PROFILE_BUILDER_VERSION, $wppb_version );
21 23
22 24 if ( version_compare( PROFILE_BUILDER_VERSION, $wppb_version, '>' ) ) {
23 - if ( ( PROFILE_BUILDER == 'Profile Builder Pro' ) || ( PROFILE_BUILDER == 'Profile Builder Hobbyist' ) ){
24 - $upload_dir = wp_upload_dir();
25 -
25 + $paid_versions = array( 'Profile Builder Pro', 'Profile Builder Hobbyist', 'Profile Builder Agency', 'Profile Builder Unlimited', 'Profile Builder Basic' );
26 +
27 + if ( in_array( PROFILE_BUILDER, $paid_versions ) ){
28 +
29 + /* stopped creating them on 01.02.2016 */
30 + /*$upload_dir = wp_upload_dir();
26 31 wp_mkdir_p( $upload_dir['basedir'].'/profile_builder' );
27 32 wp_mkdir_p( $upload_dir['basedir'].'/profile_builder/attachments/' );
28 - wp_mkdir_p( $upload_dir['basedir'].'/profile_builder/avatars/' );
33 + wp_mkdir_p( $upload_dir['basedir'].'/profile_builder/avatars/' );*/
29 34
30 35 // Flush the rewrite rules and add them, if need be, the proper way.
31 36 if ( function_exists( 'wppb_flush_rewrite_rules' ) )
32 37 wppb_flush_rewrite_rules();
@@ -32,10 +37,12 @@
32 37 wppb_flush_rewrite_rules();
33 38
34 39 wppb_pro_hobbyist_v1_3_13();
35 40 }
36 -
37 - if ( PROFILE_BUILDER == 'Profile Builder Pro' ){
41 +
42 + $pro_versions = array( 'Profile Builder Pro', 'Profile Builder Agency', 'Profile Builder Unlimited' );
43 +
44 + if ( in_array( PROFILE_BUILDER, $pro_versions ) ){
38 45 wppb_pro_v1_3_15();
39 46 }
40 47
41 48 update_option( 'wppb_version', PROFILE_BUILDER_VERSION );
@@ -42,17 +49,288 @@
42 49 }
43 50
44 51 //this should run only once, mainly if the old version is < 2.0 (can be anything)
45 52 if ( version_compare( $wppb_version, 2.0, '<' ) ) {
46 - if ( ( PROFILE_BUILDER == 'Profile Builder Pro' ) || ( PROFILE_BUILDER == 'Profile Builder Hobbyist' ) || ( PROFILE_BUILDER == 'Profile Builder Free' ) ){
53 + $all_versions = array( 'Profile Builder Pro', 'Profile Builder Hobbyist', 'Profile Builder Agency', 'Profile Builder Unlimited', 'Profile Builder Basic', 'Profile Builder Free' );
54 +
55 + if ( in_array( PROFILE_BUILDER, $all_versions ) ){
47 56 wppb_pro_hobbyist_free_v2_0();
48 57 }
49 58
50 - if ( PROFILE_BUILDER == 'Profile Builder Pro' ){
59 + $pro_versions = array( 'Profile Builder Pro', 'Profile Builder Agency', 'Profile Builder Unlimited' );
60 +
61 + if ( in_array( PROFILE_BUILDER, $pro_versions ) ){
51 62 wppb_pro_userlisting_compatibility_upgrade();
52 63 wppb_pro_email_customizer_compatibility_upgrade();
53 64 }
54 65 }
66 +
67 + // this should run only once, mainly if the old version is < 2.2.5 (can be anything)
68 + if ( version_compare( $wppb_version, '2.2.5', '<' ) ) {
69 + $pro_versions = array( 'Profile Builder Pro', 'Profile Builder Agency', 'Profile Builder Unlimited' );
70 +
71 + if ( in_array( PROFILE_BUILDER, $pro_versions ) ){
72 + wppb_new_custom_redirects_compatibility();
73 + }
74 + }
75 +
76 + if ( version_compare( $wppb_version, '2.2.5', '<=' ) ) {
77 + if( is_multisite() ){
78 + $wppb_general_settings = get_option( 'wppb_general_settings', 'not_set' );
79 + if ( $wppb_general_settings != 'not_set' ) {
80 + $wppb_general_settings['emailConfirmation'] = 'yes';
81 + update_option('wppb_general_settings', $wppb_general_settings);
82 + }
83 + }
84 +
85 + }
55 86
56 87 do_action ( 'wppb_after_default_changes', PROFILE_BUILDER_VERSION, $wppb_version );
57 88 }
58 -add_action ( 'init', 'wppb_update_patch' );
89 +add_action ( 'init', 'wppb_update_patch' );
90 +
91 +
92 +/**
93 + * before disabling the old plugin addons save their status in the db
94 + */
95 +add_action( 'plugins_loaded', 'wppb_save_old_add_ons_status', 11 );
96 +function wppb_save_old_add_ons_status(){
97 + $old_addon_list = wppb_get_old_addons_slug_list();
98 + $old_addons_status = get_option( 'wppb_old_add_ons_status', array() );
99 +
100 + //if it's triggered in the frontend we need this include
101 + if( !function_exists('is_plugin_active') )
102 + include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
103 +
104 + foreach( $old_addon_list as $addon_slug ){
105 + if( !isset( $old_addons_status[$addon_slug] ) ) {//don't change the status, just take the first run through
106 + if ( is_plugin_active($addon_slug) )
107 + $old_addons_status[$addon_slug] = true;
108 + else
109 + $old_addons_status[$addon_slug] = false;
110 + }
111 + }
112 +
113 + update_option( 'wppb_old_add_ons_status', $old_addons_status );
114 +}
115 +
116 +
117 +/**
118 + * Deactivate the old addons as plugins
119 + */
120 +add_action( 'plugins_loaded', 'wppb_disable_old_add_ons', 12 );
121 +function wppb_disable_old_add_ons(){
122 +
123 + //if it's triggered in the frontend we need this include
124 + if( !function_exists('is_plugin_active') )
125 + include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
126 +
127 + $old_addons_list = wppb_get_old_addons_slug_list();
128 + $deactivated_addons = 0;
129 + foreach( $old_addons_list as $addon_slug ){
130 + if( is_plugin_active($addon_slug) ){
131 + if( is_multisite() ){
132 + if( is_plugin_active_for_network($addon_slug) )
133 + deactivate_plugins($addon_slug, true);
134 + else
135 + deactivate_plugins($addon_slug, true, false);
136 + }
137 + else {
138 + deactivate_plugins($addon_slug, true);
139 + }
140 + $deactivated_addons++;
141 + }
142 + }
143 + if ( isset( $_GET['activate'] ) && $deactivated_addons === 1 ){
144 + add_action( 'load-plugins.php',
145 + function(){
146 + add_action( 'in_admin_header',
147 + function(){
148 + add_filter( 'gettext', 'wppb_disable_old_add_ons_notice', 99, 3 );
149 + }
150 + );
151 + }
152 + );
153 + } elseif ( isset( $_GET['activate-multi'] ) && $deactivated_addons !== 0 ){
154 + add_action( 'admin_notices', 'wppb_disable_old_add_ons_notice_multi' );
155 + }
156 +}
157 +
158 +function wppb_disable_old_add_ons_notice( $translated_text, $untranslated_text, $domain )
159 +{
160 + $old = array(
161 + "Plugin activated."
162 + );
163 +
164 + $new = "This Profile Builder add-on has been migrated to the main plugin and is no longer used. You can delete it.";
165 +
166 + if ( in_array( $untranslated_text, $old, true ) )
167 + {
168 + $translated_text = $new;
169 + remove_filter( current_filter(), __FUNCTION__, 99 );
170 + }
171 + return $translated_text;
172 +}
173 +
174 +function wppb_disable_old_add_ons_notice_multi() {
175 + ?>
176 + <div id="message" class="updated notice is-dismissible">
177 + <p><?php esc_html_e( 'This Profile Builder add-on has been migrated to the main plugin and is no longer used. You can delete it.', 'profile-builder' ); ?></p>
178 + </div>
179 + <?php
180 +}
181 +
182 +add_action( 'plugins_loaded', 'wppb_generate_new_free_add_ons_setting', 13 );
183 +function wppb_generate_new_free_add_ons_setting(){
184 + $wppb_free_add_ons_settings = get_option( 'wppb_free_add_ons_settings', array() );
185 + if( empty( $wppb_free_add_ons_settings ) ){
186 +
187 + $old_addons_list = wppb_get_old_addons_slug_list();
188 + foreach( $old_addons_list as $addon_slug ){
189 +
190 + switch ($addon_slug) {
191 + case 'pb-add-on-customization-toolbox/index.php':
192 + if( !wppb_was_addon_active_as_plugin( $addon_slug ) ){
193 + //it might have been active at some point and we need to remove the settings so they don't get activated in Advance Settings
194 + $toolbox_settings = array( 'wppb_toolbox_forms_settings', 'wppb_toolbox_fields_settings', 'wppb_toolbox_userlisting_settings', 'wppb_toolbox_shortcodes_settings', 'wppb_toolbox_admin_settings' );
195 + foreach( $toolbox_settings as $toolbox_setting ){
196 + delete_option( $toolbox_setting );
197 + }
198 + }
199 + break;
200 + case 'pb-add-on-gdpr-communication-preferences/pb-gdpr-communication-preferences.php':
201 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
202 + $wppb_free_add_ons_settings['gdpr-communication-preferences'] = true;
203 + else
204 + $wppb_free_add_ons_settings['gdpr-communication-preferences'] = false;
205 + break;
206 + case 'pb-add-on-labels-edit/pble.php':
207 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
208 + $wppb_free_add_ons_settings['labels-edit'] = true;
209 + else
210 + $wppb_free_add_ons_settings['labels-edit'] = false;
211 + break;
212 + case 'pb-add-on-maximum-character-length/index.php':
213 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
214 + $wppb_free_add_ons_settings['maximum-character-length'] = true;
215 + else
216 + $wppb_free_add_ons_settings['maximum-character-length'] = false;
217 + break;
218 + case 'pb-add-on-custom-css-classes-on-fields/index.php':
219 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
220 + $wppb_free_add_ons_settings['custom-css-classes-on-fields'] = true;
221 + else
222 + $wppb_free_add_ons_settings['custom-css-classes-on-fields'] = false;
223 + break;
224 + case 'pb-add-on-import-export/pbie.php':
225 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
226 + $wppb_free_add_ons_settings['import-export'] = true;
227 + else
228 + $wppb_free_add_ons_settings['import-export'] = false;
229 + break;
230 + }
231 +
232 +
233 + }
234 +
235 + add_option( 'wppb_free_add_ons_settings', $wppb_free_add_ons_settings );
236 + }
237 +
238 + // Add an option for the new User Profile Picture add-on
239 + if ( !array_key_exists( 'user-profile-picture', $wppb_free_add_ons_settings ) ) {
240 +
241 + $wppb_free_add_ons_settings['user-profile-picture'] = false;
242 + }
243 +
244 + update_option( 'wppb_free_add_ons_settings', $wppb_free_add_ons_settings );
245 +
246 +}
247 +
248 +add_action( 'plugins_loaded', 'wppb_generate_new_advanced_add_ons_setting', 13 );
249 +function wppb_generate_new_advanced_add_ons_setting(){
250 + $wppb_advanced_add_ons_settings = get_option( 'wppb_advanced_add_ons_settings', array() );
251 + if( empty( $wppb_advanced_add_ons_settings ) ){
252 +
253 + $old_addons_list = wppb_get_old_addons_slug_list();
254 + foreach( $old_addons_list as $addon_slug ){
255 +
256 + switch ($addon_slug) {
257 + case 'pb-add-on-buddypress/index.php':
258 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
259 + $wppb_advanced_add_ons_settings['buddypress'] = true;
260 + else
261 + $wppb_advanced_add_ons_settings['buddypress'] = false;
262 + break;
263 + case 'pb-add-on-social-connect/index.php':
264 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
265 + $wppb_advanced_add_ons_settings['social-connect'] = true;
266 + else
267 + $wppb_advanced_add_ons_settings['social-connect'] = false;
268 + break;
269 + case 'pb-add-on-woocommerce/index.php':
270 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
271 + $wppb_advanced_add_ons_settings['woocommerce'] = true;
272 + else
273 + $wppb_advanced_add_ons_settings['woocommerce'] = false;
274 + break;
275 + case 'pb-add-on-multi-step-forms/index.php':
276 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
277 + $wppb_advanced_add_ons_settings['multi-step-forms'] = true;
278 + else
279 + $wppb_advanced_add_ons_settings['multi-step-forms'] = false;
280 + break;
281 + case 'pb-add-on-mailchimp-integration/index.php':
282 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
283 + $wppb_advanced_add_ons_settings['mailchimp-integration'] = true;
284 + else
285 + $wppb_advanced_add_ons_settings['mailchimp-integration'] = false;
286 + break;
287 + case 'pb-add-on-bbpress/index.php':
288 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
289 + $wppb_advanced_add_ons_settings['bbpress'] = true;
290 + else
291 + $wppb_advanced_add_ons_settings['bbpress'] = false;
292 + break;
293 + case 'pb-add-on-campaign-monitor/index.php':
294 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
295 + $wppb_advanced_add_ons_settings['campaign-monitor'] = true;
296 + else
297 + $wppb_advanced_add_ons_settings['campaign-monitor'] = false;
298 + break;
299 + case 'pb-add-on-field-visibility/index.php':
300 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
301 + $wppb_advanced_add_ons_settings['field-visibility'] = true;
302 + else
303 + $wppb_advanced_add_ons_settings['field-visibility'] = false;
304 + break;
305 + case 'pb-add-on-edit-profile-approved-by-admin/index.php':
306 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
307 + $wppb_advanced_add_ons_settings['edit-profile-approved-by-admin'] = true;
308 + else
309 + $wppb_advanced_add_ons_settings['edit-profile-approved-by-admin'] = false;
310 + break;
311 + case 'pb-add-on-custom-profile-menus/index.php':
312 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
313 + $wppb_advanced_add_ons_settings['custom-profile-menus'] = true;
314 + else
315 + $wppb_advanced_add_ons_settings['custom-profile-menus'] = false;
316 + break;
317 + case 'pb-add-on-mailpoet-integration/index.php':
318 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
319 + $wppb_advanced_add_ons_settings['mailpoet-integration'] = true;
320 + else
321 + $wppb_advanced_add_ons_settings['mailpoet-integration'] = false;
322 + break;
323 + case 'pb-add-on-progress-bar/index.php':
324 + if( wppb_was_addon_active_as_plugin( $addon_slug ) )
325 + $wppb_advanced_add_ons_settings['progress-bar'] = true;
326 + else
327 + $wppb_advanced_add_ons_settings['progress-bar'] = false;
328 + break;
329 + }
330 +
331 +
332 + }
333 +
334 + add_option( 'wppb_advanced_add_ons_settings', $wppb_advanced_add_ons_settings );
335 + }
336 +}