User registration & user profile – Profile Builder - Version 2.4.8

Version Description

  • Now when an administrator registers an user the Register button text has changed to Add User
  • Multiple fixes regarding redirects
  • Fixed issues with redirect_url shortcode parameter and changed the logout shortcode parameter to redirect_url from redirect
  • Added the filter 'wppb_edit_other_users_dropdown_query_args' for changing the user query on the edit other users dropwdown
Download this release

Release Info

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

Code changes from version 2.4.7 to 2.4.8

admin/manage-fields.php CHANGED
@@ -57,6 +57,7 @@ function wppb_manage_fields_submenu(){
57
  $manage_field_types[] = 'Select (Timezone)';
58
  $manage_field_types[] = 'Select (User Role)';
59
  $manage_field_types[] = 'Select (Currency)';
 
60
  $manage_field_types[] = 'Checkbox';
61
  $manage_field_types[] = 'Checkbox (Terms and Conditions)';
62
  $manage_field_types[] = 'Radio';
@@ -103,6 +104,9 @@ function wppb_manage_fields_submenu(){
103
  $default_currency_options[] = $currency_name;
104
  }
105
 
 
 
 
106
  // set up the fields array
107
  $fields = apply_filters( 'wppb_manage_fields', array(
108
 
@@ -132,6 +136,7 @@ function wppb_manage_fields_submenu(){
132
  array( 'type' => 'select', 'slug' => 'default-option-timezone', 'title' => __( 'Default Option', 'profile-builder' ), 'options' => wppb_timezone_select_options( 'back_end' ), 'description' => __( "Default option of the field", 'profile-builder' ) ),
133
  array( 'type' => 'select', 'slug' => 'default-option-currency', 'title' => __( 'Default Option', 'profile-builder' ), 'values' => ( isset( $default_currency_values ) ) ? $default_currency_values : '', 'options' => ( isset( $default_currency_options ) ) ? $default_currency_options : '', 'description' => __( "Default option of the field", 'profile-builder' ) ),
134
  array( 'type' => 'select', 'slug' => 'show-currency-symbol', 'title' => __( 'Show Currency Symbol', 'profile-builder' ), 'options' => array( 'No', 'Yes' ), 'default' => 'No', 'description' => __( 'Whether the currency symbol should be displayed after the currency name in the select option.', 'profile-builder' ) ),
 
135
  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' ) ),
136
  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' ) ),
137
  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' ) ),
@@ -1120,7 +1125,7 @@ function wppb_check_field_on_edit_add( $message, $fields, $required_fields, $met
1120
  $fields_so_far = get_post_meta ( $post_id, $meta_name, true );
1121
 
1122
  foreach ( $fields_so_far as $key => $value ){
1123
- if ( $value['field'] == $posted_values['field'] )
1124
  $message .= __( "That field is already added in this form\n", 'profile-builder' );
1125
  }
1126
  }
57
  $manage_field_types[] = 'Select (Timezone)';
58
  $manage_field_types[] = 'Select (User Role)';
59
  $manage_field_types[] = 'Select (Currency)';
60
+ $manage_field_types[] = 'Select (CPT)';
61
  $manage_field_types[] = 'Checkbox';
62
  $manage_field_types[] = 'Checkbox (Terms and Conditions)';
63
  $manage_field_types[] = 'Radio';
104
  $default_currency_options[] = $currency_name;
105
  }
106
 
107
+ //cpt select
108
+ $post_types = get_post_types( array( 'public' => true ), 'names' );
109
+
110
  // set up the fields array
111
  $fields = apply_filters( 'wppb_manage_fields', array(
112
 
136
  array( 'type' => 'select', 'slug' => 'default-option-timezone', 'title' => __( 'Default Option', 'profile-builder' ), 'options' => wppb_timezone_select_options( 'back_end' ), 'description' => __( "Default option of the field", 'profile-builder' ) ),
137
  array( 'type' => 'select', 'slug' => 'default-option-currency', 'title' => __( 'Default Option', 'profile-builder' ), 'values' => ( isset( $default_currency_values ) ) ? $default_currency_values : '', 'options' => ( isset( $default_currency_options ) ) ? $default_currency_options : '', 'description' => __( "Default option of the field", 'profile-builder' ) ),
138
  array( 'type' => 'select', 'slug' => 'show-currency-symbol', 'title' => __( 'Show Currency Symbol', 'profile-builder' ), 'options' => array( 'No', 'Yes' ), 'default' => 'No', 'description' => __( 'Whether the currency symbol should be displayed after the currency name in the select option.', 'profile-builder' ) ),
139
+ array( 'type' => 'select', 'slug' => 'cpt', 'title' => __( 'Show Post Type', 'profile-builder' ), 'options' => $post_types, 'default' => 'post', 'description' => __( 'Posts from what post type will be displayed in the select.', 'profile-builder' ) ),
140
  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' ) ),
141
  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' ) ),
142
  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' ) ),
1125
  $fields_so_far = get_post_meta ( $post_id, $meta_name, true );
1126
 
1127
  foreach ( $fields_so_far as $key => $value ){
1128
+ if ( $value['id'] == $posted_values['id'] )
1129
  $message .= __( "That field is already added in this form\n", 'profile-builder' );
1130
  }
1131
  }
assets/js/jquery-epf-rf.js CHANGED
@@ -9,7 +9,17 @@ function wppb_rf_epf_change_id( field, container_name, fieldObj ) {
9
  buttonInContainer.removeAttr('onclick');
10
 
11
  jQuery.post( ajaxurl , { action:"wppb_handle_rf_epf_id_change", field:field }, function(response) {
12
- jQuery( '#id', fieldObj.parent().parent().parent() ).val( response );
 
 
 
 
 
 
 
 
 
 
13
  buttonInContainer.attr('onclick', buttonInContainer.attr("tempclick") );
14
  buttonInContainer.removeAttr('tempclick');
15
 
9
  buttonInContainer.removeAttr('onclick');
10
 
11
  jQuery.post( ajaxurl , { action:"wppb_handle_rf_epf_id_change", field:field }, function(response) {
12
+
13
+ /**
14
+ * since version 2.0.2 we have the id directly on the option in the select so this ajax function is a little
15
+ redundant but can't be sure of the impact on other features so we will just add this
16
+ */
17
+ id = fieldObj.find(":selected").attr( 'data-id' );
18
+ if( !id ){
19
+ id = response;
20
+ }
21
+
22
+ jQuery( '#id', fieldObj.parent().parent().parent() ).val( id );
23
  buttonInContainer.attr('onclick', buttonInContainer.attr("tempclick") );
24
  buttonInContainer.removeAttr('tempclick');
25
 
assets/js/jquery-manage-fields-live-change.js CHANGED
@@ -312,6 +312,16 @@ var fields = {
312
  '.row-overwrite-existing'
313
  ]
314
  },
 
 
 
 
 
 
 
 
 
 
315
 
316
  'Checkbox': { 'show_rows' : [
317
  '.row-field-title',
312
  '.row-overwrite-existing'
313
  ]
314
  },
315
+ 'Select (CPT)': { 'show_rows' : [
316
+ '.row-field-title',
317
+ '.row-meta-name',
318
+ '.row-description',
319
+ '.row-default-option',
320
+ '.row-cpt',
321
+ '.row-required',
322
+ '.row-overwrite-existing'
323
+ ]
324
+ },
325
 
326
  'Checkbox': { 'show_rows' : [
327
  '.row-field-title',
features/email-confirmation/email-confirmation.php CHANGED
@@ -178,59 +178,39 @@ function wppb_add_meta_to_user_on_activation( $user_id, $password, $meta ){
178
  if ( $manage_fields != 'not_set' ){
179
  foreach ( $manage_fields as $key => $value){
180
  switch ( $value['field'] ) {
181
- case 'Input':{
182
- if ( isset( $meta[$value['meta-name']] ) )
183
- update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
184
- break;
185
- }
186
- case 'Input (Hidden)':{
187
- if ( isset( $meta[$value['meta-name']] ) )
188
- update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
189
- break;
190
- }
191
- case 'Checkbox':{
192
- if ( isset( $meta[$value['meta-name']] ) )
193
- update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
194
- break;
195
- }
196
- case 'Checkbox (Terms and Conditions)':{
197
- if ( isset( $meta[$value['meta-name']] ) )
198
- update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
199
- break;
200
- }
201
- case 'Radio':{
202
- if ( isset( $meta[$value['meta-name']] ) )
203
- update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
204
- break;
205
- }
206
- case 'Select':{
207
- if ( isset( $meta[$value['meta-name']] ) )
208
- update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
209
- break;
210
- }
211
- case 'Select (Country)':{
212
- if ( isset( $meta[$value['meta-name']] ) )
213
- update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
214
- break;
215
- }
216
- case 'Select (Multiple)':{
217
- if ( isset( $meta[$value['meta-name']] ) )
218
- update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
219
- break;
220
- }
221
- case 'Select (Timezone)':{
222
  if ( isset( $meta[$value['meta-name']] ) )
223
  update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
224
  break;
225
  }
226
- case 'Datepicker':{
227
- if ( isset( $meta[$value['meta-name']] ) )
228
- update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
 
 
 
 
 
229
  break;
230
  }
231
- case 'Textarea':{
232
- if ( isset( $meta[$value['meta-name']] ) )
233
- update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
 
 
 
 
 
234
  break;
235
  }
236
  case 'Upload':{
@@ -310,8 +290,12 @@ function wppb_add_meta_to_user_on_activation( $user_id, $password, $meta ){
310
  break;
311
  }
312
  }
313
- default:
314
- do_action( 'wppb_add_meta_on_user_activation_'.Wordpress_Creation_Kit_PB::wck_generate_slug( $value['field'] ), $user_id, $password, $meta );
 
 
 
 
315
  }
316
  }
317
  }
178
  if ( $manage_fields != 'not_set' ){
179
  foreach ( $manage_fields as $key => $value){
180
  switch ( $value['field'] ) {
181
+ case 'Input':
182
+ case 'Input (Hidden)':
183
+ case 'Checkbox':
184
+ case 'Checkbox (Terms and Conditions)':
185
+ case 'Radio':
186
+ case 'Select':
187
+ case 'Select (Country)':
188
+ case 'Select (Multiple)':
189
+ case 'Select (Timezone)':
190
+ case 'Datepicker':
191
+ case 'Textarea':{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  if ( isset( $meta[$value['meta-name']] ) )
193
  update_user_meta( $user_id, $value['meta-name'], trim( $meta[$value['meta-name']] ) );
194
  break;
195
  }
196
+ case 'Timepicker':{
197
+ if ( isset( $meta[$value['meta-name']] ) ) {
198
+ $time = $meta[$value['meta-name']];
199
+ if( !empty( $time['hours'] ) && !empty( $time['minutes'] ) ) {
200
+ update_user_meta( $user_id, $value['meta-name'], $time['hours'] . ':' . $time['minutes'] );
201
+ }
202
+
203
+ }
204
  break;
205
  }
206
+ case 'Map':{
207
+ if ( isset( $meta[$value['meta-name']] ) ) {
208
+ // Add new markers
209
+ if( is_array( $meta[$value['meta-name']] ) ) {
210
+ foreach( $meta[$value['meta-name']] as $key => $position )
211
+ update_user_meta( $user_id, $value['meta-name'] . '_' . $key, $position );
212
+ }
213
+ }
214
  break;
215
  }
216
  case 'Upload':{
290
  break;
291
  }
292
  }
293
+ default: {
294
+ if ( isset( $meta[$value['meta-name']] ) ) {
295
+ update_user_meta($user_id, $value['meta-name'], $meta[$value['meta-name']]);
296
+ }
297
+ do_action('wppb_add_meta_on_user_activation_' . Wordpress_Creation_Kit_PB::wck_generate_slug($value['field']), $user_id, $password, $meta);
298
+ }
299
  }
300
  }
301
  }
front-end/class-formbuilder.php CHANGED
@@ -33,7 +33,7 @@ class Profile_Builder_Form_Creator{
33
 
34
  if ( file_exists ( WPPB_PLUGIN_DIR.'/front-end/extra-fields/extra-fields.php' ) )
35
  require_once( WPPB_PLUGIN_DIR.'/front-end/extra-fields/extra-fields.php' );
36
-
37
  $this->wppb_retrieve_custom_settings();
38
 
39
  add_action( 'wp_footer', array( &$this, 'wppb_print_script' ) ); //print scripts
@@ -104,7 +104,7 @@ class Profile_Builder_Form_Creator{
104
  $this->args['role'] = ( isset( $selected_role ) ? $selected_role : $this->args['role'] );
105
  $this->args['login_after_register'] = ( isset( $page_settings[0]['automatically-log-in'] ) ? $page_settings[0]['automatically-log-in'] : $this->args['login_after_register'] );
106
  $this->args['redirect_activated'] = ( isset( $page_settings[0]['redirect'] ) ? $page_settings[0]['redirect'] : $this->args['redirect_activated'] );
107
- $this->args['redirect_url'] = ( isset( $page_settings[0]['url'] ) ? $page_settings[0]['url'] : $this->args['redirect_url'] );
108
  $this->args['redirect_delay'] = ( isset( $page_settings[0]['display-messages'] ) ? $page_settings[0]['display-messages'] : $this->args['redirect_delay'] );
109
 
110
  if( $this->args['redirect_activated'] == '-' ) {
@@ -134,10 +134,19 @@ class Profile_Builder_Form_Creator{
134
  $username = null;
135
 
136
  if( isset( $wppb_module_settings['wppb_customRedirect'] ) && $wppb_module_settings['wppb_customRedirect'] == 'show' && $this->args['redirect_priority'] != 'top' && function_exists( 'wppb_custom_redirect_url' ) ) {
137
- if( $this->args['form_type'] == 'register' )
138
- $this->args['redirect_url'] = $this->args['custom_redirect_after_register_url'] = wppb_custom_redirect_url( 'after_registration', $this->args['redirect_url'], $username, $this->args['role'] );
139
- else if( $this->args['form_type'] == 'edit_profile' )
 
 
 
 
140
  $this->args['redirect_url'] = $this->args['custom_redirect_after_edit_profile_url'] = wppb_custom_redirect_url( 'after_edit_profile', $this->args['redirect_url'], $username, $this->args['role'] );
 
 
 
 
 
141
  }
142
  }
143
  }
@@ -198,7 +207,7 @@ class Profile_Builder_Form_Creator{
198
 
199
  }
200
  }
201
-
202
  function wppb_get_redirect(){
203
  if ( $this->args['login_after_register'] == 'Yes' )
204
  return $this->wppb_log_in_user();
@@ -209,19 +218,17 @@ class Profile_Builder_Form_Creator{
209
  if ( $this->args['form_type'] == 'register' && $this->args['redirect_activated'] == '-' ){
210
  if( !empty( $this->args['custom_redirect_after_register_url'] ) )
211
  $this->args['redirect_url'] = $this->args['custom_redirect_after_register_url'];
212
- else return '';
213
  }
214
 
215
  /* if we don't have a preference on the form for redirect then if we have a custom redirect "after edit profile redirect" option redirect to that if not don't do anything */
216
  if ( $this->args['form_type'] == 'edit_profile' && $this->args['redirect_activated'] == '-' ){
217
  if( !empty( $this->args['custom_redirect_after_edit_profile_url'] ) )
218
  $this->args['redirect_url'] = $this->args['custom_redirect_after_edit_profile_url'];
219
- else return '';
220
  }
221
 
222
  $redirect_location = ( wppb_check_missing_http( $this->args['redirect_url'] ) ? 'http://'.$this->args['redirect_url'] : $this->args['redirect_url'] );
223
  $redirect_url = apply_filters( 'wppb_redirect_url', '<a href="'.$redirect_location.'">'.__( 'here', 'profile-builder' ).'</a>' );
224
-
225
  return apply_filters ( 'wppb_redirect_message_before_returning', '<p class="redirect_message">'.sprintf( wp_slash( __( 'You will soon be redirected automatically. If you see this page for more than %1$d seconds, please click %2$s.%3$s', 'profile-builder' ) ), $this->args['redirect_delay'], $redirect_url, '<meta http-equiv="Refresh" content="'.$this->args['redirect_delay'].';url='.$redirect_location.'" />' ).'</p>', $this->args );
226
  }
227
 
@@ -253,10 +260,8 @@ class Profile_Builder_Form_Creator{
253
  $location = home_url();
254
  }
255
  }else if ( $this->args['redirect_activated'] == '-' ){
256
- if( !empty( $this->args['custom_redirect_after_register_url'] ) )
257
- $location = $this->args['custom_redirect_after_register_url'];
258
- else
259
- $location = home_url();
260
  }
261
  else{
262
  $location = ( wppb_check_missing_http( $this->args['redirect_url'] ) ? 'http://'.$this->args['redirect_url'] : $this->args['redirect_url'] );
@@ -392,7 +397,7 @@ class Profile_Builder_Form_Creator{
392
  <p class="form-submit">
393
  <?php
394
  if( $this->args['form_type'] == 'register' )
395
- $button_name = ( current_user_can( 'create_user' ) ? __( 'Add User', 'profile-builder' ) : __( 'Register', 'profile-builder' ) );
396
 
397
  elseif( $this->args['form_type'] == 'edit_profile' )
398
  $button_name = __( 'Update', 'profile-builder' );
@@ -538,7 +543,7 @@ class Profile_Builder_Form_Creator{
538
  }
539
 
540
  function wppb_register_user( $global_request, $userdata ){
541
-
542
  $wppb_general_settings = get_option( 'wppb_general_settings' );
543
  $user_id = null;
544
  $new_user_signup = false;
@@ -634,7 +639,7 @@ class Profile_Builder_Form_Creator{
634
  return;
635
 
636
  /* add a hard cap: if we have more than 5000 users don't display the dropdown for performance considerations */
637
- $user_count = count_users();
638
  if( $user_count['total_users'] > apply_filters( 'wppb_edit_other_users_count_limit', 5000 ) )
639
  return;
640
 
@@ -645,7 +650,7 @@ class Profile_Builder_Form_Creator{
645
 
646
  $query_args['fields'] = array( 'ID', 'user_login', 'display_name' );
647
  $query_args['role'] = apply_filters( 'wppb_edit_profile_user_dropdown_role', '' );
648
- $users = get_users( $query_args );
649
  if( !empty( $users ) ) {
650
  ?>
651
  <form method="GET" action="" id="select_user_to_edit_form">
33
 
34
  if ( file_exists ( WPPB_PLUGIN_DIR.'/front-end/extra-fields/extra-fields.php' ) )
35
  require_once( WPPB_PLUGIN_DIR.'/front-end/extra-fields/extra-fields.php' );
36
+
37
  $this->wppb_retrieve_custom_settings();
38
 
39
  add_action( 'wp_footer', array( &$this, 'wppb_print_script' ) ); //print scripts
104
  $this->args['role'] = ( isset( $selected_role ) ? $selected_role : $this->args['role'] );
105
  $this->args['login_after_register'] = ( isset( $page_settings[0]['automatically-log-in'] ) ? $page_settings[0]['automatically-log-in'] : $this->args['login_after_register'] );
106
  $this->args['redirect_activated'] = ( isset( $page_settings[0]['redirect'] ) ? $page_settings[0]['redirect'] : $this->args['redirect_activated'] );
107
+ $this->args['redirect_url'] = ( !empty( $page_settings[0]['url'] ) && $this->args['redirect_activated'] == 'Yes' ? $page_settings[0]['url'] : $this->args['redirect_url'] );
108
  $this->args['redirect_delay'] = ( isset( $page_settings[0]['display-messages'] ) ? $page_settings[0]['display-messages'] : $this->args['redirect_delay'] );
109
 
110
  if( $this->args['redirect_activated'] == '-' ) {
134
  $username = null;
135
 
136
  if( isset( $wppb_module_settings['wppb_customRedirect'] ) && $wppb_module_settings['wppb_customRedirect'] == 'show' && $this->args['redirect_priority'] != 'top' && function_exists( 'wppb_custom_redirect_url' ) ) {
137
+ if( $this->args['form_type'] == 'register' ) {
138
+ $this->args['redirect_url'] = wppb_custom_redirect_url( 'after_registration', $this->args['redirect_url'], $username, $this->args['role'] );
139
+
140
+ if( $this->args['redirect_activated'] == 'Yes' ) {
141
+ $this->args['custom_redirect_after_register_url'] = $this->args['redirect_url'];
142
+ }
143
+ } else if( $this->args['form_type'] == 'edit_profile' ) {
144
  $this->args['redirect_url'] = $this->args['custom_redirect_after_edit_profile_url'] = wppb_custom_redirect_url( 'after_edit_profile', $this->args['redirect_url'], $username, $this->args['role'] );
145
+
146
+ if( $this->args['redirect_activated'] == 'Yes' ) {
147
+ $this->args['custom_redirect_after_register_url'] = $this->args['redirect_url'];
148
+ }
149
+ }
150
  }
151
  }
152
  }
207
 
208
  }
209
  }
210
+
211
  function wppb_get_redirect(){
212
  if ( $this->args['login_after_register'] == 'Yes' )
213
  return $this->wppb_log_in_user();
218
  if ( $this->args['form_type'] == 'register' && $this->args['redirect_activated'] == '-' ){
219
  if( !empty( $this->args['custom_redirect_after_register_url'] ) )
220
  $this->args['redirect_url'] = $this->args['custom_redirect_after_register_url'];
 
221
  }
222
 
223
  /* if we don't have a preference on the form for redirect then if we have a custom redirect "after edit profile redirect" option redirect to that if not don't do anything */
224
  if ( $this->args['form_type'] == 'edit_profile' && $this->args['redirect_activated'] == '-' ){
225
  if( !empty( $this->args['custom_redirect_after_edit_profile_url'] ) )
226
  $this->args['redirect_url'] = $this->args['custom_redirect_after_edit_profile_url'];
 
227
  }
228
 
229
  $redirect_location = ( wppb_check_missing_http( $this->args['redirect_url'] ) ? 'http://'.$this->args['redirect_url'] : $this->args['redirect_url'] );
230
  $redirect_url = apply_filters( 'wppb_redirect_url', '<a href="'.$redirect_location.'">'.__( 'here', 'profile-builder' ).'</a>' );
231
+
232
  return apply_filters ( 'wppb_redirect_message_before_returning', '<p class="redirect_message">'.sprintf( wp_slash( __( 'You will soon be redirected automatically. If you see this page for more than %1$d seconds, please click %2$s.%3$s', 'profile-builder' ) ), $this->args['redirect_delay'], $redirect_url, '<meta http-equiv="Refresh" content="'.$this->args['redirect_delay'].';url='.$redirect_location.'" />' ).'</p>', $this->args );
233
  }
234
 
260
  $location = home_url();
261
  }
262
  }else if ( $this->args['redirect_activated'] == '-' ){
263
+ $this->wppb_custom_redirect_check();
264
+ $location = $this->args['redirect_url'];
 
 
265
  }
266
  else{
267
  $location = ( wppb_check_missing_http( $this->args['redirect_url'] ) ? 'http://'.$this->args['redirect_url'] : $this->args['redirect_url'] );
397
  <p class="form-submit">
398
  <?php
399
  if( $this->args['form_type'] == 'register' )
400
+ $button_name = ( current_user_can( 'create_users' ) ? __( 'Add User', 'profile-builder' ) : __( 'Register', 'profile-builder' ) );
401
 
402
  elseif( $this->args['form_type'] == 'edit_profile' )
403
  $button_name = __( 'Update', 'profile-builder' );
543
  }
544
 
545
  function wppb_register_user( $global_request, $userdata ){
546
+ $wppb_module_settings = get_option( 'wppb_module_settings' );
547
  $wppb_general_settings = get_option( 'wppb_general_settings' );
548
  $user_id = null;
549
  $new_user_signup = false;
639
  return;
640
 
641
  /* add a hard cap: if we have more than 5000 users don't display the dropdown for performance considerations */
642
+ $user_count = count_users();
643
  if( $user_count['total_users'] > apply_filters( 'wppb_edit_other_users_count_limit', 5000 ) )
644
  return;
645
 
650
 
651
  $query_args['fields'] = array( 'ID', 'user_login', 'display_name' );
652
  $query_args['role'] = apply_filters( 'wppb_edit_profile_user_dropdown_role', '' );
653
+ $users = get_users( apply_filters( 'wppb_edit_other_users_dropdown_query_args', $query_args ) );
654
  if( !empty( $users ) ) {
655
  ?>
656
  <form method="GET" action="" id="select_user_to_edit_form">
front-end/logout.php CHANGED
@@ -12,7 +12,10 @@
12
 
13
  $current_user = get_userdata( get_current_user_id() );
14
 
15
- extract( shortcode_atts( array( 'text' => sprintf( __('You are currently logged in as %s. ','profile-builder') ,$current_user->user_login) , 'redirect' => wppb_curpageurl(), 'redirect_priority' => 'normal', 'link_text' => __('Log out &raquo;','profile-builder')), $atts ) );
 
 
 
16
 
17
  if( PROFILE_BUILDER == 'Profile Builder Pro' ) {
18
  $wppb_module_settings = get_option( 'wppb_module_settings' );
12
 
13
  $current_user = get_userdata( get_current_user_id() );
14
 
15
+ extract( shortcode_atts( array( 'text' => sprintf( __('You are currently logged in as %s. ','profile-builder') ,$current_user->user_login) , 'redirect' => wppb_curpageurl(), 'redirect_url' => wppb_curpageurl(), 'redirect_priority' => 'normal', 'link_text' => __('Log out &raquo;','profile-builder')), $atts ) );
16
+
17
+ if( !empty( $redirect_url ) )
18
+ $redirect = $redirect_url;
19
 
20
  if( PROFILE_BUILDER == 'Profile Builder Pro' ) {
21
  $wppb_module_settings = get_option( 'wppb_module_settings' );
index.php CHANGED
@@ -3,7 +3,7 @@
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.4.7
7
  Author: Cozmoslabs, Madalin Ungureanu, Antohe Cristian, Barina Gabriel, Mihai Iova
8
  Author URI: https://www.cozmoslabs.com/
9
  License: GPL2
@@ -73,7 +73,7 @@ function wppb_free_plugin_init() {
73
  *
74
  *
75
  */
76
- define('PROFILE_BUILDER_VERSION', '2.4.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'))));
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.4.8
7
  Author: Cozmoslabs, Madalin Ungureanu, Antohe Cristian, Barina Gabriel, Mihai Iova
8
  Author URI: https://www.cozmoslabs.com/
9
  License: GPL2
73
  *
74
  *
75
  */
76
+ define('PROFILE_BUILDER_VERSION', '2.4.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'))));
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: user registration, user registration form, user fields, extra user fields,
5
 
6
  Requires at least: 3.1
7
  Tested up to: 4.6.1
8
- Stable tag: 2.4.7
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -150,6 +150,12 @@ This plugin adds/removes user fields in the front-end. Both default and extra pr
150
  10. Profile Builder Login Widget
151
 
152
  == Changelog ==
 
 
 
 
 
 
153
  = 2.4.7 =
154
  * Fixed an issue with the redirect after registration autologin and string translations
155
  * Changes to Addons page to meet wp directory requirements
5
 
6
  Requires at least: 3.1
7
  Tested up to: 4.6.1
8
+ Stable tag: 2.4.8
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
150
  10. Profile Builder Login Widget
151
 
152
  == Changelog ==
153
+ = 2.4.8 =
154
+ * Now when an administrator registers an user the Register button text has changed to Add User
155
+ * Multiple fixes regarding redirects
156
+ * Fixed issues with redirect_url shortcode parameter and changed the logout shortcode parameter to redirect_url from redirect
157
+ * Added the filter 'wppb_edit_other_users_dropdown_query_args' for changing the user query on the edit other users dropwdown
158
+
159
  = 2.4.7 =
160
  * Fixed an issue with the redirect after registration autologin and string translations
161
  * Changes to Addons page to meet wp directory requirements