User registration & user profile – Profile Builder - Version 2.3.8

Version Description

  • Fixed an issue with the redirect parameter for login widget
  • Added extra_attr filter for recover password forms: 'wppb_recover_password_extra_attr'
  • Added filter in select fields for placeholder labels add-on support
  • Fixed the cozmoslabs.com url from http to https
Download this release

Release Info

Developer madalin.ungureanu
Plugin Icon 128x128 User registration & user profile – Profile Builder
Version 2.3.8
Comparing to
See all releases

Code changes from version 2.3.7 to 2.3.8

admin/add-ons.php CHANGED
@@ -159,7 +159,7 @@ function wppb_add_ons_content() {
159
  // PB version type does not match
160
  } else {
161
 
162
- echo '<a target="_blank" class="button button-secondary right" href="http://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page-upgrade-button&utm_campaign=PB' . $version . '">' . __('Upgrade Profile Builder', 'profile-builder') . '</a>';
163
  echo '<span class="dashicons dashicons-no-alt"></span><span class="wppb-add-on-message">' . __('Not compatible with Profile Builder', 'profile-builder') . ' ' . $version . '</span>';
164
 
165
  }
@@ -277,7 +277,7 @@ function wppb_add_ons_content() {
277
  */
278
  function wppb_add_ons_get_remote_content() {
279
 
280
- $response = wp_remote_get('http://www.cozmoslabs.com/wp-content/plugins/cozmoslabs-products-add-ons/profile-builder-add-ons.json');
281
 
282
  if( is_wp_error($response) ) {
283
  return false;
@@ -360,7 +360,7 @@ function wppb_add_on_download_zip_file() {
360
  $wppb_add_on_download_url = $_POST['wppb_add_on_download_url'];
361
  $wppb_add_on_zip_name = $_POST['wppb_add_on_zip_name'];
362
 
363
- if( strpos( $wppb_add_on_download_url, 'http://www.cozmoslabs.com/' ) === false && strpos( $wppb_add_on_download_url, 'https://downloads.wordpress.org/' ) === false )
364
  wp_die();
365
 
366
  // Get .zip file
159
  // PB version type does not match
160
  } else {
161
 
162
+ echo '<a target="_blank" class="button button-secondary right" href="https://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page-upgrade-button&utm_campaign=PB' . $version . '">' . __('Upgrade Profile Builder', 'profile-builder') . '</a>';
163
  echo '<span class="dashicons dashicons-no-alt"></span><span class="wppb-add-on-message">' . __('Not compatible with Profile Builder', 'profile-builder') . ' ' . $version . '</span>';
164
 
165
  }
277
  */
278
  function wppb_add_ons_get_remote_content() {
279
 
280
+ $response = wp_remote_get('https://www.cozmoslabs.com/wp-content/plugins/cozmoslabs-products-add-ons/profile-builder-add-ons.json');
281
 
282
  if( is_wp_error($response) ) {
283
  return false;
360
  $wppb_add_on_download_url = $_POST['wppb_add_on_download_url'];
361
  $wppb_add_on_zip_name = $_POST['wppb_add_on_zip_name'];
362
 
363
+ if( strpos( $wppb_add_on_download_url, 'https://www.cozmoslabs.com/' ) === false && strpos( $wppb_add_on_download_url, 'https://downloads.wordpress.org/' ) === false )
364
  wp_die();
365
 
366
  // Get .zip file
admin/basic-info.php CHANGED
@@ -87,7 +87,7 @@ function wppb_basic_info_content() {
87
  <h3><?php _e( 'Customize Your Forms The Way You Want (*)', 'profile-builder' ); ?></h3>
88
  <p><?php _e( 'With Extra Profile Fields you can create the exact registration form your project needs.', 'profile-builder' ); ?></p>
89
  <?php if ($version == 'Free'){ ?>
90
- <p><a href="http://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=basicinfo-extrafields&utm_campaign=PBFree" class="wppb-button-free"><?php _e( 'Extra Profile Fields are available in Hobbyist or PRO versions', 'profile-builder' ); ?></a></p>
91
  <?php } else {?>
92
  <p><a href="admin.php?page=manage-fields" class="button"><?php _e( 'Get started with extra fields', 'profile-builder' ); ?></a></p>
93
  <?php } ?>
@@ -118,7 +118,7 @@ function wppb_basic_info_content() {
118
  <p><a href="admin.php?page=profile-builder-modules" class="button"><?php _e( 'Enable your modules', 'profile-builder' ); ?></a></p>
119
  <?php endif; ?>
120
  <?php if ($version == 'Free'){ ?>
121
- <p><a href="http://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=basicinfo-modules&utm_campaign=PBFree" class="wppb-button-free"><?php _e( 'Find out more about PRO Modules', 'profile-builder' ); ?></a></p>
122
  <?php }?>
123
  </div>
124
  <div class="wppb-row wppb-3-col">
@@ -170,8 +170,8 @@ function wppb_basic_info_content() {
170
  <div>
171
  <h3>Extra Notes</h3>
172
  <ul>
173
- <li><?php printf( __( ' * only available in the %1$sHobbyist and Pro versions%2$s.', 'profile-builder' ) ,'<a href="http://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=basicinfo-extranotes&utm_campaign=PB'.$version.'" target="_blank">', '</a>' );?></li>
174
- <li><?php printf( __( '** only available in the %1$sPro version%2$s.', 'profile-builder' ), '<a href="http://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=basicinfo-extranotes&utm_campaign=PB'.$version.'" target="_blank">', '</a>' );?></li>
175
  </ul>
176
  </div>
177
  </div>
87
  <h3><?php _e( 'Customize Your Forms The Way You Want (*)', 'profile-builder' ); ?></h3>
88
  <p><?php _e( 'With Extra Profile Fields you can create the exact registration form your project needs.', 'profile-builder' ); ?></p>
89
  <?php if ($version == 'Free'){ ?>
90
+ <p><a href="https://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=basicinfo-extrafields&utm_campaign=PBFree" class="wppb-button-free"><?php _e( 'Extra Profile Fields are available in Hobbyist or PRO versions', 'profile-builder' ); ?></a></p>
91
  <?php } else {?>
92
  <p><a href="admin.php?page=manage-fields" class="button"><?php _e( 'Get started with extra fields', 'profile-builder' ); ?></a></p>
93
  <?php } ?>
118
  <p><a href="admin.php?page=profile-builder-modules" class="button"><?php _e( 'Enable your modules', 'profile-builder' ); ?></a></p>
119
  <?php endif; ?>
120
  <?php if ($version == 'Free'){ ?>
121
+ <p><a href="https://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=basicinfo-modules&utm_campaign=PBFree" class="wppb-button-free"><?php _e( 'Find out more about PRO Modules', 'profile-builder' ); ?></a></p>
122
  <?php }?>
123
  </div>
124
  <div class="wppb-row wppb-3-col">
170
  <div>
171
  <h3>Extra Notes</h3>
172
  <ul>
173
+ <li><?php printf( __( ' * only available in the %1$sHobbyist and Pro versions%2$s.', 'profile-builder' ) ,'<a href="https://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=basicinfo-extranotes&utm_campaign=PB'.$version.'" target="_blank">', '</a>' );?></li>
174
+ <li><?php printf( __( '** only available in the %1$sPro version%2$s.', 'profile-builder' ), '<a href="https://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=basicinfo-extranotes&utm_campaign=PB'.$version.'" target="_blank">', '</a>' );?></li>
175
  </ul>
176
  </div>
177
  </div>
admin/general-settings.php CHANGED
@@ -149,7 +149,7 @@ function wppb_general_settings_content() {
149
  <?php _e( '"Admin Approval" Feature:', 'profile-builder' ); ?>
150
  </th>
151
  <td>
152
- <p><em> <?php printf( __( 'You decide who is a user on your website. Get notified via email or approve multiple users at once from the WordPress UI. Enable Admin Approval by upgrading to %1$sHobbyist or PRO versions%2$s.', 'profile-builder' ),'<a href="http://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=general-settings-link&utm_campaign=PBFree">', '</a>' )?></em></p>
153
  </td>
154
  </tr>
155
  <?php } ?>
149
  <?php _e( '"Admin Approval" Feature:', 'profile-builder' ); ?>
150
  </th>
151
  <td>
152
+ <p><em> <?php printf( __( 'You decide who is a user on your website. Get notified via email or approve multiple users at once from the WordPress UI. Enable Admin Approval by upgrading to %1$sHobbyist or PRO versions%2$s.', 'profile-builder' ),'<a href="https://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=general-settings-link&utm_campaign=PBFree">', '</a>' )?></em></p>
153
  </td>
154
  </tr>
155
  <?php } ?>
admin/manage-fields.php CHANGED
@@ -49,6 +49,7 @@ function wppb_manage_fields_submenu(){
49
  $manage_field_types[] = 'Input (Hidden)';
50
  $manage_field_types[] = 'Textarea';
51
  $manage_field_types[] = 'WYSIWYG';
 
52
  $manage_field_types[] = 'Select';
53
  $manage_field_types[] = 'Select (Multiple)';
54
  $manage_field_types[] = 'Select (Country)';
@@ -65,13 +66,15 @@ function wppb_manage_fields_submenu(){
65
  $manage_field_types[] = 'Colorpicker';
66
  $manage_field_types[] = 'reCAPTCHA';
67
  $manage_field_types[] = 'Validation';
 
 
68
  }
69
 
70
 
71
  //Free to Pro call to action on Manage Fields page
72
  $field_description = __('Choose one of the supported field types','profile-builder');
73
  if( PROFILE_BUILDER == 'Profile Builder Free' ) {
74
- $field_description .= sprintf( __('. Extra Field Types are available in <a href="%s">Hobbyist or PRO versions</a>.' , 'profile-builder'), esc_url( 'http://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=manage-fields-link&utm_campaign=PBFree' ) );
75
  }
76
 
77
 
@@ -131,8 +134,15 @@ function wppb_manage_fields_submenu(){
131
  array( 'type' => 'text', 'slug' => 'validation-possible-values', 'title' => __( 'Allowable Values', 'profile-builder' ), 'description' => __( "Enter a comma separated list of possible values. Upon registration if the value provided by the user does not match one of these values, the user will not be registered.", 'profile-builder' ) ),
132
  array( 'type' => 'text', 'slug' => 'custom-error-message', 'title' => __( 'Error Message', 'profile-builder' ), 'description' => __( "Set a custom error message that will be displayed to the user.", 'profile-builder' ) ),
133
  array( 'type' => 'select', 'slug' => 'time-format', 'title' => __( 'Time Format', 'profile-builder' ), 'options' => array( '%12 Hours%12', '%24 Hours%24' ), 'description' => __( 'Specify the time format.', 'profile-builder' ) ),
 
 
 
 
 
134
  array( 'type' => 'textarea', 'slug' => 'default-content', 'title' => __( 'Default Content', 'profile-builder' ), 'description' => __( "Default value of the textarea", 'profile-builder' ) ),
135
- array( 'type' => 'select', 'slug' => 'required', 'title' => __( 'Required', 'profile-builder' ), 'options' => array( 'No', 'Yes' ), 'default' => 'No', 'description' => __( 'Whether the field is required or not', 'profile-builder' ) ),
 
 
136
  array( 'type' => 'select', 'slug' => 'overwrite-existing', 'title' => __( 'Overwrite Existing', 'profile-builder' ), 'options' => array( 'No', 'Yes' ), 'default' => 'No', 'description' => __( "Selecting 'Yes' will add the field to the list, but will overwrite any other field in the database that has the same meta-name<br/>Use this at your own risk", 'profile-builder' ) ),
137
  ) );
138
 
@@ -1245,3 +1255,98 @@ function wppb_wpml_compat_with_fields( $oldvalue, $_newvalue ){
1245
  }
1246
  }
1247
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  $manage_field_types[] = 'Input (Hidden)';
50
  $manage_field_types[] = 'Textarea';
51
  $manage_field_types[] = 'WYSIWYG';
52
+ $manage_field_types[] = 'Phone';
53
  $manage_field_types[] = 'Select';
54
  $manage_field_types[] = 'Select (Multiple)';
55
  $manage_field_types[] = 'Select (Country)';
66
  $manage_field_types[] = 'Colorpicker';
67
  $manage_field_types[] = 'reCAPTCHA';
68
  $manage_field_types[] = 'Validation';
69
+ $manage_field_types[] = 'Map';
70
+ $manage_field_types[] = 'HTML';
71
  }
72
 
73
 
74
  //Free to Pro call to action on Manage Fields page
75
  $field_description = __('Choose one of the supported field types','profile-builder');
76
  if( PROFILE_BUILDER == 'Profile Builder Free' ) {
77
+ $field_description .= sprintf( __('. Extra Field Types are available in <a href="%s">Hobbyist or PRO versions</a>.' , 'profile-builder'), esc_url( 'https://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=manage-fields-link&utm_campaign=PBFree' ) );
78
  }
79
 
80
 
134
  array( 'type' => 'text', 'slug' => 'validation-possible-values', 'title' => __( 'Allowable Values', 'profile-builder' ), 'description' => __( "Enter a comma separated list of possible values. Upon registration if the value provided by the user does not match one of these values, the user will not be registered.", 'profile-builder' ) ),
135
  array( 'type' => 'text', 'slug' => 'custom-error-message', 'title' => __( 'Error Message', 'profile-builder' ), 'description' => __( "Set a custom error message that will be displayed to the user.", 'profile-builder' ) ),
136
  array( 'type' => 'select', 'slug' => 'time-format', 'title' => __( 'Time Format', 'profile-builder' ), 'options' => array( '%12 Hours%12', '%24 Hours%24' ), 'description' => __( 'Specify the time format.', 'profile-builder' ) ),
137
+ array( 'type' => 'text', 'slug' => 'map-api-key', 'title' => __( 'Google Maps API Key', 'profile-builder' ), 'description' => __( 'Enter your Google Maps API key ( <a href="https://console.developers.google.com/flows/enableapi?apiid=maps_backend" target="_blank">Get your API key</a> ). If more than one map fields are added to a form the API key from the first map displayed will be used.', 'profile-builder' ) ),
138
+ array( 'type' => 'text', 'slug' => 'map-default-lat', 'title' => __( 'Default Latitude', 'profile-builder' ), 'description' => __( "The latitude at which the map should be displayed when no pins are attached.", 'profile-builder' ) ),
139
+ array( 'type' => 'text', 'slug' => 'map-default-lng', 'title' => __( 'Default Longitude', 'profile-builder' ), 'description' => __( "The longitude at which the map should be displayed when no pins are attached.", 'profile-builder' ) ),
140
+ array( 'type' => 'text', 'slug' => 'map-default-zoom', 'title' => __( 'Default Zoom Level', 'profile-builder' ), 'description' => __( "Add a number from 0 to 19. The higher the number the higher the zoom.", 'profile-builder' ), 'default' => 16 ),
141
+ array( 'type' => 'text', 'slug' => 'map-height', 'title' => __( 'Map Height', 'profile-builder' ), 'description' => __( "The height of the map.", 'profile-builder' ), 'default' => 400 ),
142
  array( 'type' => 'textarea', 'slug' => 'default-content', 'title' => __( 'Default Content', 'profile-builder' ), 'description' => __( "Default value of the textarea", 'profile-builder' ) ),
143
+ array( 'type' => 'textarea', 'slug' => 'html-content', 'title' => __( 'HTML Content', 'profile-builder' ), 'description' => __( "Add your HTML (or text) content", 'profile-builder' ) ),
144
+ array( 'type' => 'text', 'slug' => 'phone-format', 'title' => __( 'Phone Format', 'profile-builder' ), 'default' => '(###) ###-####', 'description' => __( "You can use: # for numbers, parentheses ( ), - sign, + sign, dot . and spaces.", 'profile-builder' ) .'<br>'. __( "Eg. (###) ###-####", 'profile-builder' ) .'<br>'. __( "Empty field won't check for correct phone number.", 'profile-builder' ) ),
145
+ array( 'type' => 'select', 'slug' => 'required', 'title' => __( 'Required', 'profile-builder' ), 'options' => array( 'No', 'Yes' ), 'default' => 'No', 'description' => __( 'Whether the field is required or not', 'profile-builder' ) ),
146
  array( 'type' => 'select', 'slug' => 'overwrite-existing', 'title' => __( 'Overwrite Existing', 'profile-builder' ), 'options' => array( 'No', 'Yes' ), 'default' => 'No', 'description' => __( "Selecting 'Yes' will add the field to the list, but will overwrite any other field in the database that has the same meta-name<br/>Use this at your own risk", 'profile-builder' ) ),
147
  ) );
148
 
1255
  }
1256
  }
1257
  }
