User registration & user profile – Profile Builder - Version 3.4.9

Version Description

Fix: Security issue with Reset Password form. Thanks to Stiofan O'connor Fix: Added option in Advanced Settings -> Fields for display password feature. It's disabled by default now. Display and positioning corrected Misc: Added Empty Username/Password login messages in our code so they can be changed using the Labels Edit add-on

Download this release

Release Info

Developer raster02
Plugin Icon 128x128 User registration & user profile – Profile Builder
Version 3.4.9
Comparing to
See all releases

Code changes from version 3.4.8 to 3.4.9

admin/advanced-settings/includes/fields/password-visibility-hide.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+
3
+ add_filter( 'wppb_show_password_visibility_toggle', '__return_true' );
admin/advanced-settings/includes/forms/save-admin-approval-status.php CHANGED
@@ -3,23 +3,21 @@
3
  $wppb_general_settings = get_option( 'wppb_general_settings' );
4
 
5
  if ( isset( $wppb_general_settings['adminApproval'] ) && $wppb_general_settings['adminApproval'] == 'yes' ) {
6
- add_action( 'wppb_after_user_approval', 'wppb_toolbox_update_admin_approval_in_usermeta', 20 );
7
-
8
- if ( isset( $wppb_general_settings['emailConfirmation'] ) && $wppb_general_settings['emailConfirmation'] == 'yes' )
9
- add_action( 'wppb_activate_user', 'wppb_toolbox_save_admin_approval_in_usermeta_ec', 20, 3 );
10
- else
11
- add_action( 'wppb_register_success', 'wppb_toolbox_save_admin_approval_in_usermeta', 20, 3 );
12
-
13
  }
14
 
15
- function wppb_toolbox_save_admin_approval_in_usermeta( $http_request, $form_name, $user_id ){
16
- update_user_meta( $user_id, 'wppb_approval_status', 'unapproved' );
 
 
 
 
 
 
 
 
 
 
17
  }
18
 
19
- function wppb_toolbox_save_admin_approval_in_usermeta_ec( $user_id, $password, $meta ){
20
- update_user_meta( $user_id, 'wppb_approval_status', 'unapproved' );
21
- }
22
 
23
- function wppb_toolbox_update_admin_approval_in_usermeta( $user_id ){
24
- update_user_meta( $user_id, 'wppb_approval_status', 'approved' );
25
- }
3
  $wppb_general_settings = get_option( 'wppb_general_settings' );
4
 
5
  if ( isset( $wppb_general_settings['adminApproval'] ) && $wppb_general_settings['adminApproval'] == 'yes' ) {
6
+ add_filter( 'wppb_admin_approval_update_user_status', 'wppb_toolbox_update_admin_approval_status_in_usermeta', 20, 2 );
 
 
 
 
 
 
7
  }
8
 
9
+ function wppb_toolbox_update_admin_approval_status_in_usermeta( $status, $user_id ){
10
+ switch ( is_array($status) ? reset($status) : NULL ) {
11
+ case 'pending':
12
+ update_user_meta($user_id, 'wppb_approval_status', 'pending');
13
+ break;
14
+ case 'unapproved':
15
+ update_user_meta($user_id, 'wppb_approval_status', 'unapproved');
16
+ break;
17
+ default:
18
+ update_user_meta($user_id, 'wppb_approval_status', 'approved');
19
+ }
20
+ return $status;
21
  }
22
 
 
 
 
23
 
 
 
 
admin/advanced-settings/includes/views/view-fields.php CHANGED
@@ -252,6 +252,22 @@
252
  </tr>
253
  <?php endif; ?>
254
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
255
  <?php if ( file_exists( WPPB_PLUGIN_DIR . '/front-end/extra-fields/extra-fields.php' ) ) : ?>
256
  <tr>
257
  <th><?php _e( 'Remove All Extra Fields from Backend edit profile page.', 'profile-builder' ); ?></th>
252
  </tr>
253
  <?php endif; ?>
254
 
255
+ <tr>
256
+ <th><?php _e( 'Show the Password field visibility toggle', 'profile-builder' ); ?></th>
257
+
258
+ <td>
259
+ <label><input type="checkbox" name="wppb_toolbox_fields_settings[password-visibility-hide]"<?php echo ( ( isset( $settings['password-visibility-hide'] ) && ( $settings['password-visibility-hide'] == 'yes' ) ) ? ' checked' : '' ); ?> value="yes">
260
+ <?php _e( 'Yes', 'profile-builder' ); ?>
261
+ </label>
262
+
263
+ <ul>
264
+ <li class="description">
265
+ <?php _e( 'Activating this option will show a visibility toggle button for all Password fields.', 'profile-builder' ); ?>
266
+ </li>
267
+ </ul>
268
+ </td>
269
+ </tr>
270
+
271
  <?php if ( file_exists( WPPB_PLUGIN_DIR . '/front-end/extra-fields/extra-fields.php' ) ) : ?>
272
  <tr>
273
  <th><?php _e( 'Remove All Extra Fields from Backend edit profile page.', 'profile-builder' ); ?></th>
assets/css/style-front-end.css CHANGED
@@ -149,7 +149,7 @@
149
  }
150
 
151
  #wppb-login-wrap p,
152
- #select_user_to_edit_form p{
153
  overflow:hidden;
154
  margin:0;
155
  padding-bottom:14px;
@@ -874,11 +874,26 @@ li.wppb-facet-search{
874
  .wppb-form-field.wppb-default-repeat-password button.wppb-toggle-pw,
875
  #wppb-login-wrap .login-password button.wppb-toggle-pw {
876
  position: absolute;
877
- right: 0px;
878
- top: 8px;
 
879
  background: transparent;
880
  border: 1px solid transparent;
881
  box-shadow: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
882
  }
883
 
884
  /**************************************************/
149
  }
150
 
151
  #wppb-login-wrap p,
152
+ #select_user_to_edit_form p {
153
  overflow:hidden;
154
  margin:0;
155
  padding-bottom:14px;
874
  .wppb-form-field.wppb-default-repeat-password button.wppb-toggle-pw,
875
  #wppb-login-wrap .login-password button.wppb-toggle-pw {
876
  position: absolute;
877
+ right: 4px;
878
+ /* fields bottom padding / 2 */
879
+ top: -7px;
880
  background: transparent;
881
  border: 1px solid transparent;
882
  box-shadow: none;
883
+ padding: 0;
884
+ margin: 0;
885
+ height: 100%;
886
+ cursor: pointer;
887
+
888
+ display: flex;
889
+ align-items: center;
890
+ justify-content: center;
891
+ }
892
+
893
+ .wppb-form-field.wppb-default-password button img,
894
+ .wppb-form-field.wppb-default-repeat-password button img,
895
+ #wppb-login-wrap .login-password button img {
896
+ width: 20px;
897
  }
898
 
899
  /**************************************************/
features/functions.php CHANGED
@@ -5,7 +5,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
  * Functions Load
6
  *
7
  */
8
-
9
  // whitelist options, you can add more register_settings changing the second parameter