1258
+
1259
+
1260
+ /*
1261
+ * Returns the HTML for a map given the field
1262
+ *
1263
+ */
1264
+ function wppb_get_map_output( $field, $args ) {
1265
+
1266
+ $defaults = array(
1267
+ 'markers' => array(),
1268
+ 'editable' => true,
1269
+ 'show_search' => true,
1270
+ 'extra_attr' => ''
1271
+ );
1272
+
1273
+ $args = wp_parse_args( $args, $defaults );
1274
+
1275
+ $return = '';
1276
+
1277
+ // Search box
1278
+ // The style:left=-99999px is set to hide the input from the viewport. It will be rewritten when the map gets initialised
1279
+ if( $args['show_search'] )
1280
+ $return .= '<input style="left: -99999px" type="text" id="' . $field['meta-name'] . '-search-box" class="wppb-map-search-box" placeholder="' . __( 'Search Location', 'profile-builder' ) . '" />';
1281
+
1282
+ // Map container
1283
+ $return .= '<div id="' . $field['meta-name'] . '" class="wppb-map-container" style="height: ' . $field['map-height'] . 'px;" data-editable="' . ( $args['editable'] ? 1 : 0 ) . '" data-default-zoom="' . ( !empty( $field['map-default-zoom'] ) ? (int)$field['map-default-zoom'] : 16 ) . '" data-default-lat="' . $field['map-default-lat'] . '" data-default-lng="' . $field['map-default-lng'] . '" ' . $args['extra_attr'] . '></div>';
1284
+
1285
+ if( !empty( $args['markers'] ) ) {
1286
+ foreach( $args['markers'] as $marker )
1287
+ $return .= '<input name="' . $field['meta-name'] . '[]" type="hidden" class="wppb-map-marker" value="' . $marker . '" />';
1288
+ }
1289
+
1290
+ return $return;
1291
+
1292
+ }
1293
+
1294
+
1295
+ /*
1296
+ * Returns all the saved markers for a map field for a particular user
1297
+ *
1298
+ */
1299
+ function wppb_get_user_map_markers( $user_id, $meta_name ) {
1300
+
1301
+ global $wpdb;
1302
+
1303
+ $meta_name .= '_';
1304
+
1305
+ $results = $wpdb->get_results( "SELECT meta_value FROM {$wpdb->usermeta} WHERE user_id={$user_id} AND meta_key LIKE '%{$meta_name}%'", ARRAY_N );
1306
+
1307
+ foreach( $results as $key => $result )
1308
+ $results[$key] = $result[0];
1309
+
1310
+ return $results;
1311
+
1312
+ }
1313
+
1314
+ /*
1315
+ * Deletes from the database all saved markers
1316
+ *
1317
+ */
1318
+ function wppb_delete_user_map_markers( $user_id, $meta_name ) {
1319
+
1320
+ global $wpdb;
1321
+
1322
+ $meta_name .= '_';
1323
+
1324
+ $delete = $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->usermeta} WHERE user_id=%d AND meta_key LIKE %s", $user_id, '%' . $meta_name . '%' ) );
1325
+
1326
+ wp_cache_delete( $user_id, 'user_meta' );
1327
+
1328
+ }
1329
+
1330
+
1331
+ /*
1332
+ * Save markers upon user activation
1333
+ */
1334
+ function wppb_activate_user_map_field( $user_id, $password, $meta ) {
1335
+
1336
+ $manage_fields = get_option( 'wppb_manage_fields', array() );
1337
+
1338
+ if( !empty( $manage_fields ) ) {
1339
+ foreach( $manage_fields as $field ) {
1340
+
1341
+ if( $field['field'] == 'Map' && !empty( $meta[wppb_handle_meta_name($field['meta-name'])] ) && is_array( $meta[wppb_handle_meta_name( $field['meta-name'] )] ) ) {
1342
+
1343
+ foreach( $meta[wppb_handle_meta_name( $field['meta-name'] )] as $key => $position )
1344
+ update_user_meta( $user_id, $field['meta-name'] . '_' . $key, $position );
1345
+
1346
+ }
1347
+
1348
+ }
1349
+ }
1350
+
1351
+ }
1352
+ add_action( 'wppb_activate_user', 'wppb_activate_user_map_field', 10, 3 );
admin/pms-cross-promotion.php CHANGED
@@ -26,7 +26,7 @@ function wppb_pms_cross_promo() {
26
  <hr />
27
  <div class="wppb-row">
28
  <p>One of the most requested features in Profile Builder was for users to be able to pay for an account.</p>
29
- <p>Now that's possible using the free WordPress plugin - <a href="http://www.cozmoslabs.com/wordpress-paid-member-subscriptions/?utm_source=wpbackend&utm_medium=clientsite&utm_content=pb-pms-promo&utm_campaign=PBFree">Paid Member Subscriptions</a>.</p>
30
  </div>
31
 
32
 
26
  <hr />
27
  <div class="wppb-row">
28
  <p>One of the most requested features in Profile Builder was for users to be able to pay for an account.</p>
29
+ <p>Now that's possible using the free WordPress plugin - <a href="https://www.cozmoslabs.com/wordpress-paid-member-subscriptions/?utm_source=wpbackend&utm_medium=clientsite&utm_content=pb-pms-promo&utm_campaign=PBFree">Paid Member Subscriptions</a>.</p>
30
  </div>
31
 
32
 
admin/register-version.php CHANGED
@@ -78,9 +78,9 @@ function wppb_serial_form($version, $fullname){
78
  elseif ( $wppb_profile_builder_serial_status == 'notFound' )
79
  echo '<span class="validateStatus"><img src="'.WPPB_PLUGIN_URL.'/assets/images/icon_error.png" title="'.__( 'The serial number entered couldn\'t be validated!','profile-builder' ).'"/></span>';
80
  elseif ( strpos( $wppb_profile_builder_serial_status, 'aboutToExpire') !== false )
81
- echo '<span class="validateStatus"><img src="' . WPPB_PLUGIN_URL . '/assets/images/icon_error.png" title="' . __('The serial number is about to expire soon!', 'profile-builder') . '"/>'. sprintf( __(' Your serial number is about to expire, please %1$s Renew Your License%2$s.','profile-builder'), "<a href='http://www.cozmoslabs.com/downloads/profile-builder-". $version ."-v2-yearly-renewal/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-Renewal' >", "</a>").'</span>';
82
  elseif ( $wppb_profile_builder_serial_status == 'expired' )
83
- echo '<span class="validateStatus"><img src="'.WPPB_PLUGIN_URL.'/assets/images/icon_error.png" title="'.__( 'The serial number couldn\'t be validated because it expired!','profile-builder' ).'"/>'. sprintf( __(' Your serial number is expired, please %1$s Renew Your License%2$s.','profile-builder'), "<a href='http://www.cozmoslabs.com/downloads/profile-builder-". $version ."-v2-yearly-renewal/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-Renewal' >", "</a>").'</span>';
84
  elseif ( $wppb_profile_builder_serial_status == 'serverDown' )
85
  echo '<span class="validateStatus"><img src="'.WPPB_PLUGIN_URL.'/assets/images/icon_error.png" title="'.__( 'The serial number couldn\'t be validated because process timed out. This is possible due to the server being down. Please try again later!','profile-builder' ).'"/></span>';
86
  ?>
@@ -240,13 +240,13 @@ if ( $wppb_profile_builder_pro_hobbyist_serial_status == 'notFound' || $wppb_pro
240
  else
241
  $register_url = network_admin_url( 'admin.php?page=profile-builder-register' );
242
 
243
- new wppb_add_notices( 'wppb', 'profile_builder_pro', sprintf( __( '<p>Your <strong>Profile Builder</strong> serial number is invalid or missing. <br/>Please %1$sregister your copy%2$s to receive access to automatic updates and support. Need a license key? %3$sPurchase one now%4$s</p>', 'profile-builder'), "<a href='". $register_url ."'>", "</a>", "<a href='http://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-SN-Purchase' target='_blank' class='button-primary'>", "</a>" ), 'wppb_profile_builder_pro_serial_status' );
244
  }
245
  elseif ( $wppb_profile_builder_pro_hobbyist_serial_status == 'expired' ){
246
- new wppb_add_notices( 'wppb_expired', 'profile_builder_pro', sprintf( __( '<p>Your <strong>Profile Builder</strong> license has expired. <br/>Please %1$sRenew Your Licence%2$s to continue receiving access to product downloads, automatic updates and support. %3$sRenew now and get 50&#37; off %4$s %5$sDismiss%6$s</p>', 'profile-builder'), "<a href='http://www.cozmoslabs.com/downloads/profile-builder-". $version ."-v2-yearly-renewal/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-Renewal' target='_blank'>", "</a>", "<a href='http://www.cozmoslabs.com/downloads/profile-builder-".$version."-v2-yearly-renewal/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-Renewal' target='_blank' class='button-primary'>", "</a>", "<a href='". esc_url( add_query_arg( 'wppb_expired_dismiss_notification', '0' ) ) ."' class='wppb-dismiss-notification'>", "</a>" ), 'wppb_profile_builder_pro_serial_status' );
247
  }
248
  elseif( strpos( $wppb_profile_builder_pro_hobbyist_serial_status, 'aboutToExpire' ) === 0 ){
249
  $serial_status_parts = explode( '#', $wppb_profile_builder_pro_hobbyist_serial_status );
250
  $date = $serial_status_parts[1];
251
- new wppb_add_notices( 'wppb_about_to_expire', 'profile_builder_pro', sprintf( __( '<p>Your <strong>Profile Builder</strong> license is about to expire on %5$s. <br/>Please %1$sRenew Your Licence%2$s to continue receiving access to product downloads, automatic updates and support. %3$sRenew now and get 50&#37; off %4$s %6$sDismiss%7$s</p>', 'profile-builder'), "<a href='http://www.cozmoslabs.com/downloads/profile-builder-". $version ."-v2-yearly-renewal/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-Renewal' target='_blank'>", "</a>", "<a href='http://www.cozmoslabs.com/downloads/profile-builder-".$version."-v2-yearly-renewal/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-Renewal' target='_blank' class='button-primary'>", "</a>", $date, "<a href='". esc_url( add_query_arg( 'wppb_about_to_expire_dismiss_notification', '0' ) )."' class='wppb-dismiss-notification'>", "</a>" ), 'wppb_profile_builder_pro_serial_status' );
252
  }
78
  elseif ( $wppb_profile_builder_serial_status == 'notFound' )
79
  echo '<span class="validateStatus"><img src="'.WPPB_PLUGIN_URL.'/assets/images/icon_error.png" title="'.__( 'The serial number entered couldn\'t be validated!','profile-builder' ).'"/></span>';
80
  elseif ( strpos( $wppb_profile_builder_serial_status, 'aboutToExpire') !== false )
81
+ echo '<span class="validateStatus"><img src="' . WPPB_PLUGIN_URL . '/assets/images/icon_error.png" title="' . __('The serial number is about to expire soon!', 'profile-builder') . '"/>'. sprintf( __(' Your serial number is about to expire, please %1$s Renew Your License%2$s.','profile-builder'), "<a href='https://www.cozmoslabs.com/downloads/profile-builder-". $version ."-v2-yearly-renewal/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-Renewal' >", "</a>").'</span>';
82
  elseif ( $wppb_profile_builder_serial_status == 'expired' )
83
+ echo '<span class="validateStatus"><img src="'.WPPB_PLUGIN_URL.'/assets/images/icon_error.png" title="'.__( 'The serial number couldn\'t be validated because it expired!','profile-builder' ).'"/>'. sprintf( __(' Your serial number is expired, please %1$s Renew Your License%2$s.','profile-builder'), "<a href='https://www.cozmoslabs.com/downloads/profile-builder-". $version ."-v2-yearly-renewal/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-Renewal' >", "</a>").'</span>';
84
  elseif ( $wppb_profile_builder_serial_status == 'serverDown' )
85
  echo '<span class="validateStatus"><img src="'.WPPB_PLUGIN_URL.'/assets/images/icon_error.png" title="'.__( 'The serial number couldn\'t be validated because process timed out. This is possible due to the server being down. Please try again later!','profile-builder' ).'"/></span>';
86
  ?>
240
  else
241
  $register_url = network_admin_url( 'admin.php?page=profile-builder-register' );
242
 
243
+ new wppb_add_notices( 'wppb', 'profile_builder_pro', sprintf( __( '<p>Your <strong>Profile Builder</strong> serial number is invalid or missing. <br/>Please %1$sregister your copy%2$s to receive access to automatic updates and support. Need a license key? %3$sPurchase one now%4$s</p>', 'profile-builder'), "<a href='". $register_url ."'>", "</a>", "<a href='https://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-SN-Purchase' target='_blank' class='button-primary'>", "</a>" ), 'wppb_profile_builder_pro_serial_status' );
244
  }
245
  elseif ( $wppb_profile_builder_pro_hobbyist_serial_status == 'expired' ){
246
+ new wppb_add_notices( 'wppb_expired', 'profile_builder_pro', sprintf( __( '<p>Your <strong>Profile Builder</strong> license has expired. <br/>Please %1$sRenew Your Licence%2$s to continue receiving access to product downloads, automatic updates and support. %3$sRenew now and get 50&#37; off %4$s %5$sDismiss%6$s</p>', 'profile-builder'), "<a href='https://www.cozmoslabs.com/downloads/profile-builder-". $version ."-v2-yearly-renewal/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-Renewal' target='_blank'>", "</a>", "<a href='https://www.cozmoslabs.com/downloads/profile-builder-".$version."-v2-yearly-renewal/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-Renewal' target='_blank' class='button-primary'>", "</a>", "<a href='". esc_url( add_query_arg( 'wppb_expired_dismiss_notification', '0' ) ) ."' class='wppb-dismiss-notification'>", "</a>" ), 'wppb_profile_builder_pro_serial_status' );
247
  }
248
  elseif( strpos( $wppb_profile_builder_pro_hobbyist_serial_status, 'aboutToExpire' ) === 0 ){
249
  $serial_status_parts = explode( '#', $wppb_profile_builder_pro_hobbyist_serial_status );
250
  $date = $serial_status_parts[1];
251
+ new wppb_add_notices( 'wppb_about_to_expire', 'profile_builder_pro', sprintf( __( '<p>Your <strong>Profile Builder</strong> license is about to expire on %5$s. <br/>Please %1$sRenew Your Licence%2$s to continue receiving access to product downloads, automatic updates and support. %3$sRenew now and get 50&#37; off %4$s %6$sDismiss%7$s</p>', 'profile-builder'), "<a href='https://www.cozmoslabs.com/downloads/profile-builder-". $version ."-v2-yearly-renewal/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-Renewal' target='_blank'>", "</a>", "<a href='https://www.cozmoslabs.com/downloads/profile-builder-".$version."-v2-yearly-renewal/?utm_source=PB&utm_medium=dashboard&utm_campaign=PB-Renewal' target='_blank' class='button-primary'>", "</a>", $date, "<a href='". esc_url( add_query_arg( 'wppb_about_to_expire_dismiss_notification', '0' ) )."' class='wppb-dismiss-notification'>", "</a>" ), 'wppb_profile_builder_pro_serial_status' );
252
  }
assets/css/style-back-end.css CHANGED
@@ -87,6 +87,22 @@
87
  height: 400px;
88
  }
89
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  /* Extra Stuff */
91
  .nowrap {
92
  white-space: nowrap;
@@ -608,4 +624,9 @@ p .wppb-button-free {
608
 
609
  #pms-bottom-install .wppb-confirmation-success{
610
  color:#FFFFFF;
 
 
 
 
 
611
  }
87
  height: 400px;
88
  }
89
 
90
+ .update_container_wppb_ul_faceted_settings .row-facet-behaviour,
91
+ .update_container_wppb_ul_faceted_settings .row-facet-limit,
92
+ #container_wppb_ul_faceted_settings .row-facet-behaviour,
93
+ #container_wppb_ul_faceted_settings .row-facet-behaviour,
94
+ #container_wppb_ul_faceted_settings .row-facet-limit{
95
+ display:none;
96
+ }
97
+
98
+ #container_wppb_ul_faceted_settings .facet_type_checkboxes .row-facet-behaviour,
99
+ #container_wppb_ul_faceted_settings .facet_type_checkboxes .row-facet-limit,
100
+ #container_wppb_ul_faceted_settings .update_container_wppb_ul_faceted_settings.facet_checkboxes .row-facet-behaviour,
101
+ #container_wppb_ul_faceted_settings .update_container_wppb_ul_faceted_settings.facet_checkboxes .row-facet-limit{
102
+ display:block;
103
+ }
104
+
105
+
106
  /* Extra Stuff */