10
  function wppb_register_settings() {
11
  register_setting( 'wppb_option_group', 'wppb_default_settings' );
@@ -27,10 +27,10 @@ function wppb_register_settings() {
27
 
28
 
29
  // WPML support
30
- function wppb_icl_t($context, $name, $value){
31
  if( function_exists( 'icl_t' ) )
32
  return icl_t( $context, $name, $value );
33
-
34
  else
35
  return $value;
36
  }
@@ -143,12 +143,12 @@ if(!function_exists('wppb_get_abs_home')) {
143
  if ( is_admin() ){
144
 
145
  // register the settings for the menu only display sidebar menu for a user with a certain capability, in this case only the "admin"
146
- add_action( 'admin_init', 'wppb_register_settings' );
147
 
148
  // display the same extra profile fields in the admin panel also
149
  if ( file_exists ( WPPB_PLUGIN_DIR.'/front-end/extra-fields/extra-fields.php' ) ){
150
  require_once( WPPB_PLUGIN_DIR.'/front-end/extra-fields/extra-fields.php' );
151
-
152
  add_action( 'show_user_profile', 'display_profile_extra_fields_in_admin', 10 );
153
  add_action( 'edit_user_profile', 'display_profile_extra_fields_in_admin', 10 );
154
  global $pagenow;
@@ -167,15 +167,15 @@ if ( is_admin() ){
167
 
168
  }else if ( !is_admin() ){
169
  // include the stylesheet
170
- add_action( 'wp_print_styles', 'wppb_add_plugin_stylesheet' );
171
 
172
  // include the menu file for the profile informations
173
- include_once( WPPB_PLUGIN_DIR.'/front-end/edit-profile.php' );
174
- include_once( WPPB_PLUGIN_DIR.'/front-end/class-formbuilder.php' );
175
  add_shortcode( 'wppb-edit-profile', 'wppb_front_end_profile_info' );
176
 
177
  // include the menu file for the login screen
178
- include_once( WPPB_PLUGIN_DIR.'/front-end/login.php' );
179
  add_shortcode( 'wppb-login', 'wppb_front_end_login' );
180
 
181
  // include the menu file for the logout screen
@@ -183,11 +183,11 @@ if ( is_admin() ){
183
  add_shortcode( 'wppb-logout', 'wppb_front_end_logout' );
184
 
185
  // include the menu file for the register screen
186
- include_once( WPPB_PLUGIN_DIR.'/front-end/register.php' );
187
- add_shortcode( 'wppb-register', 'wppb_front_end_register_handler' );
188
-
189
  // include the menu file for the recover password screen
190
- include_once( WPPB_PLUGIN_DIR.'/front-end/recover.php' );
191
  add_shortcode( 'wppb-recover-password', 'wppb_front_end_password_recovery' );
192
 
193
  // set the front-end admin bar to show/hide
@@ -218,7 +218,7 @@ function wppb_mail( $to, $subject, $message, $message_from = null, $context = nu
218
  $message = wppb_maybe_add_propper_html_tags_to_email( $message );
219
 
220
  do_action( 'wppb_before_sending_email', $to, $subject, $message, $send_email, $context );
221
-
222
  if ( $send_email ) {
223
  //we add this filter to enable html encoding
224
  add_filter('wp_mail_content_type', 'wppb_html_content_type' );
@@ -262,7 +262,7 @@ function wppb_activate_account_check(){
262
 
263
  $wppb_generalSettings = get_option( 'wppb_general_settings' );
264
  $activation_landing_page_id = ( ( isset( $wppb_generalSettings['activationLandingPage'] ) && ( trim( $wppb_generalSettings['activationLandingPage'] ) != '' ) ) ? $wppb_generalSettings['activationLandingPage'] : 'not_set' );
265
-
266
  if ( $activation_landing_page_id != 'not_set' ){
267
  //an activation page was selected, but we still need to check if the current page doesn't already have the registration shortcode
268
  if ( strpos( $post->post_content, '[wppb-register' ) === false )
@@ -286,7 +286,7 @@ function wppb_add_activation_message( $content ){
286
 
287
 
288
  // Create a new, top-level page
289
- $args = array(
290
  'page_title' => 'Profile Builder',
291
  'menu_title' => 'Profile Builder',
292
  'capability' => 'manage_options',
@@ -320,7 +320,7 @@ add_action( 'admin_menu', 'wppb_remove_main_menu_page', 11 );
320
  function wppb_print_cpt_script( $hook ){
321
  wp_enqueue_script( 'jquery-ui-dialog' );
322
  wp_enqueue_style( 'wp-jquery-ui-dialog' );
323
-
324
  if ( $hook == 'profile-builder_page_manage-fields' ){
325
  wp_enqueue_script( 'wppb-manage-fields-live-change', WPPB_PLUGIN_URL . 'assets/js/jquery-manage-fields-live-change.js', array(), PROFILE_BUILDER_VERSION, true );
326
  wp_localize_script( 'wppb-manage-fields-live-change', 'wppb_fields_strings', array( 'gdpr_title' => __( 'GDPR Checkbox', 'profile-builder' ), 'gdpr_description' => __( 'I allow the website to collect and store the data I submit through this form.', 'profile-builder' ) ) );
@@ -356,7 +356,7 @@ function wppb_print_cpt_script( $hook ){
356
  ( $hook == 'admin_page_profile-builder-private-website') ) {
357
  wp_enqueue_style( 'wppb-back-end-style', WPPB_PLUGIN_URL . 'assets/css/style-back-end.css', false, PROFILE_BUILDER_VERSION );
358
  }
359
-
360
  if ( $hook == 'profile-builder_page_profile-builder-general-settings' )
361
  wp_enqueue_script( 'wppb-manage-fields-live-change', WPPB_PLUGIN_URL . 'assets/js/jquery-email-confirmation.js', array(), PROFILE_BUILDER_VERSION, true );
362
 
@@ -370,10 +370,10 @@ function wppb_print_cpt_script( $hook ){
370
  if ( isset( $_GET['post_type'] ) || isset( $_GET['post'] ) ){
371
  if ( isset( $_GET['post_type'] ) )
372
  $post_type = sanitize_text_field( $_GET['post_type'] );
373
-
374
  elseif ( isset( $_GET['post'] ) )
375
  $post_type = get_post_type( absint( $_GET['post'] ) );
376
-
377
  if ( ( 'wppb-epf-cpt' == $post_type ) || ( 'wppb-rf-cpt' == $post_type ) || ( 'wppb-ul-cpt' == $post_type ) ){
378
  wp_enqueue_style( 'wppb-back-end-style', WPPB_PLUGIN_URL . 'assets/css/style-back-end.css', false, PROFILE_BUILDER_VERSION );
379
  wp_enqueue_script( 'wppb-epf-rf', WPPB_PLUGIN_URL . 'assets/js/jquery-epf-rf.js', array(), PROFILE_BUILDER_VERSION, true );
@@ -405,7 +405,7 @@ function wppb_make_setting_menu_item_highlighted(){
405
  jQuery(document).ready( function($) {
406
  $("#toplevel_page_profile-builder").addClass("current wp-has-current-submenu wp-menu-open");
407
  $("a[href=\'admin.php?page=profile-builder-general-settings\']").closest("li").addClass("current");
408
- });
409
  </script>';
410
  }
411
 
@@ -708,7 +708,7 @@ add_action('admin_print_styles-users_page_ProfileBuilderOptionsAndSettings', 'wp
708
 
709
  function wppb_user_meta_exists( $id, $meta_name ){
710
  global $wpdb;
711
-
712
  return apply_filters( 'wppb_user_meta_exists_meta_name', $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $id, $meta_name ) ), $id, $meta_name );
713
  }
714
 
@@ -721,7 +721,7 @@ function wppb_check_missing_http( $redirectLink ) {
721
  //function that adds missing http to a link
722
  function wppb_add_missing_http( $link ){
723
  $http = '';
724
- if ( wppb_check_missing_http( $link ) ) { //if missing http(s)
725
  $http = 'http';
726
  if ((isset($_SERVER["HTTPS"])) && ($_SERVER["HTTPS"] == "on"))
727
  $http .= "s";
@@ -865,12 +865,10 @@ function wppb_password_strength_check(){
865
  * Include toggle password visibility script on frontend where we have shortcodes present
866
  */
867
  function wppb_password_visibility_toggle_html(){
868
- if( apply_filters( 'wppb_show_password_visibility_toggle', true ) ){
869
  return '
870
  <button type="button" class="wppb-toggle-pw wppb-show-pw hide-if-no-js" data-toggle="0" aria-label="Show password" tabindex="-1">
871
- <span class="wppb-img-pw" aria-hidden="true">
872
- <img src="'.WPPB_PLUGIN_URL.'/assets/images/eye-outline.svg"/>
873
- </span>
874
  </button>';
875
  }
876
  return '';
@@ -882,11 +880,26 @@ function wppb_password_visibility_toggle_html(){
882
  add_action( 'wp_footer', 'wppb_enqueue_password_visibility_toggle' );
883
  function wppb_enqueue_password_visibility_toggle() {
884
  global $wppb_shortcode_on_front;
885
- if( $wppb_shortcode_on_front && apply_filters( 'wppb_show_password_visibility_toggle', true ) ){
886
  ?>
887
  <script type="text/javascript">
888
  jQuery( document ).ready( function() {
889
  jQuery( "button.wppb-toggle-pw" ).on( "click", wppb_password_visibility_toggle );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
890
  });
891
  function wppb_password_visibility_toggle() {
892
  var target_form_id = "#" + jQuery(this).closest('form').attr("id") + " ";
@@ -1718,4 +1731,4 @@ function wppb_check_if_add_on_is_active( $slug ){
1718
  }
1719
 
1720
  return false;
1721
- }
5
  * Functions Load
6
  *
7
  */
8
+
9
  // whitelist options, you can add more register_settings changing the second parameter
10
  function wppb_register_settings() {
11
  register_setting( 'wppb_option_group', 'wppb_default_settings' );
27
 
28
 
29
  // WPML support
30
+ function wppb_icl_t($context, $name, $value){
31
  if( function_exists( 'icl_t' ) )
32
  return icl_t( $context, $name, $value );
33
+
34
  else
35
  return $value;
36
  }
143
  if ( is_admin() ){
144
 
145
  // register the settings for the menu only display sidebar menu for a user with a certain capability, in this case only the "admin"
146
+ add_action( 'admin_init', 'wppb_register_settings' );
147
 
148
  // display the same extra profile fields in the admin panel also
149
  if ( file_exists ( WPPB_PLUGIN_DIR.'/front-end/extra-fields/extra-fields.php' ) ){
150
  require_once( WPPB_PLUGIN_DIR.'/front-end/extra-fields/extra-fields.php' );
151
+
152
  add_action( 'show_user_profile', 'display_profile_extra_fields_in_admin', 10 );
153
  add_action( 'edit_user_profile', 'display_profile_extra_fields_in_admin', 10 );
154
  global $pagenow;
167
 
168
  }else if ( !is_admin() ){
169
  // include the stylesheet
170
+ add_action( 'wp_print_styles', 'wppb_add_plugin_stylesheet' );
171
 
172
  // include the menu file for the profile informations
173
+ include_once( WPPB_PLUGIN_DIR.'/front-end/edit-profile.php' );
174
+ include_once( WPPB_PLUGIN_DIR.'/front-end/class-formbuilder.php' );
175
  add_shortcode( 'wppb-edit-profile', 'wppb_front_end_profile_info' );
176
 
177
  // include the menu file for the login screen
178
+ include_once( WPPB_PLUGIN_DIR.'/front-end/login.php' );
179
  add_shortcode( 'wppb-login', 'wppb_front_end_login' );
180
 
181
  // include the menu file for the logout screen
183
  add_shortcode( 'wppb-logout', 'wppb_front_end_logout' );
184
 
185
  // include the menu file for the register screen
186
+ include_once( WPPB_PLUGIN_DIR.'/front-end/register.php' );
187
+ add_shortcode( 'wppb-register', 'wppb_front_end_register_handler' );
188
+
189
  // include the menu file for the recover password screen
190
+ include_once( WPPB_PLUGIN_DIR.'/front-end/recover.php' );
191
  add_shortcode( 'wppb-recover-password', 'wppb_front_end_password_recovery' );
192
 
193
  // set the front-end admin bar to show/hide
218
  $message = wppb_maybe_add_propper_html_tags_to_email( $message );
219
 
220
  do_action( 'wppb_before_sending_email', $to, $subject, $message, $send_email, $context );
221
+
222
  if ( $send_email ) {
223
  //we add this filter to enable html encoding
224
  add_filter('wp_mail_content_type', 'wppb_html_content_type' );
262
 
263
  $wppb_generalSettings = get_option( 'wppb_general_settings' );
264
  $activation_landing_page_id = ( ( isset( $wppb_generalSettings['activationLandingPage'] ) && ( trim( $wppb_generalSettings['activationLandingPage'] ) != '' ) ) ? $wppb_generalSettings['activationLandingPage'] : 'not_set' );
265
+
266
  if ( $activation_landing_page_id != 'not_set' ){
267
  //an activation page was selected, but we still need to check if the current page doesn't already have the registration shortcode
268
  if ( strpos( $post->post_content, '[wppb-register' ) === false )
286
 
287
 
288
  // Create a new, top-level page
289
+ $args = array(
290
  'page_title' => 'Profile Builder',
291
  'menu_title' => 'Profile Builder',
292
  'capability' => 'manage_options',
320
  function wppb_print_cpt_script( $hook ){
321
  wp_enqueue_script( 'jquery-ui-dialog' );
322
  wp_enqueue_style( 'wp-jquery-ui-dialog' );
323
+
324
  if ( $hook == 'profile-builder_page_manage-fields' ){
325
  wp_enqueue_script( 'wppb-manage-fields-live-change', WPPB_PLUGIN_URL . 'assets/js/jquery-manage-fields-live-change.js', array(), PROFILE_BUILDER_VERSION, true );
326
  wp_localize_script( 'wppb-manage-fields-live-change', 'wppb_fields_strings', array( 'gdpr_title' => __( 'GDPR Checkbox', 'profile-builder' ), 'gdpr_description' => __( 'I allow the website to collect and store the data I submit through this form.', 'profile-builder' ) ) );
356
  ( $hook == 'admin_page_profile-builder-private-website') ) {
357
  wp_enqueue_style( 'wppb-back-end-style', WPPB_PLUGIN_URL . 'assets/css/style-back-end.css', false, PROFILE_BUILDER_VERSION );
358
  }
359
+
360
  if ( $hook == 'profile-builder_page_profile-builder-general-settings' )
361
  wp_enqueue_script( 'wppb-manage-fields-live-change', WPPB_PLUGIN_URL . 'assets/js/jquery-email-confirmation.js', array(), PROFILE_BUILDER_VERSION, true );
362
 
370
  if ( isset( $_GET['post_type'] ) || isset( $_GET['post'] ) ){
371
  if ( isset( $_GET['post_type'] ) )
372
  $post_type = sanitize_text_field( $_GET['post_type'] );
373
+
374
  elseif ( isset( $_GET['post'] ) )
375
  $post_type = get_post_type( absint( $_GET['post'] ) );
376
+
377
  if ( ( 'wppb-epf-cpt' == $post_type ) || ( 'wppb-rf-cpt' == $post_type ) || ( 'wppb-ul-cpt' == $post_type ) ){
378
  wp_enqueue_style( 'wppb-back-end-style', WPPB_PLUGIN_URL . 'assets/css/style-back-end.css', false, PROFILE_BUILDER_VERSION );
379
  wp_enqueue_script( 'wppb-epf-rf', WPPB_PLUGIN_URL . 'assets/js/jquery-epf-rf.js', array(), PROFILE_BUILDER_VERSION, true );
405
  jQuery(document).ready( function($) {
406
  $("#toplevel_page_profile-builder").addClass("current wp-has-current-submenu wp-menu-open");
407
  $("a[href=\'admin.php?page=profile-builder-general-settings\']").closest("li").addClass("current");
408
+ });
409
  </script>';
410
  }
411
 
708
 
709
  function wppb_user_meta_exists( $id, $meta_name ){
710
  global $wpdb;
711
+
712
  return apply_filters( 'wppb_user_meta_exists_meta_name', $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $id, $meta_name ) ), $id, $meta_name );
713
  }
714
 
721
  //function that adds missing http to a link
722
  function wppb_add_missing_http( $link ){
723
  $http = '';
724
+ if ( wppb_check_missing_http( $link ) ) { //if missing http(s)
725
  $http = 'http';
726
  if ((isset($_SERVER["HTTPS"])) && ($_SERVER["HTTPS"] == "on"))
727
  $http .= "s";
865
  * Include toggle password visibility script on frontend where we have shortcodes present
866
  */
867
  function wppb_password_visibility_toggle_html(){
868
+ if( apply_filters( 'wppb_show_password_visibility_toggle', false ) ){
869
  return '
870
  <button type="button" class="wppb-toggle-pw wppb-show-pw hide-if-no-js" data-toggle="0" aria-label="Show password" tabindex="-1">
871
+ <img src="'.WPPB_PLUGIN_URL.'/assets/images/eye-outline.svg"/>
 
 
872
  </button>';
873
  }
874
  return '';
880
  add_action( 'wp_footer', 'wppb_enqueue_password_visibility_toggle' );
881
  function wppb_enqueue_password_visibility_toggle() {
882
  global $wppb_shortcode_on_front;
883
+ if( $wppb_shortcode_on_front && apply_filters( 'wppb_show_password_visibility_toggle', false ) ){
884
  ?>
885
  <script type="text/javascript">
886
  jQuery( document ).ready( function() {
887
  jQuery( "button.wppb-toggle-pw" ).on( "click", wppb_password_visibility_toggle );
888
+
889
+ var toggle = jQuery( 'button.wppb-toggle-pw' )
890
+
891
+ if( toggle.length > 0 ){
892
+
893
+ var parent = toggle.parent()
894
+
895
+ if( parent.hasClass( 'wppb-form-field' ) && jQuery( '.wppb-description-delimiter', parent ) ){
896
+
897
+ toggle.css( 'top', parseInt( toggle.css('top') ) - ( jQuery( '.wppb-description-delimiter', parent ).outerHeight() / 2 ) )
898
+
899
+ }
900
+
901
+ }
902
+
903
  });
904
  function wppb_password_visibility_toggle() {
905
  var target_form_id = "#" + jQuery(this).closest('form').attr("id") + " ";
1731
  }
1732
 
1733
  return false;
1734
+ }
front-end/login.php CHANGED
@@ -189,8 +189,6 @@ function wppb_login_form( $args = array() ) {
189
  return $form;
190
  }
191
 
192
-
193
-
194
  // when email login is enabled we need to change the post data for the username
195
  function wppb_change_login_with_email(){
196
  if( !empty( $_POST['log'] ) ){
@@ -319,13 +317,27 @@ function wppb_login_redirect( $redirect_to, $requested_redirect_to, $user ){
319
  $LostPassURL = apply_filters('wppb_pre_login_url_filter', $LostPassURL);
320
 
321
  /* start building the error string */
322
- if( $user->get_error_code() == 'incorrect_password' || $user->get_error_code() == 'invalid_username' )
323
  $error_string = '<strong>' . __('ERROR', 'profile-builder') . '</strong>: ';
324
 
 
 
 
 
 
325
  if ($user->get_error_code() == 'incorrect_password') {
326
  $error_string .= __('The password you entered is incorrect.', 'profile-builder') . ' ';
327
  }
328
 
 
 
 
 
 
 
 
 
 
329
  if ($user->get_error_code() == 'invalid_username') {
330
  if ($wppb_generalSettings['loginWith'] == 'email')// if login with email is enabled change the word username with email
331
  $error_string .= __('Invalid email.', 'profile-builder') . ' ';
@@ -339,6 +351,7 @@ function wppb_login_redirect( $redirect_to, $requested_redirect_to, $user ){
339
  $error_string .= '<a href="' . esc_url( $LostPassURL ) . '" title="' . __('Password Lost and Found.', 'profile-builder') . '">' . __('Lost your password?', 'profile-builder') . '</a>';
340
 
341
  }
 
342
  // if the error string is empty it means that none of the fields were completed
343
  if (empty($error_string) || ( in_array( 'empty_username', $user->get_error_codes() ) && in_array( 'empty_password', $user->get_error_codes() ) ) ) {
344
  $error_string = '<strong>' . __('ERROR', 'profile-builder') . '</strong>: ' . __('Both fields are empty.', 'profile-builder') . ' ';
189
  return $form;
190
  }
191
 
 
 
192
  // when email login is enabled we need to change the post data for the username
193
  function wppb_change_login_with_email(){
194
  if( !empty( $_POST['log'] ) ){
317
  $LostPassURL = apply_filters('wppb_pre_login_url_filter', $LostPassURL);
318
 
319
  /* start building the error string */
320
+ if( in_array( $user->get_error_code(), array( 'empty_username', 'empty_password', 'invalid_username', 'incorrect_password' ) ) )
321
  $error_string = '<strong>' . __('ERROR', 'profile-builder') . '</strong>: ';
322
 
323
+
324
+ if ( $user->get_error_code() == 'empty_password' ) {
325
+ $error_string .= __( 'The password field is empty.', 'profile-builder' ) . ' ';
326
+ }
327
+
328
  if ($user->get_error_code() == 'incorrect_password') {
329
  $error_string .= __('The password you entered is incorrect.', 'profile-builder') . ' ';
330
  }
331
 
332
+ if ( $user->get_error_code() == 'empty_username' ) {
333
+ if ($wppb_generalSettings['loginWith'] == 'email')// if login with email is enabled change the word username with email
334
+ $error_string .= __('The email field is empty.', 'profile-builder') . ' ';
335
+ else if( $wppb_generalSettings['loginWith'] == 'usernameemail' )// if login with username and email is enabled change the word username with username or email
336
+ $error_string .= __('The username/email field is empty', 'profile-builder') . ' ';
337
+ else
338
+ $error_string .= __('The username field is empty', 'profile-builder') . ' ';
339
+ }
340
+
341
  if ($user->get_error_code() == 'invalid_username') {
342
  if ($wppb_generalSettings['loginWith'] == 'email')// if login with email is enabled change the word username with email
343
  $error_string .= __('Invalid email.', 'profile-builder') . ' ';
351
  $error_string .= '<a href="' . esc_url( $LostPassURL ) . '" title="' . __('Password Lost and Found.', 'profile-builder') . '">' . __('Lost your password?', 'profile-builder') . '</a>';
352
 
353
  }
354
+
355
  // if the error string is empty it means that none of the fields were completed
356
  if (empty($error_string) || ( in_array( 'empty_username', $user->get_error_codes() ) && in_array( 'empty_password', $user->get_error_codes() ) ) ) {
357
  $error_string = '<strong>' . __('ERROR', 'profile-builder') . '</strong>: ' . __('Both fields are empty.', 'profile-builder') . ' ';
front-end/recover.php CHANGED
@@ -350,6 +350,12 @@ function wppb_front_end_password_recovery(){
350
 
351
  //get the login name and key and verify if they match the ones in the database
352
  $key = sanitize_text_field( $_POST['key'] );
 
 
 
 
 
 
353
  $user_object = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE user_activation_key = %s", $key ) );
354
  if( empty( $user_object ) || ( !empty( $user_object ) && $user_object->ID === absint( $_POST['userData'] ) ) ){
355
  $password_change_message = __('Invalid key!', 'profile-builder');
@@ -420,12 +426,13 @@ function wppb_front_end_password_recovery(){
420
 
421
 
422
  //this is the part that shows the forms
423
- if( isset( $_GET['key'] ) && !empty( $_GET['key'] ) ){
424
 
425
- if( !$password_changed_success ) {
 
 
426
 
427
  //get the login name and key and verify if they match the ones in the database
428
- $key = sanitize_text_field( $_GET['key'] );
429
  $user = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE user_activation_key = %s", $key ) );
430
 
431
  if( !empty( $user ) ) {
@@ -438,9 +445,14 @@ function wppb_front_end_password_recovery(){
438
  $output .= wppb_password_recovery_error('<b>' . __('ERROR:', 'profile-builder') . '</b>' . __('Invalid key!', 'profile-builder'), 'wppb_recover_password_invalid_key_message');
439
  }
440
 
441
- }
442
- }
443
- else{
 
 
 
 
 
444
  if( !$password_email_sent ) {
445
  ob_start();
446
  wppb_create_generate_password_form($_POST);
350
 
351
  //get the login name and key and verify if they match the ones in the database
352
  $key = sanitize_text_field( $_POST['key'] );
353
+
354
+ if( empty( $key ) ){
355
+ $password_change_message = __('The key cannot be empty!', 'profile-builder');
356
+ $output .= wppb_password_recovery_error( $password_change_message, 'wppb_recover_password_password_changed_message2' );
357
+ }
358
+
359
  $user_object = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE user_activation_key = %s", $key ) );
360
  if( empty( $user_object ) || ( !empty( $user_object ) && $user_object->ID === absint( $_POST['userData'] ) ) ){
361
  $password_change_message = __('Invalid key!', 'profile-builder');
426
 
427
 
428
  //this is the part that shows the forms
429
+ if( isset( $_GET['key'] ) ){
430
 
431
+ $key = sanitize_text_field( $_GET['key'] );
432
+
433
+ if( !empty( $key ) && !$password_changed_success ) {
434
 
435
  //get the login name and key and verify if they match the ones in the database
 
436
  $user = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE user_activation_key = %s", $key ) );
437
 
438
  if( !empty( $user ) ) {
445
  $output .= wppb_password_recovery_error('<b>' . __('ERROR:', 'profile-builder') . '</b>' . __('Invalid key!', 'profile-builder'), 'wppb_recover_password_invalid_key_message');
446
  }
447
 
448
+ } elseif ( !$password_changed_success && !$password_email_sent ) {
449
+ ob_start();
450
+ wppb_create_generate_password_form($_POST);
451
+ $output .= ob_get_contents();
452
+ ob_end_clean();
453
+ }
454
+
455
+ } else {
456
  if( !$password_email_sent ) {
457
  ob_start();
458
  wppb_create_generate_password_form($_POST);
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 choose what fields should be displayed or add new (custom) ones both in the front-end and in the dashboard.
6
- Version: 3.4.8
7
  Author: Cozmoslabs
8
  Author URI: https://www.cozmoslabs.com/
9
  Text Domain: profile-builder
@@ -70,7 +70,7 @@ function wppb_free_plugin_init() {
70
  *
71
  *
72
  */
73
- define('PROFILE_BUILDER_VERSION', '3.4.8' );
74
  define('WPPB_PLUGIN_DIR', plugin_dir_path(__FILE__));
75
  define('WPPB_PLUGIN_URL', plugin_dir_url(__FILE__));
76
  define('WPPB_PLUGIN_BASENAME', plugin_basename(__FILE__));
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 choose what fields should be displayed or add new (custom) ones both in the front-end and in the dashboard.
6
+ Version: 3.4.9
7
  Author: Cozmoslabs
8
  Author URI: https://www.cozmoslabs.com/
9
  Text Domain: profile-builder
70
  *
71
  *
72
  */
73
+ define('PROFILE_BUILDER_VERSION', '3.4.9' );
74
  define('WPPB_PLUGIN_DIR', plugin_dir_path(__FILE__));
75
  define('WPPB_PLUGIN_URL', plugin_dir_url(__FILE__));
76
  define('WPPB_PLUGIN_BASENAME', plugin_basename(__FILE__));
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://www.cozmoslabs.com/wordpress-profile-builder/
4
  Tags: user registration, user profile, user registration form, user fields, registration, edit profile, user custom fields, front-end login, front-end edit profile, front-end user registration, email confirmation, login form, content restriction, restrict content, profile
5
  Requires at least: 3.1
6
  Tested up to: 5.7
7
- Stable tag: 3.4.8
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -169,6 +169,11 @@ This plugin adds/removes user fields in the front-end. Both default and extra pr
169
  15. Edit or Add New User Role
170
 
171
  == Changelog ==
 
 
 
 
 
172
  = 3.4.8 =
173
  * Feature: Add a visibility toggle to Profile Builder password fields. Similar to WordPress default form functionality
174
  * Fix: Issue with Labels Edit showing the incorrect original string in the back-end
4
  Tags: user registration, user profile, user registration form, user fields, registration, edit profile, user custom fields, front-end login, front-end edit profile, front-end user registration, email confirmation, login form, content restriction, restrict content, profile
5
  Requires at least: 3.1
6
  Tested up to: 5.7
7
+ Stable tag: 3.4.9
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
169
  15. Edit or Add New User Role
170
 
171
  == Changelog ==
172
+ = 3.4.9 =
173
+ Fix: Security issue with Reset Password form. Thanks to Stiofan O'connor
174
+ Fix: Added option in Advanced Settings -> Fields for display password feature. It's disabled by default now. Display and positioning corrected
175
+ Misc: Added Empty Username/Password login messages in our code so they can be changed using the Labels Edit add-on
176
+
177
  = 3.4.8 =
178
  * Feature: Add a visibility toggle to Profile Builder password fields. Similar to WordPress default form functionality
179
  * Fix: Issue with Labels Edit showing the incorrect original string in the back-end
translation/profile-builder.catalog.php CHANGED
@@ -1150,7 +1150,11 @@
1150
  <?php __("Remember Me", "profile-builder"); ?>
1151
  <?php __("Log In", "profile-builder"); ?>
1152
  <?php __("ERROR", "profile-builder"); ?>
 
1153
  <?php __("The password you entered is incorrect.", "profile-builder"); ?>
 
 
 
1154
  <?php __("Invalid username.", "profile-builder"); ?>
1155
  <?php __("Invalid username or email.", "profile-builder"); ?>
1156
  <?php __("Invalid email.", "profile-builder"); ?>
@@ -1175,6 +1179,7 @@
1175
  <?php __("%1$s has requested a password change via the password reset feature.<br/>His/her new password is:%2$s", "profile-builder"); ?>
1176
  <?php __("You are already logged in. You can change your password on the edit profile form.", "profile-builder"); ?>
1177
  <?php __("The password must not be empty!", "profile-builder"); ?>
 
1178
  <?php __("Invalid key!", "profile-builder"); ?>
1179
  <?php __("The entered passwords don't match!", "profile-builder"); ?>
1180
  <?php __("The password must have the minimum length of %s characters", "profile-builder"); ?>
@@ -1706,6 +1711,8 @@
1706
  <?php __("Hide Repeater Fields from the back-end profile page", "profile-builder"); ?>
1707
  <?php __("Repeater Fields from Profile Builder do not work on the back-end user profile page, they are just displayed. If you want to remove them completely, you can use this option.", "profile-builder"); ?>
1708
  <?php __("You will still be able to use them from a front-end edit profile form.", "profile-builder"); ?>
 
 
1709
  <?php __("Remove All Extra Fields from Backend edit profile page.", "profile-builder"); ?>
1710
  <?php __("If you activate this option, it will remove all custom fields from the backend profile page created with Profile Builder.", "profile-builder"); ?>
1711
  <?php __("Update database entries when changing meta key", "profile-builder"); ?>
1150
  <?php __("Remember Me", "profile-builder"); ?>
1151
  <?php __("Log In", "profile-builder"); ?>
1152
  <?php __("ERROR", "profile-builder"); ?>
1153
+ <?php __("The password field is empty.", "profile-builder"); ?>
1154
  <?php __("The password you entered is incorrect.", "profile-builder"); ?>
1155
+ <?php __("The username field is empty", "profile-builder"); ?>
1156
+ <?php __("The username/email field is empty", "profile-builder"); ?>
1157
+ <?php __("The email field is empty.", "profile-builder"); ?>
1158
  <?php __("Invalid username.", "profile-builder"); ?>
1159
  <?php __("Invalid username or email.", "profile-builder"); ?>
1160
  <?php __("Invalid email.", "profile-builder"); ?>
1179
  <?php __("%1$s has requested a password change via the password reset feature.<br/>His/her new password is:%2$s", "profile-builder"); ?>
1180
  <?php __("You are already logged in. You can change your password on the edit profile form.", "profile-builder"); ?>
1181
  <?php __("The password must not be empty!", "profile-builder"); ?>
1182
+ <?php __("The key cannot be empty!", "profile-builder"); ?>
1183
  <?php __("Invalid key!", "profile-builder"); ?>
1184
  <?php __("The entered passwords don't match!", "profile-builder"); ?>
1185
  <?php __("The password must have the minimum length of %s characters", "profile-builder"); ?>
1711
  <?php __("Hide Repeater Fields from the back-end profile page", "profile-builder"); ?>
1712
  <?php __("Repeater Fields from Profile Builder do not work on the back-end user profile page, they are just displayed. If you want to remove them completely, you can use this option.", "profile-builder"); ?>
1713
  <?php __("You will still be able to use them from a front-end edit profile form.", "profile-builder"); ?>
1714
+ <?php __("Show the Password field visibility toggle", "profile-builder"); ?>
1715
+ <?php __("Activating this option will show a visibility toggle button for all Password fields.", "profile-builder"); ?>
1716
  <?php __("Remove All Extra Fields from Backend edit profile page.", "profile-builder"); ?>
1717
  <?php __("If you activate this option, it will remove all custom fields from the backend profile page created with Profile Builder.", "profile-builder"); ?>
1718
  <?php __("Update database entries when changing meta key", "profile-builder"); ?>
translation/profile-builder.pot CHANGED
@@ -53,7 +53,7 @@ msgstr ""
53
  msgid "No"
54
  msgstr ""
55
 
56
- #: ../pb-add-on-bbpress/bbpress-page.php:153, ../pb-add-on-social-connect/index.php:326, admin/general-settings.php:143, admin/general-settings.php:156, admin/general-settings.php:171, admin/general-settings.php:220, admin/general-settings.php:267, admin/manage-fields.php:191, admin/private-website.php:70, admin/private-website.php:137, admin/private-website.php:150, add-ons/multiple-forms/edit-profile-forms.php:206, add-ons/multiple-forms/register-forms.php:229, add-ons/multiple-forms/register-forms.php:230, add-ons/user-listing/userlisting.php:2451, features/content-restriction/content-restriction.php:89, admin/advanced-settings/includes/forms/placeholder-labels.php:135, admin/advanced-settings/includes/views/view-admin.php:18, admin/advanced-settings/includes/views/view-admin.php:34, admin/advanced-settings/includes/views/view-admin.php:50, admin/advanced-settings/includes/views/view-admin.php:69, admin/advanced-settings/includes/views/view-fields.php:18, admin/advanced-settings/includes/views/view-fields.php:66, admin/advanced-settings/includes/views/view-fields.php:181, admin/advanced-settings/includes/views/view-fields.php:197, admin/advanced-settings/includes/views/view-fields.php:217, admin/advanced-settings/includes/views/view-fields.php:240, admin/advanced-settings/includes/views/view-fields.php:261, admin/advanced-settings/includes/views/view-fields.php:279, admin/advanced-settings/includes/views/view-forms.php:19, admin/advanced-settings/includes/views/view-forms.php:148, admin/advanced-settings/includes/views/view-forms.php:165, admin/advanced-settings/includes/views/view-forms.php:180, admin/advanced-settings/includes/views/view-forms.php:200, admin/advanced-settings/includes/views/view-forms.php:217, admin/advanced-settings/includes/views/view-forms.php:255, admin/advanced-settings/includes/views/view-forms.php:276, admin/advanced-settings/includes/views/view-forms.php:296, admin/advanced-settings/includes/views/view-forms.php:318, admin/advanced-settings/includes/views/view-forms.php:340, admin/advanced-settings/includes/views/view-forms.php:360, admin/advanced-settings/includes/views/view-shortcodes.php:16, admin/advanced-settings/includes/views/view-shortcodes.php:32, admin/advanced-settings/includes/views/view-shortcodes.php:48, admin/advanced-settings/includes/views/view-shortcodes.php:64, admin/advanced-settings/includes/views/view-userlisting.php:53, admin/advanced-settings/includes/views/view-userlisting.php:75
57
  msgid "Yes"
58
  msgstr ""
59
 
@@ -377,7 +377,7 @@ msgstr ""
377
  msgid "Edit Profile"
378
  msgstr ""
379
 
380
- #: ../pb-add-on-custom-profile-menus/index.php:311, ../pb-add-on-custom-profile-menus/wppb-custom-profile-menus.php:74, front-end/class-formbuilder.php:454, front-end/login.php:456, assets/misc/elementor/widgets/class-pb-widget-rf.php:32
381
  msgid "Register"
382
  msgstr ""
383
 
@@ -757,7 +757,7 @@ msgstr ""
757
  msgid "You will be redirected in 5 seconds. If not, click %%."
758
  msgstr ""
759
 
760
- #: ../pb-add-on-social-connect/index.php:394, features/functions.php:1322
761
  msgid "here"
762
  msgstr ""
763
 
@@ -1050,7 +1050,7 @@ msgstr ""
1050
  msgid "Edit this item"
1051
  msgstr ""
1052
 
1053
- #: ../pb-add-on-mailchimp-integration/admin/mailchimp-page.php:171, features/functions.php:1011, assets/lib/wck-api/wordpress-creation-kit.php:406
1054
  msgid "Cancel"
1055
  msgstr ""
1056
 
@@ -2046,11 +2046,11 @@ msgstr ""
2046
  msgid "Username and Email"
2047
  msgstr ""
2048
 
2049
- #: admin/general-settings.php:296, admin/manage-fields.php:331, front-end/login.php:260, front-end/login.php:274, front-end/login.php:423, add-ons/custom-redirects/custom_redirects_admin.php:60, add-ons/email-customizer/email-customizer.php:28, add-ons/user-listing/userlisting.php:112, add-ons/user-listing/userlisting.php:328, add-ons/user-listing/userlisting.php:828, add-ons/user-listing/userlisting.php:2405, features/admin-approval/class-admin-approval.php:171, features/email-confirmation/class-email-confirmation.php:168, admin/advanced-settings/includes/views/view-fields.php:121
2050
  msgid "Username"
2051
  msgstr ""
2052
 
2053
- #: admin/general-settings.php:297, front-end/login.php:420, front-end/recover.php:119, add-ons/email-customizer/email-customizer.php:29, add-ons/user-listing/userlisting.php:118, add-ons/user-listing/userlisting.php:834, add-ons/user-listing/userlisting.php:2406, features/admin-approval/class-admin-approval.php:174, features/email-confirmation/class-email-confirmation.php:169, admin/advanced-settings/includes/shortcodes/resend-activation.php:9
2054
  msgid "Email"
2055
  msgstr ""
2056
 
@@ -4198,11 +4198,11 @@ msgstr ""
4198
  msgid "<pre>Title</pre><pre>Type</pre><pre>Meta Name</pre><pre class=\"wppb-mb-head-required\">Required</pre>"
4199
  msgstr ""
4200
 
4201
- #: admin/manage-fields.php:1360, features/functions.php:1025, features/functions.php:1032, add-ons/custom-redirects/custom_redirects_admin.php:183, add-ons/custom-redirects/custom_redirects_admin.php:197, add-ons/custom-redirects/custom_redirects_admin.php:211, add-ons/custom-redirects/custom_redirects_admin.php:225, add-ons/multiple-forms/multiple-forms.php:406, features/admin-approval/class-admin-approval.php:108, features/roles-editor/roles-editor.php:866
4202
  msgid "Edit"
4203
  msgstr ""
4204
 
4205
- #: admin/manage-fields.php:1360, features/functions.php:1018, features/functions.php:1032, add-ons/custom-redirects/custom_redirects_admin.php:183, add-ons/custom-redirects/custom_redirects_admin.php:197, add-ons/custom-redirects/custom_redirects_admin.php:211, add-ons/custom-redirects/custom_redirects_admin.php:225, features/admin-approval/class-admin-approval.php:113, features/email-confirmation/class-email-confirmation.php:121, features/email-confirmation/class-email-confirmation.php:218, features/roles-editor/roles-editor.php:180, features/roles-editor/roles-editor.php:904, features/roles-editor/roles-editor.php:893, features/roles-editor/roles-editor.php:884, front-end/default-fields/gdpr-delete/gdpr-delete.php:20
4206
  msgid "Delete"
4207
  msgstr ""
4208
 
@@ -4398,7 +4398,7 @@ msgstr ""
4398
  msgid "Disable the WordPress REST-API for non-logged in users when Private Website is enabled"
4399
  msgstr ""
4400
 
4401
- #: admin/private-website.php:162, features/functions.php:1004, features/content-restriction/content-restriction.php:162, assets/lib/class-mustache-templates/class-mustache-templates.php:392, assets/lib/wck-api/wordpress-creation-kit.php:405, admin/advanced-settings/includes/views/view-admin.php:101, admin/advanced-settings/includes/views/view-fields.php:293, admin/advanced-settings/includes/views/view-forms.php:376, admin/advanced-settings/includes/views/view-shortcodes.php:77, admin/advanced-settings/includes/views/view-userlisting.php:91
4402
  msgid "Save Changes"
4403
  msgstr ""
4404
 
@@ -4522,43 +4522,43 @@ msgstr ""
4522
  msgid "Minimum length of %d characters."
4523
  msgstr ""
4524
 
4525
- #: features/functions.php:790, front-end/recover.php:370, front-end/default-fields/password/password.php:59
4526
  msgid "The password must have a minimum strength of %s"
4527
  msgstr ""
4528
 
4529
- #: features/functions.php:923
4530
  msgid "This field is required"
4531
  msgstr ""
4532
 
4533
- #: features/functions.php:961, front-end/default-fields/recaptcha/recaptcha.php:529, front-end/default-fields/recaptcha/recaptcha.php:520, front-end/default-fields/recaptcha/recaptcha.php:585, front-end/default-fields/recaptcha/recaptcha.php:633
4534
  msgid "Please enter a (valid) reCAPTCHA value"
4535
  msgstr ""
4536
 
4537
- #: features/functions.php:968
4538
  msgid "Incorrect phone number"
4539
  msgstr ""
4540
 
4541
- #: features/functions.php:1032, assets/lib/wck-api/wordpress-creation-kit.php:447
4542
  msgid "Content"
4543
  msgstr ""
4544
 
4545
- #: features/functions.php:1220
4546
  msgid "<br><br>Also, you will be able to visit your site at "
4547
  msgstr ""
4548
 
4549
- #: features/functions.php:1233
4550
  msgid "<br><br>You can visit your site at "
4551
  msgstr ""
4552
 
4553
- #: features/functions.php:1323
4554
  msgid "You will soon be redirected automatically. If you see this page for more than %1$d seconds, please click %2$s.%3$s"
4555
  msgstr ""
4556
 
4557
- #: features/functions.php:1477
4558
  msgid "No feed available,please visit our <a href=\"%s\">homepage</a>!"
4559
  msgstr ""
4560
 
4561
- #: features/functions.php:1518
4562
  msgid "You are not currently logged in."
4563
  msgstr ""
4564
 
@@ -4594,7 +4594,7 @@ msgstr ""
4594
  msgid "Only an administrator can add new users."
4595
  msgstr ""
4596
 
4597
- #: front-end/class-formbuilder.php:295, front-end/login.php:514
4598
  msgid "You are not allowed to do this."
4599
  msgstr ""
4600
 
@@ -4658,51 +4658,67 @@ msgstr ""
4658
  msgid "Log In"
4659
  msgstr ""
4660
 
4661
- #: front-end/login.php:323, front-end/login.php:344, front-end/recover.php:18, front-end/recover.php:321, front-end/extra-fields/extra-fields.php:94
4662
  msgid "ERROR"
4663
  msgstr ""
4664
 
4665
- #: front-end/login.php:326
 
 
 
 
4666
  msgid "The password you entered is incorrect."
4667
  msgstr ""
4668
 
4669
- #: front-end/login.php:335
 
 
 
 
 
 
 
 
 
 
 
 
4670
  msgid "Invalid username."
4671
  msgstr ""
4672
 
4673
- #: front-end/login.php:333
4674
  msgid "Invalid username or email."
4675
  msgstr ""
4676
 
4677
- #: front-end/login.php:331
4678
  msgid "Invalid email."
4679
  msgstr ""
4680
 
4681
- #: front-end/login.php:339
4682
  msgid "Password Lost and Found."
4683
  msgstr ""
4684
 
4685
- #: front-end/login.php:339, front-end/login.php:462
4686
  msgid "Lost your password?"
4687
  msgstr ""
4688
 
4689
- #: front-end/login.php:344
4690
  msgid "Both fields are empty."
4691
  msgstr ""
4692
 
4693
- #: front-end/login.php:501, front-end/logout.php:29
4694
  msgid "Log out of this account"
4695
  msgstr ""
4696
 
4697
- #: front-end/login.php:501, front-end/logout.php:16
4698
  msgid "Log out &raquo;"
4699
  msgstr ""
4700
 
4701
- #: front-end/login.php:502
4702
  msgid "You are currently logged in as %1$s. %2$s"
4703
  msgstr ""
4704
 
4705
- #: front-end/login.php:427, front-end/recover.php:123
4706
  msgid "Username or Email"
4707
  msgstr ""
4708
 
@@ -4758,23 +4774,27 @@ msgstr ""
4758
  msgid "You are already logged in. You can change your password on the edit profile form."
4759
  msgstr ""
4760
 
4761
- #: front-end/recover.php:413
4762
  msgid "The password must not be empty!"
4763
  msgstr ""
4764
 
4765
- #: front-end/recover.php:355, front-end/recover.php:438
 
 
 
 
4766
  msgid "Invalid key!"
4767
  msgstr ""
4768
 
4769
- #: front-end/recover.php:360
4770
  msgid "The entered passwords don't match!"
4771
  msgstr ""
4772
 
4773
- #: front-end/recover.php:366, front-end/default-fields/password/password.php:55
4774
  msgid "The password must have the minimum length of %s characters"
4775
  msgstr ""
4776
 
4777
- #: front-end/recover.php:377
4778
  msgid "Your password has been successfully changed!"
4779
  msgstr ""
4780
 
@@ -4802,7 +4822,7 @@ msgstr ""
4802
  msgid "There was an error while trying to send the activation link to %1$s!"
4803
  msgstr ""
4804
 
4805
- #: front-end/recover.php:438
4806
  msgid "ERROR:"
4807
  msgstr ""
4808
 
@@ -6004,11 +6024,11 @@ msgstr ""
6004
  msgid "User successfully deleted!"
6005
  msgstr ""
6006
 
6007
- #: features/admin-approval/admin-approval.php:90, features/admin-approval/admin-approval.php:386
6008
  msgid "User successfully unapproved!"
6009
  msgstr ""
6010
 
6011
- #: features/admin-approval/admin-approval.php:80, features/admin-approval/admin-approval.php:370
6012
  msgid "User successfully approved!"
6013
  msgstr ""
6014
 
@@ -6052,27 +6072,27 @@ msgstr ""
6052
  msgid "Your account has to be confirmed by an administrator before you can use the \"Password Recovery\" feature."
6053
  msgstr ""
6054
 
6055
- #: features/admin-approval/admin-approval.php:241
6056
  msgid "Your account has been successfully created!"
6057
  msgstr ""
6058
 
6059
- #: features/admin-approval/admin-approval.php:325
6060
  msgid "Something went wrong!"
6061
  msgstr ""
6062
 
6063
- #: features/admin-approval/admin-approval.php:321
6064
  msgid "User not approved!"
6065
  msgstr ""
6066
 
6067
- #: features/admin-approval/admin-approval.php:304
6068
  msgid "Do you wish to unapprove the registration?"
6069
  msgstr ""
6070
 
6071
- #: features/admin-approval/admin-approval.php:302
6072
  msgid "Do you wish to approve the registration?"
6073
  msgstr ""
6074
 
6075
- #: features/admin-approval/admin-approval.php:346
6076
  msgid "The approval link is not valid! Please <a href=\"%s\"> log in </a> to approve the user manually. "
6077
  msgstr ""
6078
 
@@ -6942,19 +6962,27 @@ msgstr ""
6942
  msgid "You will still be able to use them from a front-end edit profile form."
6943
  msgstr ""
6944
 
6945
- #: admin/advanced-settings/includes/views/view-fields.php:257
 
 
 
 
 
 
 
 
6946
  msgid "Remove All Extra Fields from Backend edit profile page."
6947
  msgstr ""
6948
 
6949
- #: admin/advanced-settings/includes/views/view-fields.php:266
6950
  msgid "If you activate this option, it will remove all custom fields from the backend profile page created with Profile Builder."
6951
  msgstr ""
6952
 
6953
- #: admin/advanced-settings/includes/views/view-fields.php:275
6954
  msgid "Update database entries when changing meta key"
6955
  msgstr ""
6956
 
6957
- #: admin/advanced-settings/includes/views/view-fields.php:284
6958
  msgid "If you activate this option, when changing the meta key of a field, existing entries from the database will be updated as well."
6959
  msgstr ""
6960
 
53
  msgid "No"
54
  msgstr ""
55
 
56
+ #: ../pb-add-on-bbpress/bbpress-page.php:153, ../pb-add-on-social-connect/index.php:326, admin/general-settings.php:143, admin/general-settings.php:156, admin/general-settings.php:171, admin/general-settings.php:220, admin/general-settings.php:267, admin/manage-fields.php:191, admin/private-website.php:70, admin/private-website.php:137, admin/private-website.php:150, add-ons/multiple-forms/edit-profile-forms.php:206, add-ons/multiple-forms/register-forms.php:229, add-ons/multiple-forms/register-forms.php:230, add-ons/user-listing/userlisting.php:2451, features/content-restriction/content-restriction.php:89, admin/advanced-settings/includes/forms/placeholder-labels.php:135, admin/advanced-settings/includes/views/view-admin.php:18, admin/advanced-settings/includes/views/view-admin.php:34, admin/advanced-settings/includes/views/view-admin.php:50, admin/advanced-settings/includes/views/view-admin.php:69, admin/advanced-settings/includes/views/view-fields.php:18, admin/advanced-settings/includes/views/view-fields.php:66, admin/advanced-settings/includes/views/view-fields.php:181, admin/advanced-settings/includes/views/view-fields.php:197, admin/advanced-settings/includes/views/view-fields.php:217, admin/advanced-settings/includes/views/view-fields.php:240, admin/advanced-settings/includes/views/view-fields.php:260, admin/advanced-settings/includes/views/view-fields.php:277, admin/advanced-settings/includes/views/view-fields.php:295, admin/advanced-settings/includes/views/view-forms.php:19, admin/advanced-settings/includes/views/view-forms.php:148, admin/advanced-settings/includes/views/view-forms.php:165, admin/advanced-settings/includes/views/view-forms.php:180, admin/advanced-settings/includes/views/view-forms.php:200, admin/advanced-settings/includes/views/view-forms.php:217, admin/advanced-settings/includes/views/view-forms.php:255, admin/advanced-settings/includes/views/view-forms.php:276, admin/advanced-settings/includes/views/view-forms.php:296, admin/advanced-settings/includes/views/view-forms.php:318, admin/advanced-settings/includes/views/view-forms.php:340, admin/advanced-settings/includes/views/view-forms.php:360, admin/advanced-settings/includes/views/view-shortcodes.php:16, admin/advanced-settings/includes/views/view-shortcodes.php:32, admin/advanced-settings/includes/views/view-shortcodes.php:48, admin/advanced-settings/includes/views/view-shortcodes.php:64, admin/advanced-settings/includes/views/view-userlisting.php:53, admin/advanced-settings/includes/views/view-userlisting.php:75
57
  msgid "Yes"
58
  msgstr ""
59
 
377
  msgid "Edit Profile"
378
  msgstr ""
379
 
380
+ #: ../pb-add-on-custom-profile-menus/index.php:311, ../pb-add-on-custom-profile-menus/wppb-custom-profile-menus.php:74, front-end/class-formbuilder.php:454, front-end/login.php:469, assets/misc/elementor/widgets/class-pb-widget-rf.php:32
381
  msgid "Register"
382
  msgstr ""
383
 
757
  msgid "You will be redirected in 5 seconds. If not, click %%."
758
  msgstr ""
759
 
760
+ #: ../pb-add-on-social-connect/index.php:394, features/functions.php:1335
761
  msgid "here"
762
  msgstr ""
763
 
1050
  msgid "Edit this item"
1051
  msgstr ""
1052
 
1053
+ #: ../pb-add-on-mailchimp-integration/admin/mailchimp-page.php:171, features/functions.php:1024, assets/lib/wck-api/wordpress-creation-kit.php:406
1054
  msgid "Cancel"
1055
  msgstr ""
1056
 
2046
  msgid "Username and Email"
2047
  msgstr ""
2048
 
2049
+ #: admin/general-settings.php:296, admin/manage-fields.php:331, front-end/login.php:258, front-end/login.php:272, front-end/login.php:436, add-ons/custom-redirects/custom_redirects_admin.php:60, add-ons/email-customizer/email-customizer.php:28, add-ons/user-listing/userlisting.php:112, add-ons/user-listing/userlisting.php:328, add-ons/user-listing/userlisting.php:828, add-ons/user-listing/userlisting.php:2405, features/admin-approval/class-admin-approval.php:171, features/email-confirmation/class-email-confirmation.php:168, admin/advanced-settings/includes/views/view-fields.php:121
2050
  msgid "Username"
2051
  msgstr ""
2052
 
2053
+ #: admin/general-settings.php:297, front-end/login.php:433, front-end/recover.php:119, add-ons/email-customizer/email-customizer.php:29, add-ons/user-listing/userlisting.php:118, add-ons/user-listing/userlisting.php:834, add-ons/user-listing/userlisting.php:2406, features/admin-approval/class-admin-approval.php:174, features/email-confirmation/class-email-confirmation.php:169, admin/advanced-settings/includes/shortcodes/resend-activation.php:9
2054
  msgid "Email"
2055
  msgstr ""
2056
 
4198
  msgid "<pre>Title</pre><pre>Type</pre><pre>Meta Name</pre><pre class=\"wppb-mb-head-required\">Required</pre>"
4199
  msgstr ""
4200
 
4201
+ #: admin/manage-fields.php:1360, features/functions.php:1038, features/functions.php:1045, add-ons/custom-redirects/custom_redirects_admin.php:183, add-ons/custom-redirects/custom_redirects_admin.php:197, add-ons/custom-redirects/custom_redirects_admin.php:211, add-ons/custom-redirects/custom_redirects_admin.php:225, add-ons/multiple-forms/multiple-forms.php:406, features/admin-approval/class-admin-approval.php:108, features/roles-editor/roles-editor.php:866
4202
  msgid "Edit"
4203
  msgstr ""
4204
 
4205
+ #: admin/manage-fields.php:1360, features/functions.php:1031, features/functions.php:1045, add-ons/custom-redirects/custom_redirects_admin.php:183, add-ons/custom-redirects/custom_redirects_admin.php:197, add-ons/custom-redirects/custom_redirects_admin.php:211, add-ons/custom-redirects/custom_redirects_admin.php:225, features/admin-approval/class-admin-approval.php:113, features/email-confirmation/class-email-confirmation.php:121, features/email-confirmation/class-email-confirmation.php:218, features/roles-editor/roles-editor.php:180, features/roles-editor/roles-editor.php:904, features/roles-editor/roles-editor.php:893, features/roles-editor/roles-editor.php:884, front-end/default-fields/gdpr-delete/gdpr-delete.php:20
4206
  msgid "Delete"
4207
  msgstr ""
4208
 
4398
  msgid "Disable the WordPress REST-API for non-logged in users when Private Website is enabled"
4399
  msgstr ""
4400
 
4401
+ #: admin/private-website.php:162, features/functions.php:1017, features/content-restriction/content-restriction.php:162, assets/lib/class-mustache-templates/class-mustache-templates.php:392, assets/lib/wck-api/wordpress-creation-kit.php:405, admin/advanced-settings/includes/views/view-admin.php:101, admin/advanced-settings/includes/views/view-fields.php:309, admin/advanced-settings/includes/views/view-forms.php:376, admin/advanced-settings/includes/views/view-shortcodes.php:77, admin/advanced-settings/includes/views/view-userlisting.php:91
4402
  msgid "Save Changes"
4403
  msgstr ""
4404
 
4522
  msgid "Minimum length of %d characters."
4523
  msgstr ""
4524
 
4525
+ #: features/functions.php:790, front-end/recover.php:376, front-end/default-fields/password/password.php:59
4526
  msgid "The password must have a minimum strength of %s"
4527
  msgstr ""
4528
 
4529
+ #: features/functions.php:936
4530
  msgid "This field is required"
4531
  msgstr ""
4532
 
4533
+ #: features/functions.php:974, front-end/default-fields/recaptcha/recaptcha.php:529, front-end/default-fields/recaptcha/recaptcha.php:520, front-end/default-fields/recaptcha/recaptcha.php:585, front-end/default-fields/recaptcha/recaptcha.php:633
4534
  msgid "Please enter a (valid) reCAPTCHA value"
4535
  msgstr ""
4536
 
4537
+ #: features/functions.php:981
4538
  msgid "Incorrect phone number"
4539
  msgstr ""
4540
 
4541
+ #: features/functions.php:1045, assets/lib/wck-api/wordpress-creation-kit.php:447
4542
  msgid "Content"
4543
  msgstr ""
4544
 
4545
+ #: features/functions.php:1233
4546
  msgid "<br><br>Also, you will be able to visit your site at "
4547
  msgstr ""
4548
 
4549
+ #: features/functions.php:1246
4550
  msgid "<br><br>You can visit your site at "
4551
  msgstr ""
4552
 
4553
+ #: features/functions.php:1336
4554
  msgid "You will soon be redirected automatically. If you see this page for more than %1$d seconds, please click %2$s.%3$s"
4555
  msgstr ""
4556
 
4557
+ #: features/functions.php:1490
4558
  msgid "No feed available,please visit our <a href=\"%s\">homepage</a>!"
4559
  msgstr ""
4560
 
4561
+ #: features/functions.php:1531
4562
  msgid "You are not currently logged in."
4563
  msgstr ""
4564
 
4594
  msgid "Only an administrator can add new users."
4595
  msgstr ""
4596
 
4597
+ #: front-end/class-formbuilder.php:295, front-end/login.php:527
4598
  msgid "You are not allowed to do this."
4599
  msgstr ""
4600
 
4658
  msgid "Log In"
4659
  msgstr ""
4660
 
4661
+ #: front-end/login.php:321, front-end/login.php:357, front-end/recover.php:18, front-end/recover.php:321, front-end/extra-fields/extra-fields.php:94
4662
  msgid "ERROR"
4663
  msgstr ""
4664
 
4665
+ #: front-end/login.php:325
4666
+ msgid "The password field is empty."
4667
+ msgstr ""
4668
+
4669
+ #: front-end/login.php:329
4670
  msgid "The password you entered is incorrect."
4671
  msgstr ""
4672
 
4673
+ #: front-end/login.php:338
4674
+ msgid "The username field is empty"
4675
+ msgstr ""
4676
+
4677
+ #: front-end/login.php:336
4678
+ msgid "The username/email field is empty"
4679
+ msgstr ""
4680
+
4681
+ #: front-end/login.php:334
4682
+ msgid "The email field is empty."
4683
+ msgstr ""
4684
+
4685
+ #: front-end/login.php:347
4686
  msgid "Invalid username."
4687
  msgstr ""
4688
 
4689
+ #: front-end/login.php:345
4690
  msgid "Invalid username or email."
4691
  msgstr ""
4692
 
4693
+ #: front-end/login.php:343
4694
  msgid "Invalid email."
4695
  msgstr ""
4696
 
4697
+ #: front-end/login.php:351
4698
  msgid "Password Lost and Found."
4699
  msgstr ""
4700
 
4701
+ #: front-end/login.php:351, front-end/login.php:475
4702
  msgid "Lost your password?"
4703
  msgstr ""
4704
 
4705
+ #: front-end/login.php:357
4706
  msgid "Both fields are empty."
4707
  msgstr ""
4708
 
4709
+ #: front-end/login.php:514, front-end/logout.php:29
4710
  msgid "Log out of this account"
4711
  msgstr ""
4712
 
4713
+ #: front-end/login.php:514, front-end/logout.php:16
4714
  msgid "Log out &raquo;"
4715
  msgstr ""
4716
 
4717
+ #: front-end/login.php:515
4718
  msgid "You are currently logged in as %1$s. %2$s"
4719
  msgstr ""
4720
 
4721
+ #: front-end/login.php:440, front-end/recover.php:123
4722
  msgid "Username or Email"
4723
  msgstr ""
4724
 
4774
  msgid "You are already logged in. You can change your password on the edit profile form."
4775
  msgstr ""
4776
 
4777
+ #: front-end/recover.php:419
4778
  msgid "The password must not be empty!"
4779
  msgstr ""
4780
 
4781
+ #: front-end/recover.php:355
4782
+ msgid "The key cannot be empty!"
4783
+ msgstr ""
4784
+
4785
+ #: front-end/recover.php:361, front-end/recover.php:445
4786
  msgid "Invalid key!"
4787
  msgstr ""
4788
 
4789
+ #: front-end/recover.php:366
4790
  msgid "The entered passwords don't match!"
4791
  msgstr ""
4792
 
4793
+ #: front-end/recover.php:372, front-end/default-fields/password/password.php:55
4794
  msgid "The password must have the minimum length of %s characters"
4795
  msgstr ""
4796
 
4797
+ #: front-end/recover.php:383
4798
  msgid "Your password has been successfully changed!"
4799
  msgstr ""
4800
 
4822
  msgid "There was an error while trying to send the activation link to %1$s!"
4823
  msgstr ""
4824
 
4825
+ #: front-end/recover.php:445
4826
  msgid "ERROR:"
4827
  msgstr ""
4828
 
6024
  msgid "User successfully deleted!"
6025
  msgstr ""
6026
 
6027
+ #: features/admin-approval/admin-approval.php:90, features/admin-approval/admin-approval.php:387
6028
  msgid "User successfully unapproved!"
6029
  msgstr ""
6030
 
6031
+ #: features/admin-approval/admin-approval.php:80, features/admin-approval/admin-approval.php:371
6032
  msgid "User successfully approved!"
6033
  msgstr ""
6034
 
6072
  msgid "Your account has to be confirmed by an administrator before you can use the \"Password Recovery\" feature."
6073
  msgstr ""
6074
 
6075
+ #: features/admin-approval/admin-approval.php:242
6076
  msgid "Your account has been successfully created!"
6077
  msgstr ""
6078
 
6079
+ #: features/admin-approval/admin-approval.php:326
6080
  msgid "Something went wrong!"
6081
  msgstr ""
6082
 
6083
+ #: features/admin-approval/admin-approval.php:322
6084
  msgid "User not approved!"
6085
  msgstr ""
6086
 
6087
+ #: features/admin-approval/admin-approval.php:305
6088
  msgid "Do you wish to unapprove the registration?"
6089
  msgstr ""
6090
 
6091
+ #: features/admin-approval/admin-approval.php:303
6092
  msgid "Do you wish to approve the registration?"
6093
  msgstr ""
6094
 
6095
+ #: features/admin-approval/admin-approval.php:347
6096
  msgid "The approval link is not valid! Please <a href=\"%s\"> log in </a> to approve the user manually. "
6097
  msgstr ""
6098
 
6962
  msgid "You will still be able to use them from a front-end edit profile form."
6963
  msgstr ""
6964
 
6965
+ #: admin/advanced-settings/includes/views/view-fields.php:256
6966
+ msgid "Show the Password field visibility toggle"
6967
+ msgstr ""
6968
+
6969
+ #: admin/advanced-settings/includes/views/view-fields.php:265
6970
+ msgid "Activating this option will show a visibility toggle button for all Password fields."
6971
+ msgstr ""
6972
+
6973
+ #: admin/advanced-settings/includes/views/view-fields.php:273
6974
  msgid "Remove All Extra Fields from Backend edit profile page."
6975
  msgstr ""
6976
 
6977
+ #: admin/advanced-settings/includes/views/view-fields.php:282
6978
  msgid "If you activate this option, it will remove all custom fields from the backend profile page created with Profile Builder."
6979
  msgstr ""
6980
 
6981
+ #: admin/advanced-settings/includes/views/view-fields.php:291
6982
  msgid "Update database entries when changing meta key"
6983
  msgstr ""
6984
 
6985
+ #: admin/advanced-settings/includes/views/view-fields.php:300
6986
  msgid "If you activate this option, when changing the meta key of a field, existing entries from the database will be updated as well."
6987
  msgstr ""
6988