107
  .nowrap {
108
  white-space: nowrap;
624
 
625
  #pms-bottom-install .wppb-confirmation-success{
626
  color:#FFFFFF;
627
+ }
628
+
629
+ #wppb_ul_search_settings .wck-checkboxes > div{
630
+ display: inline-block;
631
+ margin-left:7px;
632
  }
assets/css/style-front-end.css CHANGED
@@ -265,6 +265,21 @@ input#send_credentials_via_email{
265
  margin-bottom: 0;
266
  }
267
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  /*--------------------------------------------------------------
269
  4.0 Errors & Notices
270
  --------------------------------------------------------------*/
@@ -430,6 +445,113 @@ ul.wppb-profile li h3:first-child{
430
  border-top:1px solid #d2d2d2;
431
  }
432
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
433
  @media screen and ( max-width: 720px ) {
434
 
435
  .wppb-table {
@@ -570,4 +692,11 @@ ul.wppb-profile li h3:first-child{
570
  font-style: italic;
571
  margin-left: 0;
572
  margin-bottom: 1.5em;
 
 
 
 
 
 
 
573
  }
265
  margin-bottom: 0;
266
  }
267
 
268
+ .wppb-form-field input.wppb-map-search-box {
269
+ position: absolute;
270
+ top: 10px !important;
271
+ height: 34px;
272
+ width: 50%;
273
+ min-width: 250px;
274
+ background: #fff;
275
+ border: 0;
276
+ border-radius: 1px;
277
+ padding: 0 10px;
278
+ box-shadow: 0 1px 1px 0 #c1c1c1;
279
+ font-family: 'Roboto', sans-serif;
280
+ }
281
+
282
+
283
  /*--------------------------------------------------------------
284
  4.0 Errors & Notices
285
  --------------------------------------------------------------*/
445
  border-top:1px solid #d2d2d2;
446
  }
447
 
448
+ .wppb-faceted-list{
449
+ list-style: none;
450
+ margin:0 0 20px;
451
+ }
452
+
453
+ .wppb-faceted-list:after{
454
+ visibility: hidden;
455
+ display: block;
456
+ font-size: 0;
457
+ content: " ";
458
+ clear: both;
459
+ height: 0;
460
+ }
461
+
462
+ .wppb-faceted-list > li{
463
+ float:left;
464
+ margin-right: 15px;
465
+ max-width: 300px;
466
+ }
467
+
468
+ .wppb-faceted-list > li:first-child{
469
+ float:none;
470
+ clear:both;
471
+ }
472
+
473
+ .wppb-userlisting-container .wppb-faceted-list li h5{
474
+ margin-top: 20px;
475
+ margin-bottom: 5px;
476
+ }
477
+
478
+ .wppb-faceted-list label > *{
479
+ vertical-align: middle;
480
+ }
481
+
482
+ .wppb-faceted-list input[type="checkbox"]{
483
+ margin-right: 5px;
484
+ }
485
+
486
+ .wppb-userlisting-container.spinner{
487
+ position:relative;
488
+ opacity: 0.5
489
+ }
490
+
491
+ .wppb-userlisting-container.spinner:after{
492
+ content: '';
493
+ position: absolute;
494
+ top: 50%;
495
+ left: 50%;
496
+ margin-top: -16px;
497
+ margin-left: -16px;
498
+ display: block;
499
+ width: 32px;
500
+ height: 32px;
501
+ /*background: url('../images/ajax-loader.gif') no-repeat center;*/
502
+ z-index: 1000;
503
+ }
504
+
505
+ .wppb-faceted-list .hide-this{
506
+ display:none;
507
+ }
508
+
509
+ #wppb-remove-facets-container{
510
+ list-style: none;
511
+ margin: 0;
512
+ }
513
+
514
+ .wppb-remove-facet:before, .wppb-remove-all-facets:before {
515
+ content: "x";
516
+ display: inline-block;
517
+ border-right: 1px dotted #D3CCC9;
518
+ border-right: 1px dotted #6F6F6F;
519
+ padding-right: 5px;
520
+ margin-right: 5px;
521
+ }
522
+
523
+ .wppb-userlisting-container .wppb-ul-range-values{
524
+ padding: 5px 0;
525
+ }
526
+
527
+ .wppb-userlisting-container:after {
528
+ visibility: hidden;
529
+ display: block;
530
+ font-size: 0;
531
+ content: " ";
532
+ clear: both;
533
+ height: 0;
534
+ }
535
+
536
+ .wppb-float-left{
537
+ float:left;
538
+ }
539
+
540
+ .wppb-float-right{
541
+ float:right;
542
+ }
543
+
544
+ .wppb-facet-float-left{
545
+ float:left;
546
+ max-width:300px;
547
+ }
548
+
549
+ .wppb-facet-float-right{
550
+ float:right;
551
+ max-width:300px;
552
+ }
553
+
554
+
555
  @media screen and ( max-width: 720px ) {
556
 
557
  .wppb-table {
692
  font-style: italic;
693
  margin-left: 0;
694
  margin-bottom: 1.5em;
695
+ }
696
+
697
+ /**************************************************/
698
+ /* This is very weird: if in the css there is a rule on table of border-collapse:collapse; then on FFox and Edge the Media upload won't open
699
+ /**************************************************/
700
+ table{
701
+ border-collapse:separate;
702
  }
assets/images/ajax-loader.gif ADDED
Binary file
assets/js/jquery-manage-fields-live-change.js CHANGED
@@ -236,7 +236,15 @@ var fields = {
236
  '.row-overwrite-existing'
237
  ]
238
  },
239
-
 
 
 
 
 
 
 
 
240
  'Select': { 'show_rows' : [
241
  '.row-field-title',
242
  '.row-meta-name',
@@ -419,7 +427,25 @@ var fields = {
419
  'properties': {
420
  'meta_name_value' : ''
421
  }
422
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
423
 
424
  }
425
  var fields_to_show = [
236
  '.row-overwrite-existing'
237
  ]
238
  },
239
+ 'Phone': { 'show_rows' : [
240
+ '.row-field-title',
241
+ '.row-meta-name',
242
+ '.row-description',
243
+ '.row-phone-format',
244
+ '.row-required',
245
+ '.row-overwrite-existing'
246
+ ]
247
+ },
248
  'Select': { 'show_rows' : [
249
  '.row-field-title',
250
  '.row-meta-name',
427
  'properties': {
428
  'meta_name_value' : ''
429
  }
430
+ },
431
+
432
+ 'Map': { 'show_rows' : [
433
+ '.row-field-title',
434
+ '.row-description',
435
+ '.row-map-api-key',
436
+ '.row-map-default-lat',
437
+ '.row-map-default-lng',
438
+ '.row-map-default-zoom',
439
+ '.row-map-height',
440
+ '.row-required'
441
+ ]
442
+ },
443
+ 'HTML': { 'show_rows' : [
444
+ '.row-field-title',
445
+ '.row-description',
446
+ '.row-html-content'
447
+ ]
448
+ }
449
 
450
  }
451
  var fields_to_show = [
assets/js/jquery-pb-sitewide.js CHANGED
@@ -86,6 +86,17 @@ jQuery( function(){
86
  jQuery( '#wppb-ul-settings-args').on('click', '#visible-only-to-logged-in-users_yes', function(){
87
  jQuery( '.row-visible-to-following-roles', jQuery(this).parent().parent().parent().parent().parent().parent()).toggle();
88
  });
 
 
 
 
 
 
 
 
 
 
 
89
  });
90
 
91
  /*
86
  jQuery( '#wppb-ul-settings-args').on('click', '#visible-only-to-logged-in-users_yes', function(){
87
  jQuery( '.row-visible-to-following-roles', jQuery(this).parent().parent().parent().parent().parent().parent()).toggle();
88
  });
89
+
90
+ jQuery( '#wppb-ul-faceted-args').on('change', '#facet-type', function(){
91
+ if( jQuery(this).val() == 'checkboxes' ){
92
+ jQuery( '.row-facet-behaviour, .row-facet-limit', jQuery(this).parent().parent().parent()).show();
93
+ }
94
+ else{
95
+ jQuery( '.row-facet-behaviour, .row-facet-limit', jQuery(this).parent().parent().parent()).hide();
96
+ jQuery( '.row-facet-behaviour #facet-behaviour', jQuery(this).parent().parent().parent()).val('narrow');
97
+ }
98
+ });
99
+
100
  });
101
 
102
  /*
features/functions.php CHANGED
@@ -36,12 +36,12 @@ function wppb_add_plugin_stylesheet() {
36
  $wppb_generalSettings = get_option( 'wppb_general_settings' );
37
 
38
  if ( ( file_exists( WPPB_PLUGIN_DIR . '/assets/css/style-front-end.css' ) ) && ( isset( $wppb_generalSettings['extraFieldsLayout'] ) && ( $wppb_generalSettings['extraFieldsLayout'] == 'default' ) ) ){
39
- wp_register_style( 'wppb_stylesheet', WPPB_PLUGIN_URL . 'assets/css/style-front-end.css' );
40
  wp_enqueue_style( 'wppb_stylesheet' );
41
  }
42
  if( is_rtl() ) {
43
  if ( ( file_exists( WPPB_PLUGIN_DIR . '/assets/css/rtl.css' ) ) && ( isset( $wppb_generalSettings['extraFieldsLayout'] ) && ( $wppb_generalSettings['extraFieldsLayout'] == 'default' ) ) ){
44
- wp_register_style( 'wppb_stylesheet_rtl', WPPB_PLUGIN_URL . 'assets/css/rtl.css' );
45
  wp_enqueue_style( 'wppb_stylesheet_rtl' );
46
  }
47
  }
@@ -628,6 +628,12 @@ function wppb_recaptcha_field_error($field_title='') {
628
  return $recaptcha_error;
629
 
630
  }
 
 
 
 
 
 
631
 
632
  /* Create a wrapper function for get_query_var */
633
  function wppb_get_query_var( $varname ){
36
  $wppb_generalSettings = get_option( 'wppb_general_settings' );
37
 
38
  if ( ( file_exists( WPPB_PLUGIN_DIR . '/assets/css/style-front-end.css' ) ) && ( isset( $wppb_generalSettings['extraFieldsLayout'] ) && ( $wppb_generalSettings['extraFieldsLayout'] == 'default' ) ) ){
39
+ wp_register_style( 'wppb_stylesheet', WPPB_PLUGIN_URL . 'assets/css/style-front-end.css', array(), PROFILE_BUILDER_VERSION );
40
  wp_enqueue_style( 'wppb_stylesheet' );
41
  }
42
  if( is_rtl() ) {
43
  if ( ( file_exists( WPPB_PLUGIN_DIR . '/assets/css/rtl.css' ) ) && ( isset( $wppb_generalSettings['extraFieldsLayout'] ) && ( $wppb_generalSettings['extraFieldsLayout'] == 'default' ) ) ){
44
+ wp_register_style( 'wppb_stylesheet_rtl', WPPB_PLUGIN_URL . 'assets/css/rtl.css', array(), PROFILE_BUILDER_VERSION );
45
  wp_enqueue_style( 'wppb_stylesheet_rtl' );
46
  }
47
  }
628
  return $recaptcha_error;
629
 
630
  }
631
+ /* Function for displaying phone field error */
632
+ function wppb_phone_field_error( $field_title = '' ) {
633
+ $phone_error = apply_filters( 'wppb_phone_error' , __( 'Incorrect phone number', 'profile-builder' ) , $field_title );
634
+
635
+ return $phone_error;
636
+ }
637
 
638
  /* Create a wrapper function for get_query_var */
639
  function wppb_get_query_var( $varname ){
features/login-widget/login-widget.php CHANGED
@@ -30,7 +30,7 @@ class wppb_login_widget extends WP_Widget {
30
  echo $before_title . $title . $after_title;
31
 
32
  echo do_shortcode('[wppb-login display="false" register_url="'.$register.'" lostpassword_url="'.$lostpass.'" redirect="'.$redirect.'"]');
33
-
34
  do_action( 'wppb_login_widget_display', $args, $instance);
35
 
36
  echo $after_widget;
30
  echo $before_title . $title . $after_title;
31
 
32
  echo do_shortcode('[wppb-login display="false" register_url="'.$register.'" lostpassword_url="'.$lostpass.'" redirect="'.$redirect.'"]');
33
+
34
  do_action( 'wppb_login_widget_display', $args, $instance);
35
 
36
  echo $after_widget;
front-end/login.php CHANGED
@@ -158,8 +158,12 @@ function wppb_front_end_login( $atts ){
158
  $form_args = array( 'echo' => false, 'id_submit' => 'wppb-submit' );
159
 
160
  // maybe set up the redirect argument
 
 
 
 
161
  if ( ! empty( $redirect_url ) ) {
162
- if( $redirect_priority == 'top' ) {
163
  $form_args['redirect_priority'] = 'top';
164
  } else {
165
  $form_args['redirect_priority'] = 'normal';
158
  $form_args = array( 'echo' => false, 'id_submit' => 'wppb-submit' );
159
 
160
  // maybe set up the redirect argument
161
+ if( ! empty( $redirect ) ) {
162
+ $redirect_url = $redirect;
163
+ }
164
+
165
  if ( ! empty( $redirect_url ) ) {
166
+ if( $redirect_priority == 'top' || ! empty( $redirect ) ) {
167
  $form_args['redirect_priority'] = 'top';
168
  } else {
169
  $form_args['redirect_priority'] = 'normal';
front-end/recover.php CHANGED
@@ -70,15 +70,18 @@ function wppb_create_recover_password_form( $user, $post_data ){
70
  else
71
  $passw_two = '';
72
 
 
 
 
73
  $recover_inputPassword = '
74
  <li class="wppb-form-field passw1">
75
- <label for="passw1">'. __( 'Password', 'profile-builder' ).'</label>
76
- <input class="password" name="passw1" type="password" id="passw1" value="'. $passw_one .'" autocomplete="off" title="'. wppb_password_length_text() .'"/>
77
  </li><!-- .passw1 -->
78
  <input type="hidden" name="userData" value="'.$user->ID.'"/>
79
  <li class="wppb-form-field passw2">
80
- <label for="passw2">'. __( 'Repeat Password', 'profile-builder' ).'</label>
81
- <input class="password" name="passw2" type="password" id="passw2" value="'.$passw_two.'" autocomplete="off" />
82
  </li><!-- .passw2 -->';
83
 
84
  /* if we have active the password strength checker */
@@ -114,10 +117,12 @@ function wppb_create_recover_password_form( $user, $post_data ){
114
 
115
  $username_email = ( isset( $post_data['username_email'] ) ? $post_data['username_email'] : '' );
116
 
 
 
117
  $recover_input = '<ul>
118
  <li class="wppb-form-field wppb-username-email">
119
- <label for="username_email">'.__( 'Username or E-mail', 'profile-builder' ).'</label>
120
- <input class="text-input" name="username_email" type="text" id="username_email" value="'.trim( $username_email ).'" />
121
  </li><!-- .username_email --></ul>';
122
  echo apply_filters( 'wppb_recover_password_generate_password_input', $recover_input, trim( $username_email ) );
123
  ?>
70
  else
71
  $passw_two = '';
72
 
73
+ $password_label = __( 'Password', 'profile-builder' );
74
+ $repeat_password_label = __( 'Repeat Password', 'profile-builder' );
75
+
76
  $recover_inputPassword = '
77
  <li class="wppb-form-field passw1">
78
+ <label for="passw1">'. $password_label .'</label>
79
+ <input class="password" name="passw1" type="password" id="passw1" value="'. $passw_one .'" autocomplete="off" title="'. wppb_password_length_text() .'" '. apply_filters( 'wppb_recover_password_extra_attr', '', $password_label, 'password' ) .' />
80
  </li><!-- .passw1 -->
81
  <input type="hidden" name="userData" value="'.$user->ID.'"/>
82
  <li class="wppb-form-field passw2">
83
+ <label for="passw2">'. $repeat_password_label .'</label>
84
+ <input class="password" name="passw2" type="password" id="passw2" value="'.$passw_two.'" autocomplete="off" '. apply_filters( 'wppb_recover_password_extra_attr', '', $repeat_password_label, 'repeat_password' ) .' />
85
  </li><!-- .passw2 -->';
86
 
87
  /* if we have active the password strength checker */
117
 
118
  $username_email = ( isset( $post_data['username_email'] ) ? $post_data['username_email'] : '' );
119
 
120
+ $username_email_label = __( 'Username or E-mail', 'profile-builder' );
121
+
122
  $recover_input = '<ul>
123
  <li class="wppb-form-field wppb-username-email">
124
+ <label for="username_email">'. $username_email_label .'</label>
125
+ <input class="text-input" name="username_email" type="text" id="username_email" value="'.trim( $username_email ).'" '. apply_filters( 'wppb_recover_password_extra_attr', '', $username_email_label, 'username_email' ) .' />
126
  </li><!-- .username_email --></ul>';
127
  echo apply_filters( 'wppb_recover_password_generate_password_input', $recover_input, trim( $username_email ) );
128
  ?>
index.php CHANGED
@@ -1,11 +1,11 @@
1
  <?php
2
  /*
3
  Plugin Name: Profile Builder
4
- Plugin URI: http://www.cozmoslabs.com/wordpress-profile-builder/
5
  Description: Login, registration and edit profile shortcodes for the front-end. Also you can chose what fields should be displayed or add new (custom) ones both in the front-end and in the dashboard.
6
- Version: 2.3.7
7
  Author: Cozmoslabs, Madalin Ungureanu, Antohe Cristian, Barina Gabriel, Mihai Iova
8
- Author URI: http://www.cozmoslabs.com/
9
  License: GPL2
10
 
11
  == Copyright ==
@@ -73,7 +73,7 @@ function wppb_free_plugin_init() {
73
  *
74
  *
75
  */
76
- define('PROFILE_BUILDER_VERSION', '2.3.7' );
77
  define('WPPB_PLUGIN_DIR', plugin_dir_path(__FILE__));
78
  define('WPPB_PLUGIN_URL', plugin_dir_url(__FILE__));
79
  define('WPPB_SERVER_MAX_UPLOAD_SIZE_BYTE', apply_filters('wppb_server_max_upload_size_byte_constant', wppb_return_bytes(ini_get('upload_max_filesize'))));
@@ -145,10 +145,10 @@ function wppb_free_plugin_init() {
145
  include_once(WPPB_PLUGIN_DIR . '/modules/custom-redirects/custom-redirects.php');
146
  include_once(WPPB_PLUGIN_DIR . '/modules/email-customizer/email-customizer.php');
147
  include_once(WPPB_PLUGIN_DIR . '/modules/multiple-forms/multiple-forms.php');
 
148
 
149
  $wppb_module_settings = get_option('wppb_module_settings');
150
  if (isset($wppb_module_settings['wppb_userListing']) && ($wppb_module_settings['wppb_userListing'] == 'show')) {
151
- include_once(WPPB_PLUGIN_DIR . '/modules/user-listing/userlisting.php');
152
  add_shortcode('wppb-list-users', 'wppb_user_listing_shortcode');
153
  } else
154
  add_shortcode('wppb-list-users', 'wppb_list_all_users_display_error');
1
  <?php
2
  /*
3
  Plugin Name: Profile Builder
4
+ Plugin URI: https://www.cozmoslabs.com/wordpress-profile-builder/
5
  Description: Login, registration and edit profile shortcodes for the front-end. Also you can chose what fields should be displayed or add new (custom) ones both in the front-end and in the dashboard.
6
+ Version: 2.3.8
7
  Author: Cozmoslabs, Madalin Ungureanu, Antohe Cristian, Barina Gabriel, Mihai Iova
8
+ Author URI: https://www.cozmoslabs.com/
9
  License: GPL2
10
 
11
  == Copyright ==
73
  *
74
  *
75
  */
76
+ define('PROFILE_BUILDER_VERSION', '2.3.8' );
77
  define('WPPB_PLUGIN_DIR', plugin_dir_path(__FILE__));
78
  define('WPPB_PLUGIN_URL', plugin_dir_url(__FILE__));
79
  define('WPPB_SERVER_MAX_UPLOAD_SIZE_BYTE', apply_filters('wppb_server_max_upload_size_byte_constant', wppb_return_bytes(ini_get('upload_max_filesize'))));
145
  include_once(WPPB_PLUGIN_DIR . '/modules/custom-redirects/custom-redirects.php');
146
  include_once(WPPB_PLUGIN_DIR . '/modules/email-customizer/email-customizer.php');
147
  include_once(WPPB_PLUGIN_DIR . '/modules/multiple-forms/multiple-forms.php');
148
+ include_once(WPPB_PLUGIN_DIR . '/modules/user-listing/userlisting.php');
149
 
150
  $wppb_module_settings = get_option('wppb_module_settings');
151
  if (isset($wppb_module_settings['wppb_userListing']) && ($wppb_module_settings['wppb_userListing'] == 'show')) {
 
152
  add_shortcode('wppb-list-users', 'wppb_user_listing_shortcode');
153
  } else
154
  add_shortcode('wppb-list-users', 'wppb_list_all_users_display_error');
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
- === Profile Builder - front-end user registration, login and edit profile ===
2
  Contributors: cozmoslabs, reflectionmedia, sareiodata, adispiac, madalin.ungureanu, iova.mihai, barinagabriel
3
  Donate link: http://www.cozmoslabs.com/wordpress-profile-builder/
4
  Tags: user registration, user registration form, user fields, extra user fields, edit profile, user custom fields, front-end login, front-end edit profile, front-end user registration, email confirmation, login form
5
 
6
  Requires at least: 3.1
7
  Tested up to: 4.5.2
8
- Stable tag: 2.3.7
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -147,6 +147,12 @@ This plugin adds/removes user fields in the front-end. Both default and extra pr
147
  10. Profile Builder Login Widget
148
 
149
  == Changelog ==
 
 
 
 
 
 
150
  = 2.3.7 =
151
  * Changed the wppb_curpageurl function to fix the missing www problem from links
152
  * Added a new filter wppb_send_to_admin_email to Email Confirmation
1
+ === Profile Builder - front-end user registration, user profile and user login ===
2
  Contributors: cozmoslabs, reflectionmedia, sareiodata, adispiac, madalin.ungureanu, iova.mihai, barinagabriel
3
  Donate link: http://www.cozmoslabs.com/wordpress-profile-builder/
4
  Tags: user registration, user registration form, user fields, extra user fields, edit profile, user custom fields, front-end login, front-end edit profile, front-end user registration, email confirmation, login form
5
 
6
  Requires at least: 3.1
7
  Tested up to: 4.5.2
8
+ Stable tag: 2.3.8
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
147
  10. Profile Builder Login Widget
148
 
149
  == Changelog ==
150
+ = 2.3.8 =
151
+ * Fixed an issue with the redirect parameter for login widget
152
+ * Added extra_attr filter for recover password forms: 'wppb_recover_password_extra_attr'
153
+ * Added filter in select fields for placeholder labels add-on support
154
+ * Fixed the cozmoslabs.com url from http to https
155
+
156
  = 2.3.7 =
157
  * Changed the wppb_curpageurl function to fix the missing www problem from links
158
  * Added a new filter wppb_send_to_admin_email to Email Confirmation