Ultimate Member – User Profile & Membership Plugin - Version 2.5.2

Version Description

Download this release

Release Info

Developer nsinelnikov
Plugin Icon 128x128 Ultimate Member – User Profile & Membership Plugin
Version 2.5.2
Comparing to
See all releases

Code changes from version 2.5.1 to 2.5.2

includes/admin/core/class-admin-builder.php CHANGED
@@ -1220,7 +1220,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
1220
  $arr_options['function_exists'] = function_exists( $um_callback_func );
1221
  }
1222
 
1223
- if ( in_array( $um_callback_func, UM()->fields()->dropdown_options_source_blacklist(), true ) ) {
1224
  wp_send_json_error( __( 'This is not possible for security reasons. Don\'t use internal PHP functions.', 'ultimate-member' ) );
1225
  }
1226
 
1220
  $arr_options['function_exists'] = function_exists( $um_callback_func );
1221
  }
1222
 
1223
+ if ( UM()->fields()->is_source_blacklisted( $um_callback_func ) ) {
1224
  wp_send_json_error( __( 'This is not possible for security reasons. Don\'t use internal PHP functions.', 'ultimate-member' ) );
1225
  }
1226
 
includes/admin/core/class-admin-settings.php CHANGED
@@ -759,6 +759,9 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
759
  'reset_password_limit_number' => array(
760
  'sanitize' => 'absint',
761
  ),
 
 
 
762
  'blocked_emails' => array(
763
  'sanitize' => 'textarea',
764
  ),
@@ -1285,6 +1288,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
1285
  'conditional' => array( 'enable_reset_password_limit', '=', 1 ),
1286
  'size' => 'small',
1287
  ),
 
 
 
 
 
 
1288
  array(
1289
  'id' => 'blocked_emails',
1290
  'type' => 'textarea',
@@ -3448,7 +3457,6 @@ Use Only Cookies: <?php echo ini_get( 'session.use_only_cookies' ) ?
3448
  * @return array
3449
  */
3450
  function save_email_templates( $settings ) {
3451
-
3452
  if ( empty( $settings['um_email_template'] ) ) {
3453
  return $settings;
3454
  }
@@ -3457,16 +3465,17 @@ Use Only Cookies: <?php echo ini_get( 'session.use_only_cookies' ) ?
3457
  $content = wp_kses_post( stripslashes( $settings[ $template ] ) );
3458
 
3459
  $theme_template_path = UM()->mail()->get_template_file( 'theme', $template );
3460
-
3461
  if ( ! file_exists( $theme_template_path ) ) {
3462
  UM()->mail()->copy_email_template( $template );
3463
  }
3464
 
3465
- $fp = fopen( $theme_template_path, "w" );
3466
- $result = fputs( $fp, $content );
3467
- fclose( $fp );
 
 
3468
 
3469
- if ( $result !== false ) {
3470
  unset( $settings['um_email_template'] );
3471
  unset( $settings[ $template ] );
3472
  }
759
  'reset_password_limit_number' => array(
760
  'sanitize' => 'absint',
761
  ),
762
+ 'change_password_request_limit' => array(
763
+ 'sanitize' => 'bool',
764
+ ),
765
  'blocked_emails' => array(
766
  'sanitize' => 'textarea',
767
  ),
1288
  'conditional' => array( 'enable_reset_password_limit', '=', 1 ),
1289
  'size' => 'small',
1290
  ),
1291
+ array(
1292
+ 'id' => 'change_password_request_limit',
1293
+ 'type' => 'checkbox',
1294
+ 'label' => __( 'Change Password request limit', 'ultimate-member' ),
1295
+ 'tooltip' => __( 'This option adds rate limit when submitting the change password form in the Account page. Users are only allowed to submit 1 request per 30 minutes to prevent from any brute-force attacks or password guessing with the form.', 'ultimate-member' ),
1296
+ ),
1297
  array(
1298
  'id' => 'blocked_emails',
1299
  'type' => 'textarea',
3457
  * @return array
3458
  */
3459
  function save_email_templates( $settings ) {
 
3460
  if ( empty( $settings['um_email_template'] ) ) {
3461
  return $settings;
3462
  }
3465
  $content = wp_kses_post( stripslashes( $settings[ $template ] ) );
3466
 
3467
  $theme_template_path = UM()->mail()->get_template_file( 'theme', $template );
 
3468
  if ( ! file_exists( $theme_template_path ) ) {
3469
  UM()->mail()->copy_email_template( $template );
3470
  }
3471
 
3472
+ if ( file_exists( $theme_template_path ) ) {
3473
+ $fp = fopen( $theme_template_path, "w" );
3474
+ $result = fputs( $fp, $content );
3475
+ fclose( $fp );
3476
+ }
3477
 
3478
+ if ( isset( $result ) && $result !== false ) {
3479
  unset( $settings['um_email_template'] );
3480
  unset( $settings[ $template ] );
3481
  }
includes/admin/core/class-admin-upgrade.php CHANGED
@@ -67,7 +67,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
67
  if ( ! empty( $this->necessary_packages ) ) {
68
  add_action( 'admin_menu', array( $this, 'admin_menu' ), 0 );
69
 
70
- if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
71
  $this->init_packages_ajax();
72
 
73
  add_action( 'wp_ajax_um_run_package', array( $this, 'ajax_run_package' ) );
67
  if ( ! empty( $this->necessary_packages ) ) {
68
  add_action( 'admin_menu', array( $this, 'admin_menu' ), 0 );
69
 
70
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX && current_user_can( 'manage_options' ) ) {
71
  $this->init_packages_ajax();
72
 
73
  add_action( 'wp_ajax_um_run_package', array( $this, 'ajax_run_package' ) );
includes/class-config.php CHANGED
@@ -553,6 +553,7 @@ if ( ! class_exists( 'um\Config' ) ) {
553
  'restricted_block_message' => '',
554
  'enable_reset_password_limit' => 1,
555
  'reset_password_limit_number' => 3,
 
556
  'blocked_emails' => '',
557
  'blocked_words' => 'admin' . "\r\n" . 'administrator' . "\r\n" . 'webmaster' . "\r\n" . 'support' . "\r\n" . 'staff',
558
  'allowed_choice_callbacks' => '',
553
  'restricted_block_message' => '',
554
  'enable_reset_password_limit' => 1,
555
  'reset_password_limit_number' => 3,
556
+ 'change_password_request_limit' => false,
557
  'blocked_emails' => '',
558
  'blocked_words' => 'admin' . "\r\n" . 'administrator' . "\r\n" . 'webmaster' . "\r\n" . 'support' . "\r\n" . 'staff',
559
  'allowed_choice_callbacks' => '',
includes/core/class-fields.php CHANGED
@@ -87,7 +87,12 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
87
 
88
  foreach ( $social as $k => $arr ) {
89
  if ( um_profile( $k ) ) {
90
- $match = is_array( $arr['match'] ) ? $arr['match'][0] : $arr['match']; ?>
 
 
 
 
 
91
 
92
  <a href="<?php echo esc_url( um_filtered_social_link( $k, $match ) ); ?>"
93
  style="background: <?php echo esc_attr( $arr['color'] ); ?>;" target="_blank" class="um-tip-n"
@@ -112,7 +117,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
112
  $output = null;
113
 
114
  foreach ( $fields as $key => $data ) {
115
- $output .= UM()->fields()->edit_field( $key, $data );
116
  }
117
 
118
  echo $output;
@@ -147,7 +152,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
147
 
148
  if ( array_key_exists( 'custom_dropdown_options_source', $args ) ) {
149
  if ( function_exists( wp_unslash( $args['custom_dropdown_options_source'] ) ) ) {
150
- if ( ! in_array( $args['custom_dropdown_options_source'], UM()->fields()->dropdown_options_source_blacklist(), true ) ) {
151
  $allowed_callbacks = UM()->options()->get( 'allowed_choice_callbacks' );
152
  if ( ! empty( $allowed_callbacks ) ) {
153
  $allowed_callbacks = array_map( 'rtrim', explode( "\n", $allowed_callbacks ) );
@@ -204,7 +209,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
204
 
205
  if ( array_key_exists( 'custom_dropdown_options_source', $args ) ) {
206
  if ( function_exists( wp_unslash( $args['custom_dropdown_options_source'] ) ) ) {
207
- if ( ! in_array( $args['custom_dropdown_options_source'], UM()->fields()->dropdown_options_source_blacklist(), true ) ) {
208
  $allowed_callbacks = UM()->options()->get( 'allowed_choice_callbacks' );
209
  if ( ! empty( $allowed_callbacks ) ) {
210
  $allowed_callbacks = array_map( 'rtrim', explode( "\n", $allowed_callbacks ) );
@@ -1309,6 +1314,25 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
1309
  return $blacklist;
1310
  }
1311
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1312
  /**
1313
  * Gets selected option value from a callback function
1314
  *
@@ -1322,7 +1346,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
1322
 
1323
  if ( in_array( $type, array( 'select', 'multiselect' ) ) && ! empty( $data['custom_dropdown_options_source'] ) ) {
1324
 
1325
- if ( in_array( $data['custom_dropdown_options_source'], $this->dropdown_options_source_blacklist(), true ) ) {
1326
  return $value;
1327
  }
1328
 
@@ -1393,7 +1417,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
1393
 
1394
  if ( in_array( $type, array( 'select', 'multiselect' ) ) && ! empty( $data['custom_dropdown_options_source'] ) ) {
1395
 
1396
- if ( in_array( $data['custom_dropdown_options_source'], $this->dropdown_options_source_blacklist(), true ) ) {
1397
  return $arr_options;
1398
  }
1399
 
@@ -3062,7 +3086,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3062
  if ( ! empty( $data['custom_dropdown_options_source'] ) && $has_parent_option && function_exists( $data['custom_dropdown_options_source'] ) &&
3063
  um_user( $data['parent_dropdown_relationship'] )
3064
  ) {
3065
- if ( ! in_array( $data['custom_dropdown_options_source'], $this->dropdown_options_source_blacklist(), true ) ) {
3066
  $options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] );
3067
  }
3068
 
@@ -3082,7 +3106,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3082
  if ( $has_parent_option ) {
3083
  if ( ! empty( $data['custom_dropdown_options_source'] ) && $has_parent_option &&
3084
  function_exists( $data['custom_dropdown_options_source'] ) && isset( UM()->form()->post_form[ $form_key ] ) ) {
3085
- if ( ! in_array( $data['custom_dropdown_options_source'], $this->dropdown_options_source_blacklist(), true ) ) {
3086
  $options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] );
3087
  }
3088
  }
87
 
88
  foreach ( $social as $k => $arr ) {
89
  if ( um_profile( $k ) ) {
90
+ if ( array_key_exists( 'match' , $arr ) ) {
91
+ $match = is_array( $arr['match'] ) ? $arr['match'][0] : $arr['match'];
92
+ } else {
93
+ $match = null;
94
+ }
95
+ ?>
96
 
97
  <a href="<?php echo esc_url( um_filtered_social_link( $k, $match ) ); ?>"
98
  style="background: <?php echo esc_attr( $arr['color'] ); ?>;" target="_blank" class="um-tip-n"
117
  $output = null;
118
 
119
  foreach ( $fields as $key => $data ) {
120
+ $output .= $this->edit_field( $key, $data );
121
  }
122
 
123
  echo $output;
152
 
153
  if ( array_key_exists( 'custom_dropdown_options_source', $args ) ) {
154
  if ( function_exists( wp_unslash( $args['custom_dropdown_options_source'] ) ) ) {
155
+ if ( ! $this->is_source_blacklisted( $args['custom_dropdown_options_source'] ) ) {
156
  $allowed_callbacks = UM()->options()->get( 'allowed_choice_callbacks' );
157
  if ( ! empty( $allowed_callbacks ) ) {
158
  $allowed_callbacks = array_map( 'rtrim', explode( "\n", $allowed_callbacks ) );
209
 
210
  if ( array_key_exists( 'custom_dropdown_options_source', $args ) ) {
211
  if ( function_exists( wp_unslash( $args['custom_dropdown_options_source'] ) ) ) {
212
+ if ( ! $this->is_source_blacklisted( $args['custom_dropdown_options_source'] ) ) {
213
  $allowed_callbacks = UM()->options()->get( 'allowed_choice_callbacks' );
214
  if ( ! empty( $allowed_callbacks ) ) {
215
  $allowed_callbacks = array_map( 'rtrim', explode( "\n", $allowed_callbacks ) );
1314
  return $blacklist;
1315
  }
1316
 
1317
+ /**
1318
+ * Is the dropdown source callback function blacklisted?
1319
+ *
1320
+ * @param string $source Function name
1321
+ *
1322
+ * @return bool
1323
+ */
1324
+ public function is_source_blacklisted( $source ) {
1325
+ // avoid using different letter case for bypass the blacklist e.g. phpInfo
1326
+ // avoid using root namespace for bypass the blacklist e.g. \phpinfo
1327
+ $source = trim( strtolower( $source ), '\\' );
1328
+
1329
+ if ( in_array( $source, $this->dropdown_options_source_blacklist(), true ) ) {
1330
+ return true;
1331
+ }
1332
+
1333
+ return false;
1334
+ }
1335
+
1336
  /**
1337
  * Gets selected option value from a callback function
1338
  *
1346
 
1347
  if ( in_array( $type, array( 'select', 'multiselect' ) ) && ! empty( $data['custom_dropdown_options_source'] ) ) {
1348
 
1349
+ if ( $this->is_source_blacklisted( $data['custom_dropdown_options_source'] ) ) {
1350
  return $value;
1351
  }
1352
 
1417
 
1418
  if ( in_array( $type, array( 'select', 'multiselect' ) ) && ! empty( $data['custom_dropdown_options_source'] ) ) {
1419
 
1420
+ if ( $this->is_source_blacklisted( $data['custom_dropdown_options_source'] ) ) {
1421
  return $arr_options;
1422
  }
1423
 
3086
  if ( ! empty( $data['custom_dropdown_options_source'] ) && $has_parent_option && function_exists( $data['custom_dropdown_options_source'] ) &&
3087
  um_user( $data['parent_dropdown_relationship'] )
3088
  ) {
3089
+ if ( ! $this->is_source_blacklisted( $data['custom_dropdown_options_source'] ) ) {
3090
  $options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] );
3091
  }
3092
 
3106
  if ( $has_parent_option ) {
3107
  if ( ! empty( $data['custom_dropdown_options_source'] ) && $has_parent_option &&
3108
  function_exists( $data['custom_dropdown_options_source'] ) && isset( UM()->form()->post_form[ $form_key ] ) ) {
3109
+ if ( ! $this->is_source_blacklisted( $data['custom_dropdown_options_source'] ) ) {
3110
  $options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] );
3111
  }
3112
  }
includes/core/class-form.php CHANGED
@@ -148,7 +148,7 @@ if ( ! class_exists( 'um\core\Form' ) ) {
148
  wp_send_json( $arr_options );
149
  }
150
 
151
- if ( in_array( $ajax_source_func, UM()->fields()->dropdown_options_source_blacklist(), true ) ) {
152
  $arr_options['status'] = 'error';
153
  $arr_options['message'] = __( 'This is not possible for security reasons.', 'ultimate-member' );
154
 
@@ -653,7 +653,7 @@ if ( ! class_exists( 'um\core\Form' ) ) {
653
  case 'url':
654
  $f = UM()->builtin()->get_a_field( $k );
655
 
656
- if ( array_key_exists( 'match', $f ) && array_key_exists( 'advanced', $f ) && 'social' === $f['advanced'] ) {
657
  $v = sanitize_text_field( $form[ $k ] );
658
 
659
  // Make a proper social link
148
  wp_send_json( $arr_options );
149
  }
150
 
151
+ if ( UM()->fields()->is_source_blacklisted( $ajax_source_func ) ) {
152
  $arr_options['status'] = 'error';
153
  $arr_options['message'] = __( 'This is not possible for security reasons.', 'ultimate-member' );
154
 
653
  case 'url':
654
  $f = UM()->builtin()->get_a_field( $k );
655
 
656
+ if ( is_array( $f ) && array_key_exists( 'match', $f ) && array_key_exists( 'advanced', $f ) && 'social' === $f['advanced'] ) {
657
  $v = sanitize_text_field( $form[ $k ] );
658
 
659
  // Make a proper social link
includes/core/class-mail.php CHANGED
@@ -552,28 +552,19 @@ if ( ! class_exists( 'um\core\Mail' ) ) {
552
  * @return bool
553
  */
554
  function copy_email_template( $template ) {
555
-
556
  $in_theme = $this->template_in_theme( $template );
557
  if ( $in_theme ) {
558
  return false;
559
  }
560
 
561
- $plugin_template_path = $this->get_template_file( 'plugin', $template );
562
- $theme_template_path = $this->get_template_file( 'theme', $template );
563
-
564
- $temp_path = str_replace( trailingslashit( get_stylesheet_directory() ), '', $theme_template_path );
565
- $temp_path = str_replace( '/', DIRECTORY_SEPARATOR, $temp_path );
566
- $folders = explode( DIRECTORY_SEPARATOR, $temp_path );
567
- $folders = array_splice( $folders, 0, count( $folders ) - 1 );
568
- $cur_folder = '';
569
- $theme_dir = trailingslashit( get_stylesheet_directory() );
570
-
571
- foreach ( $folders as $folder ) {
572
- $prev_dir = $cur_folder;
573
- $cur_folder .= $folder . DIRECTORY_SEPARATOR;
574
- if ( ! is_dir( $theme_dir . $cur_folder ) && wp_is_writable( $theme_dir . $prev_dir ) ) {
575
- mkdir( $theme_dir . $cur_folder, 0777 );
576
- }
577
  }
578
 
579
  if ( file_exists( $plugin_template_path ) && copy( $plugin_template_path, $theme_template_path ) ) {
@@ -621,4 +612,4 @@ if ( ! class_exists( 'um\core\Mail' ) ) {
621
  return $replace_placeholders;
622
  }
623
  }
624
- }
552
  * @return bool
553
  */
554
  function copy_email_template( $template ) {
 
555
  $in_theme = $this->template_in_theme( $template );
556
  if ( $in_theme ) {
557
  return false;
558
  }
559
 
560
+ $plugin_template_path = wp_normalize_path( $this->get_template_file( 'plugin', $template ) );
561
+ $theme_template_path = wp_normalize_path( $this->get_template_file( 'theme', $template ) );
562
+ $template_filename = $this->get_template_filename( $template ) . '.php';
563
+
564
+ $template_dir = wp_normalize_path( str_replace( $template_filename, '', $theme_template_path ) );
565
+ $result = wp_mkdir_p( $template_dir );
566
+ if ( ! $result ) {
567
+ return false;
 
 
 
 
 
 
 
 
568
  }
569
 
570
  if ( file_exists( $plugin_template_path ) && copy( $plugin_template_path, $theme_template_path ) ) {
612
  return $replace_placeholders;
613
  }
614
  }
615
+ }
includes/core/class-password.php CHANGED
@@ -526,6 +526,18 @@ if ( ! class_exists( 'um\core\Password' ) ) {
526
  }
527
  }
528
 
 
 
 
 
 
 
 
 
 
 
 
 
529
  if ( isset( $args['user_password'] ) && empty( $args['user_password'] ) ) {
530
  UM()->form()->add_error( 'user_password', __( 'You must enter a new password', 'ultimate-member' ) );
531
  }
@@ -544,10 +556,24 @@ if ( ! class_exists( 'um\core\Password' ) ) {
544
  }
545
 
546
  if ( UM()->options()->get( 'require_strongpass' ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
547
  $min_length = UM()->options()->get( 'password_min_chars' );
548
  $min_length = ! empty( $min_length ) ? $min_length : 8;
549
  $max_length = UM()->options()->get( 'password_max_chars' );
550
  $max_length = ! empty( $max_length ) ? $max_length : 30;
 
 
551
 
552
  if ( mb_strlen( wp_unslash( $args['user_password'] ) ) < $min_length ) {
553
  UM()->form()->add_error( 'user_password', sprintf( __( 'Your password must contain at least %d characters', 'ultimate-member' ), $min_length ) );
@@ -557,6 +583,14 @@ if ( ! class_exists( 'um\core\Password' ) ) {
557
  UM()->form()->add_error( 'user_password', sprintf( __( 'Your password must contain less than %d characters', 'ultimate-member' ), $max_length ) );
558
  }
559
 
 
 
 
 
 
 
 
 
560
  if ( ! UM()->validation()->strong_pass( $args['user_password'] ) ) {
561
  UM()->form()->add_error( 'user_password', __( 'Your password must contain at least one lowercase letter, one capital letter and one number', 'ultimate-member' ) );
562
  }
526
  }
527
  }
528
 
529
+ if ( ! empty( $args['user_password'] ) && UM()->options()->get( 'change_password_request_limit' ) && is_user_logged_in() ) {
530
+ $transient_id = '_um_change_password_rate_limit__' . um_user( 'ID' );
531
+ $last_request = get_transient( $transient_id );
532
+ $request_limit_time = apply_filters( 'um_change_password_attempt_limit_interval', 30 * MINUTE_IN_SECONDS );
533
+ if ( ! $last_request ) {
534
+ set_transient( $transient_id, time(), $request_limit_time );
535
+ } else {
536
+ UM()->form()->add_error( 'user_password', __( 'Unable to change password because of password change limit. Please try again later.', 'ultimate-member' ) );
537
+ return;
538
+ }
539
+ }
540
+
541
  if ( isset( $args['user_password'] ) && empty( $args['user_password'] ) ) {
542
  UM()->form()->add_error( 'user_password', __( 'You must enter a new password', 'ultimate-member' ) );
543
  }
556
  }
557
 
558
  if ( UM()->options()->get( 'require_strongpass' ) ) {
559
+ wp_fix_server_vars();
560
+
561
+ $rp_cookie = 'wp-resetpass-' . COOKIEHASH;
562
+ if ( ! is_user_logged_in() && isset( $_COOKIE[ $rp_cookie ] ) && 0 < strpos( $_COOKIE[ $rp_cookie ], ':' ) ) {
563
+ list( $rp_login, $rp_key ) = explode( ':', wp_unslash( $_COOKIE[ $rp_cookie ] ), 2 );
564
+
565
+ $user = check_password_reset_key( $rp_key, $rp_login );
566
+ um_fetch_user( $user->ID );
567
+ } elseif ( is_user_logged_in() ) {
568
+ um_fetch_user( get_current_user_id() );
569
+ }
570
+
571
  $min_length = UM()->options()->get( 'password_min_chars' );
572
  $min_length = ! empty( $min_length ) ? $min_length : 8;
573
  $max_length = UM()->options()->get( 'password_max_chars' );
574
  $max_length = ! empty( $max_length ) ? $max_length : 30;
575
+ $user_login = um_user( 'user_login' );
576
+ $user_email = um_user( 'user_email' );
577
 
578
  if ( mb_strlen( wp_unslash( $args['user_password'] ) ) < $min_length ) {
579
  UM()->form()->add_error( 'user_password', sprintf( __( 'Your password must contain at least %d characters', 'ultimate-member' ), $min_length ) );
583
  UM()->form()->add_error( 'user_password', sprintf( __( 'Your password must contain less than %d characters', 'ultimate-member' ), $max_length ) );
584
  }
585
 
586
+ if ( strpos( strtolower( $user_login ), strtolower( $args['user_password'] ) ) > -1 ) {
587
+ UM()->form()->add_error( 'user_password', __( 'Your password cannot contain the part of your username', 'ultimate-member' ) );
588
+ }
589
+
590
+ if ( strpos( strtolower( $user_email ), strtolower( $args['user_password'] ) ) > -1 ) {
591
+ UM()->form()->add_error( 'user_password', __( 'Your password cannot contain the part of your email address', 'ultimate-member' ) );
592
+ }
593
+
594
  if ( ! UM()->validation()->strong_pass( $args['user_password'] ) ) {
595
  UM()->form()->add_error( 'user_password', __( 'Your password must contain at least one lowercase letter, one capital letter and one number', 'ultimate-member' ) );
596
  }
includes/core/class-user.php CHANGED
@@ -33,7 +33,6 @@ if ( ! class_exists( 'um\core\User' ) ) {
33
  $this->data = null;
34
  $this->profile = null;
35
  $this->cannot_edit = null;
36
- $this->password_reset_key = null;
37
  $this->deleted_user_id = null;
38
 
39
  global $wpdb;
@@ -1527,11 +1526,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
1527
  * @return string|\WP_Error
1528
  */
1529
  function maybe_generate_password_reset_key( $userdata ) {
1530
- if ( empty( $this->password_reset_key ) ) {
1531
- $this->password_reset_key = get_password_reset_key( $userdata );
1532
- }
1533
-
1534
- return $this->password_reset_key ;
1535
  }
1536
 
1537
 
@@ -1546,7 +1541,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
1546
  add_filter( 'um_template_tags_patterns_hook', array( UM()->password(), 'add_placeholder' ), 10, 1 );
1547
  add_filter( 'um_template_tags_replaces_hook', array( UM()->password(), 'add_replace_placeholder' ), 10, 1 );
1548
 
1549
- UM()->mail()->send( um_user( 'user_email' ), 'resetpw_email' );
1550
  }
1551
 
1552
 
33
  $this->data = null;
34
  $this->profile = null;
35
  $this->cannot_edit = null;
 
36
  $this->deleted_user_id = null;
37
 
38
  global $wpdb;
1526
  * @return string|\WP_Error
1527
  */
1528
  function maybe_generate_password_reset_key( $userdata ) {
1529
+ return get_password_reset_key( $userdata );
 
 
 
 
1530
  }
1531
 
1532
 
1541
  add_filter( 'um_template_tags_patterns_hook', array( UM()->password(), 'add_placeholder' ), 10, 1 );
1542
  add_filter( 'um_template_tags_replaces_hook', array( UM()->password(), 'add_replace_placeholder' ), 10, 1 );
1543
 
1544
+ UM()->mail()->send( $userdata->user_email, 'resetpw_email' );
1545
  }
1546
 
1547
 
includes/core/class-validation.php CHANGED
@@ -95,7 +95,7 @@ if ( ! class_exists( 'um\core\Validation' ) ) {
95
  isset( $fields[ $key ]['custom_dropdown_options_source'] ) &&
96
  ! empty( $fields[ $key ]['custom_dropdown_options_source'] ) &&
97
  function_exists( $fields[ $key ]['custom_dropdown_options_source'] ) ) {
98
- if ( ! in_array( $fields[ $key ]['custom_dropdown_options_source'], UM()->fields()->dropdown_options_source_blacklist(), true ) ) {
99
  $arr_options = call_user_func( $fields[ $key ]['custom_dropdown_options_source'] );
100
  $fields[ $key ]['options'] = array_keys( $arr_options );
101
  }
95
  isset( $fields[ $key ]['custom_dropdown_options_source'] ) &&
96
  ! empty( $fields[ $key ]['custom_dropdown_options_source'] ) &&
97
  function_exists( $fields[ $key ]['custom_dropdown_options_source'] ) ) {
98
+ if ( ! UM()->fields()->is_source_blacklisted( $fields[ $key ]['custom_dropdown_options_source'] ) ) {
99
  $arr_options = call_user_func( $fields[ $key ]['custom_dropdown_options_source'] );
100
  $fields[ $key ]['options'] = array_keys( $arr_options );
101
  }
includes/core/um-actions-account.php CHANGED
@@ -93,6 +93,13 @@ function um_submit_account_errors_hook( $args ) {
93
  $max_length = UM()->options()->get( 'password_max_chars' );
94
  $max_length = ! empty( $max_length ) ? $max_length : 30;
95
 
 
 
 
 
 
 
 
96
  if ( mb_strlen( wp_unslash( $args['user_password'] ) ) < $min_length ) {
97
  UM()->form()->add_error( 'user_password', sprintf( __( 'Your password must contain at least %d characters', 'ultimate-member' ), $min_length ) );
98
  }
@@ -101,6 +108,14 @@ function um_submit_account_errors_hook( $args ) {
101
  UM()->form()->add_error( 'user_password', sprintf( __( 'Your password must contain less than %d characters', 'ultimate-member' ), $max_length ) );
102
  }
103
 
 
 
 
 
 
 
 
 
104
  if ( ! UM()->validation()->strong_pass( $args['user_password'] ) ) {
105
  UM()->form()->add_error( 'user_password', __( 'Your password must contain at least one lowercase letter, one capital letter and one number', 'ultimate-member' ) );
106
  }
93
  $max_length = UM()->options()->get( 'password_max_chars' );
94
  $max_length = ! empty( $max_length ) ? $max_length : 30;
95
 
96
+ if ( is_user_logged_in() ) {
97
+ um_fetch_user( get_current_user_id() );
98
+ }
99
+
100
+ $user_login = um_user( 'user_login' );
101
+ $user_email = um_user( 'user_email' );
102
+
103
  if ( mb_strlen( wp_unslash( $args['user_password'] ) ) < $min_length ) {
104
  UM()->form()->add_error( 'user_password', sprintf( __( 'Your password must contain at least %d characters', 'ultimate-member' ), $min_length ) );
105
  }
108
  UM()->form()->add_error( 'user_password', sprintf( __( 'Your password must contain less than %d characters', 'ultimate-member' ), $max_length ) );
109
  }
110
 
111
+ if ( strpos( strtolower( $user_login ), strtolower( $args['user_password'] ) ) > -1 ) {
112
+ UM()->form()->add_error( 'user_password', __( 'Your password cannot contain the part of your username', 'ultimate-member' ) );
113
+ }
114
+
115
+ if ( strpos( strtolower( $user_email ), strtolower( $args['user_password'] ) ) > -1 ) {
116
+ UM()->form()->add_error( 'user_password', __( 'Your password cannot contain the part of your email address', 'ultimate-member' ) );
117
+ }
118
+
119
  if ( ! UM()->validation()->strong_pass( $args['user_password'] ) ) {
120
  UM()->form()->add_error( 'user_password', __( 'Your password must contain at least one lowercase letter, one capital letter and one number', 'ultimate-member' ) );
121
  }
includes/core/um-actions-form.php CHANGED
@@ -621,6 +621,14 @@ function um_submit_form_errors_hook_( $args ) {
621
  }
622
 
623
  if ( isset( $array['force_good_pass'] ) && $array['force_good_pass'] == 1 ) {
 
 
 
 
 
 
 
 
624
  if ( ! UM()->validation()->strong_pass( $args[ $key ] ) ) {
625
  UM()->form()->add_error( $key, __( 'Your password must contain at least one lowercase letter, one capital letter and one number', 'ultimate-member' ) );
626
  }
621
  }
622
 
623
  if ( isset( $array['force_good_pass'] ) && $array['force_good_pass'] == 1 ) {
624
+ if ( isset( $args['user_login'] ) && strpos( strtolower( $args['user_login'] ), strtolower( $args['user_password'] ) ) > -1 ) {
625
+ UM()->form()->add_error( 'user_password', __( 'Your password cannot contain the part of your username', 'ultimate-member' ));
626
+ }
627
+
628
+ if ( isset( $args['user_email'] ) && strpos( strtolower( $args['user_email'] ), strtolower( $args['user_password'] ) ) > -1 ) {
629
+ UM()->form()->add_error( 'user_password', __( 'Your password cannot contain the part of your email address', 'ultimate-member' ));
630
+ }
631
+
632
  if ( ! UM()->validation()->strong_pass( $args[ $key ] ) ) {
633
  UM()->form()->add_error( $key, __( 'Your password must contain at least one lowercase letter, one capital letter and one number', 'ultimate-member' ) );
634
  }
includes/core/um-actions-login.php CHANGED
@@ -1,481 +1,492 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
-
3
-
4
- /**
5
- * Error procesing hook for login
6
- *
7
- * @param $args
8
- */
9
- function um_submit_form_errors_hook_login( $args ) {
10
- $is_email = false;
11
-
12
- $form_id = $args['form_id'];
13
- $mode = $args['mode'];
14
- $user_password = $args['user_password'];
15
-
16
-
17
- if ( isset( $args['username'] ) && $args['username'] == '' ) {
18
- UM()->form()->add_error( 'username', __( 'Please enter your username or email', 'ultimate-member' ) );
19
- }
20
-
21
- if ( isset( $args['user_login'] ) && $args['user_login'] == '' ) {
22
- UM()->form()->add_error( 'user_login', __( 'Please enter your username', 'ultimate-member' ) );
23
- }
24
-
25
- if ( isset( $args['user_email'] ) && $args['user_email'] == '' ) {
26
- UM()->form()->add_error( 'user_email', __( 'Please enter your email', 'ultimate-member' ) );
27
- }
28
-
29
- if ( isset( $args['username'] ) ) {
30
- $authenticate = $args['username'];
31
- $field = 'username';
32
- if ( is_email( $args['username'] ) ) {
33
- $is_email = true;
34
- $data = get_user_by('email', $args['username'] );
35
- $user_name = isset( $data->user_login ) ? $data->user_login : null;
36
- } else {
37
- $user_name = $args['username'];
38
- }
39
- } elseif ( isset( $args['user_email'] ) ) {
40
- $authenticate = $args['user_email'];
41
- $field = 'user_email';
42
- $is_email = true;
43
- $data = get_user_by('email', $args['user_email'] );
44
- $user_name = isset( $data->user_login ) ? $data->user_login : null;
45
- } else {
46
- $field = 'user_login';
47
- $user_name = $args['user_login'];
48
- $authenticate = $args['user_login'];
49
- }
50
-
51
- if ( $args['user_password'] == '' ) {
52
- UM()->form()->add_error( 'user_password', __( 'Please enter your password', 'ultimate-member' ) );
53
- }
54
-
55
- $user = get_user_by( 'login', $user_name );
56
- if ( $user && wp_check_password( $args['user_password'], $user->data->user_pass, $user->ID ) ) {
57
- UM()->login()->auth_id = username_exists( $user_name );
58
- } else {
59
- UM()->form()->add_error( 'user_password', __( 'Password is incorrect. Please try again.', 'ultimate-member' ) );
60
- }
61
-
62
- // @since 4.18 replacement for 'wp_login_failed' action hook
63
- // see WP function wp_authenticate()
64
- $ignore_codes = array( 'empty_username', 'empty_password' );
65
-
66
- $user = apply_filters( 'authenticate', null, $authenticate, $args['user_password'] );
67
- if ( is_wp_error( $user ) && ! in_array( $user->get_error_code(), $ignore_codes ) ) {
68
- UM()->form()->add_error( $user->get_error_code(), __( 'Password is incorrect. Please try again.', 'ultimate-member' ) );
69
- }
70
-
71
- $user = apply_filters( 'wp_authenticate_user', $user, $args['user_password'] );
72
- if ( is_wp_error( $user ) && ! in_array( $user->get_error_code(), $ignore_codes ) ) {
73
- UM()->form()->add_error( $user->get_error_code(), __( 'Password is incorrect. Please try again.', 'ultimate-member' ) );
74
- }
75
-
76
- // if there is an error notify wp
77
- if ( UM()->form()->has_error( $field ) || UM()->form()->has_error( $user_password ) || UM()->form()->count_errors() > 0 ) {
78
- do_action( 'wp_login_failed', $user_name, UM()->form()->get_wp_error() );
79
- }
80
- }
81
- add_action( 'um_submit_form_errors_hook_login', 'um_submit_form_errors_hook_login', 10 );
82
-
83
-
84
- /**
85
- * Display the login errors from other plugins
86
- *
87
- * @param $args
88
- */
89
- function um_display_login_errors( $args ) {
90
- if ( UM()->form()->count_errors() > 0 ) {
91
- $errors = UM()->form()->errors;
92
- // hook for other plugins to display error
93
- $error_keys = array_keys( $errors );
94
- }
95
-
96
- if ( isset( $args['custom_fields'] ) ) {
97
- $custom_fields = $args['custom_fields'];
98
- }
99
-
100
- if ( ! empty( $error_keys ) && ! empty( $custom_fields ) ) {
101
- foreach ( $error_keys as $error ) {
102
- if ( trim( $error ) && ! isset( $custom_fields[ $error ] ) && ! empty( $errors[ $error ] ) ) {
103
- $error_message = apply_filters( 'login_errors', $errors[ $error ], $error );
104
- if ( empty( $error_message ) ) {
105
- return;
106
- }
107
- echo '<p class="um-notice err um-error-code-' . esc_attr( $error ) . '"><i class="um-icon-ios-close-empty" onclick="jQuery(this).parent().fadeOut();"></i>' . $error_message . '</p>';
108
- }
109
- }
110
- }
111
- }
112
- add_action( 'um_before_login_fields', 'um_display_login_errors' );
113
-
114
-
115
- /**
116
- * Login checks thru the frontend login
117
- *
118
- * @param $args
119
- */
120
- function um_submit_form_errors_hook_logincheck( $args ) {
121
- // Logout if logged in
122
- if ( is_user_logged_in() ) {
123
- wp_logout();
124
- }
125
-
126
- $user_id = ( isset( UM()->login()->auth_id ) ) ? UM()->login()->auth_id : '';
127
- um_fetch_user( $user_id );
128
-
129
- $status = um_user( 'account_status' ); // account status
130
- switch ( $status ) {
131
-
132
- // If user can't login to site...
133
- case 'inactive':
134
- case 'awaiting_admin_review':
135
- case 'awaiting_email_confirmation':
136
- case 'rejected':
137
- um_reset_user();
138
- exit( wp_redirect( add_query_arg( 'err', esc_attr( $status ), UM()->permalinks()->get_current_url() ) ) );
139
- break;
140
-
141
- }
142
-
143
- if ( isset( $args['form_id'] ) && $args['form_id'] == UM()->shortcodes()->core_login_form() && UM()->form()->errors && ! isset( $_POST[ UM()->honeypot ] ) ) {
144
- exit( wp_redirect( um_get_core_page( 'login' ) ) );
145
- }
146
-
147
- }
148
- add_action( 'um_submit_form_errors_hook_logincheck', 'um_submit_form_errors_hook_logincheck', 9999 );
149
-
150
-
151
- /**
152
- * Store last login timestamp
153
- *
154
- * @param $user_id
155
- */
156
- function um_store_lastlogin_timestamp( $user_id ) {
157
- update_user_meta( $user_id, '_um_last_login', current_time( 'timestamp' ) );
158
- }
159
- add_action( 'um_on_login_before_redirect', 'um_store_lastlogin_timestamp', 10, 1 );
160
-
161
-
162
- /**
163
- * @param $login
164
- */
165
- function um_store_lastlogin_timestamp_( $login ) {
166
- $user = get_user_by( 'login', $login );
167
-
168
- if ( false !== $user ) {
169
- um_store_lastlogin_timestamp( $user->ID );
170
-
171
- $attempts = (int) get_user_meta( $user->ID, 'password_rst_attempts', true );
172
- if ( $attempts ) {
173
- //don't create meta but update if it's exists only
174
- update_user_meta( $user->ID, 'password_rst_attempts', 0 );
175
- }
176
- }
177
- }
178
- add_action( 'wp_login', 'um_store_lastlogin_timestamp_' );
179
-
180
-
181
- /**
182
- * Login user process
183
- *
184
- * @param array $args
185
- */
186
- function um_user_login( $args ) {
187
- extract( $args );
188
-
189
- $rememberme = ( isset( $args['rememberme'] ) && 1 == $args['rememberme'] && isset( $_REQUEST['rememberme'] ) ) ? 1 : 0;
190
-
191
- if ( ( UM()->options()->get( 'deny_admin_frontend_login' ) && ! isset( $_GET['provider'] ) ) && strrpos( um_user('wp_roles' ), 'administrator' ) !== false ) {
192
- wp_die( esc_html__( 'This action has been prevented for security measures.', 'ultimate-member' ) );
193
- }
194
-
195
- UM()->user()->auto_login( um_user( 'ID' ), $rememberme );
196
-
197
- /**
198
- * UM hook
199
- *
200
- * @type action
201
- * @title um_on_login_before_redirect
202
- * @description Hook that runs after successful login and before user is redirected
203
- * @input_vars
204
- * [{"var":"$user_id","type":"int","desc":"User ID"}]
205
- * @change_log
206
- * ["Since: 2.0"]
207
- * @usage add_action( 'um_on_login_before_redirect', 'function_name', 10, 1 );
208
- * @example
209
- * <?php
210
- * add_action( 'um_on_login_before_redirect', 'my_on_login_before_redirect', 10, 1 );
211
- * function my_on_login_before_redirect( $user_id ) {
212
- * // your code here
213
- * }
214
- * ?>
215
- */
216
- do_action( 'um_on_login_before_redirect', um_user( 'ID' ) );
217
-
218
- // Priority redirect
219
- if ( ! empty( $args['redirect_to'] ) ) {
220
- exit( wp_safe_redirect( $args['redirect_to'] ) );
221
- }
222
-
223
- // Role redirect
224
- $after_login = um_user( 'after_login' );
225
- if ( empty( $after_login ) ) {
226
- exit( wp_redirect( um_user_profile_url() ) );
227
- }
228
-
229
- switch ( $after_login ) {
230
-
231
- case 'redirect_admin':
232
- exit( wp_redirect( admin_url() ) );
233
- break;
234
-
235
- case 'redirect_url':
236
- /**
237
- * UM hook
238
- *
239
- * @type filter
240
- * @title um_login_redirect_url
241
- * @description Change redirect URL after successful login
242
- * @input_vars
243
- * [{"var":"$url","type":"string","desc":"Redirect URL"},
244
- * {"var":"$id","type":"int","desc":"User ID"}]
245
- * @change_log
246
- * ["Since: 2.0"]
247
- * @usage
248
- * <?php add_filter( 'um_login_redirect_url', 'function_name', 10, 2 ); ?>
249
- * @example
250
- * <?php
251
- * add_filter( 'um_login_redirect_url', 'my_login_redirect_url', 10, 2 );
252
- * function my_login_redirect_url( $url, $id ) {
253
- * // your code here
254
- * return $url;
255
- * }
256
- * ?>
257
- */
258
- $redirect_url = apply_filters( 'um_login_redirect_url', um_user( 'login_redirect_url' ), um_user( 'ID' ) );
259
- exit( wp_redirect( $redirect_url ) );
260
- break;
261
-
262
- case 'refresh':
263
- exit( wp_redirect( UM()->permalinks()->get_current_url() ) );
264
- break;
265
-
266
- case 'redirect_profile':
267
- default:
268
- exit( wp_redirect( um_user_profile_url() ) );
269
- break;
270
-
271
- }
272
- }
273
- add_action( 'um_user_login', 'um_user_login', 10 );
274
-
275
-
276
- /**
277
- * Form processing
278
- *
279
- * @param $args
280
- */
281
- function um_submit_form_login( $args ) {
282
-
283
- if ( ! isset( UM()->form()->errors ) ) {
284
- /**
285
- * UM hook
286
- *
287
- * @type action
288
- * @title um_user_login
289
- * @description Hook that runs after successful submit login form
290
- * @input_vars
291
- * [{"var":"$args","type":"array","desc":"Form data"}]
292
- * @change_log
293
- * ["Since: 2.0"]
294
- * @usage add_action( 'um_user_login', 'function_name', 10, 1 );
295
- * @example
296
- * <?php
297
- * add_action( 'um_user_login', 'my_user_login', 10, 1 );
298
- * function my_user_login( $args ) {
299
- * // your code here
300
- * }
301
- * ?>
302
- */
303
- do_action( 'um_user_login', $args );
304
- }
305
-
306
- /**
307
- * UM hook
308
- *
309
- * @type action
310
- * @title um_user_login_extra_hook
311
- * @description Hook that runs after successful submit login form
312
- * @input_vars
313
- * [{"var":"$args","type":"array","desc":"Form data"}]
314
- * @change_log
315
- * ["Since: 2.0"]
316
- * @usage add_action( 'um_user_login_extra_hook', 'function_name', 10, 1 );
317
- * @example
318
- * <?php
319
- * add_action( 'um_user_login_extra_hook', 'my_user_login_extra', 10, 1 );
320
- * function my_user_login_extra( $args ) {
321
- * // your code here
322
- * }
323
- * ?>
324
- */
325
- do_action( 'um_user_login_extra_hook', $args );
326
- }
327
- add_action( 'um_submit_form_login', 'um_submit_form_login', 10 );
328
-
329
-
330
- /**
331
- * Show the submit button
332
- *
333
- * @param $args
334
- */
335
- function um_add_submit_button_to_login( $args ) {
336
- /**
337
- * UM hook
338
- *
339
- * @type filter
340
- * @title um_login_form_button_one
341
- * @description Change Login Form Primary button
342
- * @input_vars
343
- * [{"var":"$primary_btn_word","type":"string","desc":"Button text"},
344
- * {"var":"$args","type":"array","desc":"Login Form arguments"}]
345
- * @change_log
346
- * ["Since: 2.0"]
347
- * @usage
348
- * <?php add_filter( 'um_login_form_button_one', 'function_name', 10, 2 ); ?>
349
- * @example
350
- * <?php
351
- * add_filter( 'um_login_form_button_one', 'my_login_form_button_one', 10, 2 );
352
- * function my_login_form_button_one( $primary_btn_word, $args ) {
353
- * // your code here
354
- * return $primary_btn_word;
355
- * }
356
- * ?>
357
- */
358
- $primary_btn_word = apply_filters('um_login_form_button_one', $args['primary_btn_word'], $args );
359
-
360
- if ( ! isset( $primary_btn_word ) || $primary_btn_word == '' ){
361
- $primary_btn_word = UM()->options()->get( 'login_primary_btn_word' );
362
- }
363
-
364
- /**
365
- * UM hook
366
- *
367
- * @type filter
368
- * @title um_login_form_button_two
369
- * @description Change Login Form Secondary button
370
- * @input_vars
371
- * [{"var":"$secondary_btn_word","type":"string","desc":"Button text"},
372
- * {"var":"$args","type":"array","desc":"Login Form arguments"}]
373
- * @change_log
374
- * ["Since: 2.0"]
375
- * @usage
376
- * <?php add_filter( 'um_login_form_button_two', 'function_name', 10, 2 ); ?>
377
- * @example
378
- * <?php
379
- * add_filter( 'um_login_form_button_two', 'my_login_form_button_two', 10, 2 );
380
- * function my_login_form_button_two( $secondary_btn_word, $args ) {
381
- * // your code here
382
- * return $secondary_btn_word;
383
- * }
384
- * ?>
385
- */
386
- $secondary_btn_word = apply_filters( 'um_login_form_button_two', $args['secondary_btn_word'], $args );
387
-
388
- if ( ! isset( $secondary_btn_word ) || $secondary_btn_word == '' ){
389
- $secondary_btn_word = UM()->options()->get( 'login_secondary_btn_word' );
390
- }
391
-
392
- $secondary_btn_url = ! empty( $args['secondary_btn_url'] ) ? $args['secondary_btn_url'] : um_get_core_page( 'register' );
393
- /**
394
- * UM hook
395
- *
396
- * @type filter
397
- * @title um_login_form_button_two_url
398
- * @description Change Login Form Secondary button URL
399
- * @input_vars
400
- * [{"var":"$secondary_btn_url","type":"string","desc":"Button URL"},
401
- * {"var":"$args","type":"array","desc":"Login Form arguments"}]
402
- * @change_log
403
- * ["Since: 2.0"]
404
- * @usage
405
- * <?php add_filter( 'um_login_form_button_two_url', 'function_name', 10, 2 ); ?>
406
- * @example
407
- * <?php
408
- * add_filter( 'um_login_form_button_two_url', 'my_login_form_button_two_url', 10, 2 );
409
- * function my_login_form_button_two_url( $secondary_btn_url, $args ) {
410
- * // your code here
411
- * return $secondary_btn_url;
412
- * }
413
- * ?>
414
- */
415
- $secondary_btn_url = apply_filters( 'um_login_form_button_two_url', $secondary_btn_url, $args ); ?>
416
-
417
- <div class="um-col-alt">
418
-
419
- <?php if ( ! empty( $args['show_rememberme'] ) ) {
420
- UM()->fields()->checkbox( 'rememberme', __( 'Keep me signed in', 'ultimate-member' ), false ); ?>
421
- <div class="um-clear"></div>
422
- <?php }
423
-
424
- if ( ! empty( $args['secondary_btn'] ) ) { ?>
425
-
426
- <div class="um-left um-half">
427
- <input type="submit" value="<?php esc_attr_e( wp_unslash( $primary_btn_word ), 'ultimate-member' ); ?>" class="um-button" id="um-submit-btn" />
428
- </div>
429
- <div class="um-right um-half">
430
- <a href="<?php echo esc_url( $secondary_btn_url ); ?>" class="um-button um-alt">
431
- <?php _e( wp_unslash( $secondary_btn_word ), 'ultimate-member' ); ?>
432
- </a>
433
- </div>
434
-
435
- <?php } else { ?>
436
-
437
- <div class="um-center">
438
- <input type="submit" value="<?php esc_attr_e( wp_unslash( $primary_btn_word ), 'ultimate-member' ); ?>" class="um-button" id="um-submit-btn" />
439
- </div>
440
-
441
- <?php } ?>
442
-
443
- <div class="um-clear"></div>
444
-
445
- </div>
446
-
447
- <?php
448
- }
449
- add_action( 'um_after_login_fields', 'um_add_submit_button_to_login', 1000 );
450
-
451
-
452
- /**
453
- * Display a forgot password link
454
- *
455
- * @param $args
456
- */
457
- function um_after_login_submit( $args ) {
458
- if ( empty( $args['forgot_pass_link'] ) ) {
459
- return;
460
- } ?>
461
-
462
- <div class="um-col-alt-b">
463
- <a href="<?php echo esc_url( um_get_core_page( 'password-reset' ) ); ?>" class="um-link-alt">
464
- <?php _e( 'Forgot your password?', 'ultimate-member' ); ?>
465
- </a>
466
- </div>
467
-
468
- <?php
469
- }
470
- add_action( 'um_after_login_fields', 'um_after_login_submit', 1001 );
471
-
472
-
473
- /**
474
- * Show Fields
475
- *
476
- * @param $args
477
- */
478
- function um_add_login_fields( $args ) {
479
- echo UM()->fields()->display( 'login', $args );
480
- }
481
- add_action( 'um_main_login_fields', 'um_add_login_fields', 100 );
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
+
3
+
4
+ /**
5
+ * Error procesing hook for login
6
+ *
7
+ * @param $args
8
+ */
9
+ function um_submit_form_errors_hook_login( $args ) {
10
+ $is_email = false;
11
+
12
+ $form_id = $args['form_id'];
13
+ $mode = $args['mode'];
14
+ $user_password = $args['user_password'];
15
+
16
+
17
+ if ( isset( $args['username'] ) && $args['username'] == '' ) {
18
+ UM()->form()->add_error( 'username', __( 'Please enter your username or email', 'ultimate-member' ) );
19
+ }
20
+
21
+ if ( isset( $args['user_login'] ) && $args['user_login'] == '' ) {
22
+ UM()->form()->add_error( 'user_login', __( 'Please enter your username', 'ultimate-member' ) );
23
+ }
24
+
25
+ if ( isset( $args['user_email'] ) && $args['user_email'] == '' ) {
26
+ UM()->form()->add_error( 'user_email', __( 'Please enter your email', 'ultimate-member' ) );
27
+ }
28
+
29
+ if ( isset( $args['username'] ) ) {
30
+ $authenticate = $args['username'];
31
+ $field = 'username';
32
+ if ( is_email( $args['username'] ) ) {
33
+ $is_email = true;
34
+ $data = get_user_by('email', $args['username'] );
35
+ $user_name = isset( $data->user_login ) ? $data->user_login : null;
36
+ } else {
37
+ $user_name = $args['username'];
38
+ }
39
+ } elseif ( isset( $args['user_email'] ) ) {
40
+ $authenticate = $args['user_email'];
41
+ $field = 'user_email';
42
+ $is_email = true;
43
+ $data = get_user_by('email', $args['user_email'] );
44
+ $user_name = isset( $data->user_login ) ? $data->user_login : null;
45
+ } else {
46
+ $field = 'user_login';
47
+ $user_name = $args['user_login'];
48
+ $authenticate = $args['user_login'];
49
+ }
50
+
51
+ if ( $args['user_password'] == '' ) {
52
+ UM()->form()->add_error( 'user_password', __( 'Please enter your password', 'ultimate-member' ) );
53
+ }
54
+
55
+ $user = get_user_by( 'login', $user_name );
56
+ if ( $user && wp_check_password( $args['user_password'], $user->data->user_pass, $user->ID ) ) {
57
+ UM()->login()->auth_id = username_exists( $user_name );
58
+ } else {
59
+ UM()->form()->add_error( 'user_password', __( 'Password is incorrect. Please try again.', 'ultimate-member' ) );
60
+ }
61
+
62
+ // Integration with 3rd-party login handlers e.g. 3rd-party reCAPTCHA etc.
63
+ $third_party_codes = apply_filters( 'um_custom_authenticate_error_codes', array() );
64
+
65
+ // @since 4.18 replacement for 'wp_login_failed' action hook
66
+ // see WP function wp_authenticate()
67
+ $ignore_codes = array( 'empty_username', 'empty_password' );
68
+
69
+ $user = apply_filters( 'authenticate', null, $authenticate, $args['user_password'] );
70
+ if ( is_wp_error( $user ) && ! in_array( $user->get_error_code(), $ignore_codes ) ) {
71
+ if ( ! empty( $third_party_codes ) && in_array( $user->get_error_code(), $third_party_codes ) ) {
72
+ UM()->form()->add_error( $user->get_error_code(), $user->get_error_message() );
73
+ } else {
74
+ UM()->form()->add_error( $user->get_error_code(), __( 'Password is incorrect. Please try again.', 'ultimate-member' ) );
75
+ }
76
+ }
77
+
78
+ $user = apply_filters( 'wp_authenticate_user', $user, $args['user_password'] );
79
+ if ( is_wp_error( $user ) && ! in_array( $user->get_error_code(), $ignore_codes ) ) {
80
+ if ( ! empty( $third_party_codes ) && in_array( $user->get_error_code(), $third_party_codes ) ) {
81
+ UM()->form()->add_error( $user->get_error_code(), $user->get_error_message() );
82
+ } else {
83
+ UM()->form()->add_error( $user->get_error_code(), __( 'Password is incorrect. Please try again.', 'ultimate-member' ) );
84
+ }
85
+ }
86
+
87
+ // if there is an error notify wp
88
+ if ( UM()->form()->has_error( $field ) || UM()->form()->has_error( $user_password ) || UM()->form()->count_errors() > 0 ) {
89
+ do_action( 'wp_login_failed', $user_name, UM()->form()->get_wp_error() );
90
+ }
91
+ }
92
+ add_action( 'um_submit_form_errors_hook_login', 'um_submit_form_errors_hook_login', 10 );
93
+
94
+
95
+ /**
96
+ * Display the login errors from other plugins
97
+ *
98
+ * @param $args
99
+ */
100
+ function um_display_login_errors( $args ) {
101
+ if ( UM()->form()->count_errors() > 0 ) {
102
+ $errors = UM()->form()->errors;
103
+ // hook for other plugins to display error
104
+ $error_keys = array_keys( $errors );
105
+ }
106
+
107
+ if ( isset( $args['custom_fields'] ) ) {
108
+ $custom_fields = $args['custom_fields'];
109
+ }
110
+
111
+ if ( ! empty( $error_keys ) && ! empty( $custom_fields ) ) {
112
+ foreach ( $error_keys as $error ) {
113
+ if ( trim( $error ) && ! isset( $custom_fields[ $error ] ) && ! empty( $errors[ $error ] ) ) {
114
+ $error_message = apply_filters( 'login_errors', $errors[ $error ], $error );
115
+ if ( empty( $error_message ) ) {
116
+ return;
117
+ }
118
+ echo '<p class="um-notice err um-error-code-' . esc_attr( $error ) . '"><i class="um-icon-ios-close-empty" onclick="jQuery(this).parent().fadeOut();"></i>' . $error_message . '</p>';
119
+ }
120
+ }
121
+ }
122
+ }
123
+ add_action( 'um_before_login_fields', 'um_display_login_errors' );
124
+
125
+
126
+ /**
127
+ * Login checks thru the frontend login
128
+ *
129
+ * @param $args
130
+ */
131
+ function um_submit_form_errors_hook_logincheck( $args ) {
132
+ // Logout if logged in
133
+ if ( is_user_logged_in() ) {
134
+ wp_logout();
135
+ }
136
+
137
+ $user_id = ( isset( UM()->login()->auth_id ) ) ? UM()->login()->auth_id : '';
138
+ um_fetch_user( $user_id );
139
+
140
+ $status = um_user( 'account_status' ); // account status
141
+ switch ( $status ) {
142
+
143
+ // If user can't login to site...
144
+ case 'inactive':
145
+ case 'awaiting_admin_review':
146
+ case 'awaiting_email_confirmation':
147
+ case 'rejected':
148
+ um_reset_user();
149
+ exit( wp_redirect( add_query_arg( 'err', esc_attr( $status ), UM()->permalinks()->get_current_url() ) ) );
150
+ break;
151
+
152
+ }
153
+
154
+ if ( isset( $args['form_id'] ) && $args['form_id'] == UM()->shortcodes()->core_login_form() && UM()->form()->errors && ! isset( $_POST[ UM()->honeypot ] ) ) {
155
+ exit( wp_redirect( um_get_core_page( 'login' ) ) );
156
+ }
157
+
158
+ }
159
+ add_action( 'um_submit_form_errors_hook_logincheck', 'um_submit_form_errors_hook_logincheck', 9999 );
160
+
161
+
162
+ /**
163
+ * Store last login timestamp
164
+ *
165
+ * @param $user_id
166
+ */
167
+ function um_store_lastlogin_timestamp( $user_id ) {
168
+ update_user_meta( $user_id, '_um_last_login', current_time( 'timestamp' ) );
169
+ }
170
+ add_action( 'um_on_login_before_redirect', 'um_store_lastlogin_timestamp', 10, 1 );
171
+
172
+
173
+ /**
174
+ * @param $login
175
+ */
176
+ function um_store_lastlogin_timestamp_( $login ) {
177
+ $user = get_user_by( 'login', $login );
178
+
179
+ if ( false !== $user ) {
180
+ um_store_lastlogin_timestamp( $user->ID );
181
+
182
+ $attempts = (int) get_user_meta( $user->ID, 'password_rst_attempts', true );
183
+ if ( $attempts ) {
184
+ //don't create meta but update if it's exists only
185
+ update_user_meta( $user->ID, 'password_rst_attempts', 0 );
186
+ }
187
+ }
188
+ }
189
+ add_action( 'wp_login', 'um_store_lastlogin_timestamp_' );
190
+
191
+
192
+ /**
193
+ * Login user process
194
+ *
195
+ * @param array $args
196
+ */
197
+ function um_user_login( $args ) {
198
+ extract( $args );
199
+
200
+ $rememberme = ( isset( $args['rememberme'] ) && 1 == $args['rememberme'] && isset( $_REQUEST['rememberme'] ) ) ? 1 : 0;
201
+
202
+ if ( ( UM()->options()->get( 'deny_admin_frontend_login' ) && ! isset( $_GET['provider'] ) ) && strrpos( um_user('wp_roles' ), 'administrator' ) !== false ) {
203
+ wp_die( esc_html__( 'This action has been prevented for security measures.', 'ultimate-member' ) );
204
+ }
205
+
206
+ UM()->user()->auto_login( um_user( 'ID' ), $rememberme );
207
+
208
+ /**
209
+ * UM hook
210
+ *
211
+ * @type action
212
+ * @title um_on_login_before_redirect
213
+ * @description Hook that runs after successful login and before user is redirected
214
+ * @input_vars
215
+ * [{"var":"$user_id","type":"int","desc":"User ID"}]
216
+ * @change_log
217
+ * ["Since: 2.0"]
218
+ * @usage add_action( 'um_on_login_before_redirect', 'function_name', 10, 1 );
219
+ * @example
220
+ * <?php
221
+ * add_action( 'um_on_login_before_redirect', 'my_on_login_before_redirect', 10, 1 );
222
+ * function my_on_login_before_redirect( $user_id ) {
223
+ * // your code here
224
+ * }
225
+ * ?>
226
+ */
227
+ do_action( 'um_on_login_before_redirect', um_user( 'ID' ) );
228
+
229
+ // Priority redirect
230
+ if ( ! empty( $args['redirect_to'] ) ) {
231
+ exit( wp_safe_redirect( $args['redirect_to'] ) );
232
+ }
233
+
234
+ // Role redirect
235
+ $after_login = um_user( 'after_login' );
236
+ if ( empty( $after_login ) ) {
237
+ exit( wp_redirect( um_user_profile_url() ) );
238
+ }
239
+
240
+ switch ( $after_login ) {
241
+
242
+ case 'redirect_admin':
243
+ exit( wp_redirect( admin_url() ) );
244
+ break;
245
+
246
+ case 'redirect_url':
247
+ /**
248
+ * UM hook
249
+ *
250
+ * @type filter
251
+ * @title um_login_redirect_url
252
+ * @description Change redirect URL after successful login
253
+ * @input_vars
254
+ * [{"var":"$url","type":"string","desc":"Redirect URL"},
255
+ * {"var":"$id","type":"int","desc":"User ID"}]
256
+ * @change_log
257
+ * ["Since: 2.0"]
258
+ * @usage
259
+ * <?php add_filter( 'um_login_redirect_url', 'function_name', 10, 2 ); ?>
260
+ * @example
261
+ * <?php
262
+ * add_filter( 'um_login_redirect_url', 'my_login_redirect_url', 10, 2 );
263
+ * function my_login_redirect_url( $url, $id ) {
264
+ * // your code here
265
+ * return $url;
266
+ * }
267
+ * ?>
268
+ */
269
+ $redirect_url = apply_filters( 'um_login_redirect_url', um_user( 'login_redirect_url' ), um_user( 'ID' ) );
270
+ exit( wp_redirect( $redirect_url ) );
271
+ break;
272
+
273
+ case 'refresh':
274
+ exit( wp_redirect( UM()->permalinks()->get_current_url() ) );
275
+ break;
276
+
277
+ case 'redirect_profile':
278
+ default:
279
+ exit( wp_redirect( um_user_profile_url() ) );
280
+ break;
281
+
282
+ }
283
+ }
284
+ add_action( 'um_user_login', 'um_user_login', 10 );
285
+
286
+
287
+ /**
288
+ * Form processing
289
+ *
290
+ * @param $args
291
+ */
292
+ function um_submit_form_login( $args ) {
293
+
294
+ if ( ! isset( UM()->form()->errors ) ) {
295
+ /**
296
+ * UM hook
297
+ *
298
+ * @type action
299
+ * @title um_user_login
300
+ * @description Hook that runs after successful submit login form
301
+ * @input_vars
302
+ * [{"var":"$args","type":"array","desc":"Form data"}]
303
+ * @change_log
304
+ * ["Since: 2.0"]
305
+ * @usage add_action( 'um_user_login', 'function_name', 10, 1 );
306
+ * @example
307
+ * <?php
308
+ * add_action( 'um_user_login', 'my_user_login', 10, 1 );
309
+ * function my_user_login( $args ) {
310
+ * // your code here
311
+ * }
312
+ * ?>
313
+ */
314
+ do_action( 'um_user_login', $args );
315
+ }
316
+
317
+ /**
318
+ * UM hook
319
+ *
320
+ * @type action
321
+ * @title um_user_login_extra_hook
322
+ * @description Hook that runs after successful submit login form
323
+ * @input_vars
324
+ * [{"var":"$args","type":"array","desc":"Form data"}]
325
+ * @change_log
326
+ * ["Since: 2.0"]
327
+ * @usage add_action( 'um_user_login_extra_hook', 'function_name', 10, 1 );
328
+ * @example
329
+ * <?php
330
+ * add_action( 'um_user_login_extra_hook', 'my_user_login_extra', 10, 1 );
331
+ * function my_user_login_extra( $args ) {
332
+ * // your code here
333
+ * }
334
+ * ?>
335
+ */
336
+ do_action( 'um_user_login_extra_hook', $args );
337
+ }
338
+ add_action( 'um_submit_form_login', 'um_submit_form_login', 10 );
339
+
340
+
341
+ /**
342
+ * Show the submit button
343
+ *
344
+ * @param $args
345
+ */
346
+ function um_add_submit_button_to_login( $args ) {
347
+ /**
348
+ * UM hook
349
+ *
350
+ * @type filter
351
+ * @title um_login_form_button_one
352
+ * @description Change Login Form Primary button
353
+ * @input_vars
354
+ * [{"var":"$primary_btn_word","type":"string","desc":"Button text"},
355
+ * {"var":"$args","type":"array","desc":"Login Form arguments"}]
356
+ * @change_log
357
+ * ["Since: 2.0"]
358
+ * @usage
359
+ * <?php add_filter( 'um_login_form_button_one', 'function_name', 10, 2 ); ?>
360
+ * @example
361
+ * <?php
362
+ * add_filter( 'um_login_form_button_one', 'my_login_form_button_one', 10, 2 );
363
+ * function my_login_form_button_one( $primary_btn_word, $args ) {
364
+ * // your code here
365
+ * return $primary_btn_word;
366
+ * }
367
+ * ?>
368
+ */
369
+ $primary_btn_word = apply_filters('um_login_form_button_one', $args['primary_btn_word'], $args );
370
+
371
+ if ( ! isset( $primary_btn_word ) || $primary_btn_word == '' ){
372
+ $primary_btn_word = UM()->options()->get( 'login_primary_btn_word' );
373
+ }
374
+
375
+ /**
376
+ * UM hook
377
+ *
378
+ * @type filter
379
+ * @title um_login_form_button_two
380
+ * @description Change Login Form Secondary button
381
+ * @input_vars
382
+ * [{"var":"$secondary_btn_word","type":"string","desc":"Button text"},
383
+ * {"var":"$args","type":"array","desc":"Login Form arguments"}]
384
+ * @change_log
385
+ * ["Since: 2.0"]
386
+ * @usage
387
+ * <?php add_filter( 'um_login_form_button_two', 'function_name', 10, 2 ); ?>
388
+ * @example
389
+ * <?php
390
+ * add_filter( 'um_login_form_button_two', 'my_login_form_button_two', 10, 2 );
391
+ * function my_login_form_button_two( $secondary_btn_word, $args ) {
392
+ * // your code here
393
+ * return $secondary_btn_word;
394
+ * }
395
+ * ?>
396
+ */
397
+ $secondary_btn_word = apply_filters( 'um_login_form_button_two', $args['secondary_btn_word'], $args );
398
+
399
+ if ( ! isset( $secondary_btn_word ) || $secondary_btn_word == '' ){
400
+ $secondary_btn_word = UM()->options()->get( 'login_secondary_btn_word' );
401
+ }
402
+
403
+ $secondary_btn_url = ! empty( $args['secondary_btn_url'] ) ? $args['secondary_btn_url'] : um_get_core_page( 'register' );
404
+ /**
405
+ * UM hook
406
+ *
407
+ * @type filter
408
+ * @title um_login_form_button_two_url
409
+ * @description Change Login Form Secondary button URL
410
+ * @input_vars
411
+ * [{"var":"$secondary_btn_url","type":"string","desc":"Button URL"},
412
+ * {"var":"$args","type":"array","desc":"Login Form arguments"}]
413
+ * @change_log
414
+ * ["Since: 2.0"]
415
+ * @usage
416
+ * <?php add_filter( 'um_login_form_button_two_url', 'function_name', 10, 2 ); ?>
417
+ * @example
418
+ * <?php
419
+ * add_filter( 'um_login_form_button_two_url', 'my_login_form_button_two_url', 10, 2 );
420
+ * function my_login_form_button_two_url( $secondary_btn_url, $args ) {
421
+ * // your code here
422
+ * return $secondary_btn_url;
423
+ * }
424
+ * ?>
425
+ */
426
+ $secondary_btn_url = apply_filters( 'um_login_form_button_two_url', $secondary_btn_url, $args ); ?>
427
+
428
+ <div class="um-col-alt">
429
+
430
+ <?php if ( ! empty( $args['show_rememberme'] ) ) {
431
+ UM()->fields()->checkbox( 'rememberme', __( 'Keep me signed in', 'ultimate-member' ), false ); ?>
432
+ <div class="um-clear"></div>
433
+ <?php }
434
+
435
+ if ( ! empty( $args['secondary_btn'] ) ) { ?>
436
+
437
+ <div class="um-left um-half">
438
+ <input type="submit" value="<?php esc_attr_e( wp_unslash( $primary_btn_word ), 'ultimate-member' ); ?>" class="um-button" id="um-submit-btn" />
439
+ </div>
440
+ <div class="um-right um-half">
441
+ <a href="<?php echo esc_url( $secondary_btn_url ); ?>" class="um-button um-alt">
442
+ <?php _e( wp_unslash( $secondary_btn_word ), 'ultimate-member' ); ?>
443
+ </a>
444
+ </div>
445
+
446
+ <?php } else { ?>
447
+
448
+ <div class="um-center">
449
+ <input type="submit" value="<?php esc_attr_e( wp_unslash( $primary_btn_word ), 'ultimate-member' ); ?>" class="um-button" id="um-submit-btn" />
450
+ </div>
451
+
452
+ <?php } ?>
453
+
454
+ <div class="um-clear"></div>
455
+
456
+ </div>
457
+
458
+ <?php
459
+ }
460
+ add_action( 'um_after_login_fields', 'um_add_submit_button_to_login', 1000 );
461
+
462
+
463
+ /**
464
+ * Display a forgot password link
465
+ *
466
+ * @param $args
467
+ */
468
+ function um_after_login_submit( $args ) {
469
+ if ( empty( $args['forgot_pass_link'] ) ) {
470
+ return;
471
+ } ?>
472
+
473
+ <div class="um-col-alt-b">
474
+ <a href="<?php echo esc_url( um_get_core_page( 'password-reset' ) ); ?>" class="um-link-alt">
475
+ <?php _e( 'Forgot your password?', 'ultimate-member' ); ?>
476
+ </a>
477
+ </div>
478
+
479
+ <?php
480
+ }
481
+ add_action( 'um_after_login_fields', 'um_after_login_submit', 1001 );
482
+
483
+
484
+ /**
485
+ * Show Fields
486
+ *
487
+ * @param $args
488
+ */
489
+ function um_add_login_fields( $args ) {
490
+ echo UM()->fields()->display( 'login', $args );
491
+ }
492
+ add_action( 'um_main_login_fields', 'um_add_login_fields', 100 );
includes/core/um-actions-profile.php CHANGED
@@ -295,7 +295,7 @@ function um_user_edit_profile( $args ) {
295
 
296
  $options = array();
297
  if ( ! empty( $array['custom_dropdown_options_source'] ) && function_exists( $array['custom_dropdown_options_source'] ) && ! $has_custom_source ) {
298
- if ( ! in_array( $array['custom_dropdown_options_source'], UM()->fields()->dropdown_options_source_blacklist(), true ) ) {
299
  $callback_result = call_user_func( $array['custom_dropdown_options_source'], $array['options'] );
300
  if ( is_array( $callback_result ) ) {
301
  $options = array_keys( $callback_result );
295
 
296
  $options = array();
297
  if ( ! empty( $array['custom_dropdown_options_source'] ) && function_exists( $array['custom_dropdown_options_source'] ) && ! $has_custom_source ) {
298
+ if ( ! UM()->fields()->is_source_blacklisted( $array['custom_dropdown_options_source'] ) ) {
299
  $callback_result = call_user_func( $array['custom_dropdown_options_source'], $array['options'] );
300
  if ( is_array( $callback_result ) ) {
301
  $options = array_keys( $callback_result );
includes/core/um-filters-fields.php CHANGED
@@ -694,7 +694,7 @@ add_filter( 'um_field_non_utf8_value', 'um_field_non_utf8_value' );
694
  */
695
  function um_select_dropdown_dynamic_callback_options( $options, $data ) {
696
  if ( ! empty( $data['custom_dropdown_options_source'] ) && function_exists( $data['custom_dropdown_options_source'] ) ) {
697
- if ( in_array( $data['custom_dropdown_options_source'], UM()->fields()->dropdown_options_source_blacklist(), true ) ) {
698
  return $options;
699
  }
700
  $options = call_user_func( $data['custom_dropdown_options_source'] );
694
  */
695
  function um_select_dropdown_dynamic_callback_options( $options, $data ) {
696
  if ( ! empty( $data['custom_dropdown_options_source'] ) && function_exists( $data['custom_dropdown_options_source'] ) ) {
697
+ if ( UM()->fields()->is_source_blacklisted( $data['custom_dropdown_options_source'] ) ) {
698
  return $options;
699
  }
700
  $options = call_user_func( $data['custom_dropdown_options_source'] );
includes/um-short-functions.php CHANGED
@@ -915,18 +915,20 @@ function um_user_submited_display( $k, $title, $data = array(), $style = true )
915
  * Show filtered social link
916
  *
917
  * @param string $key
918
- * @param string $match
919
  *
920
  * @return string
921
  */
922
- function um_filtered_social_link( $key, $match ) {
923
  $value = um_profile( $key );
924
- $submatch = str_replace( 'https://', '', $match );
925
- $submatch = str_replace( 'http://', '', $submatch );
926
- if ( strstr( $value, $submatch ) ) {
927
- $value = 'https://' . $value;
928
- } elseif ( strpos( $value, 'http' ) !== 0 ) {
929
- $value = $match . $value;
 
 
930
  }
931
  $value = str_replace( 'https://https://', 'https://', $value );
932
  $value = str_replace( 'http://https://', 'https://', $value );
915
  * Show filtered social link
916
  *
917
  * @param string $key
918
+ * @param null|string $match
919
  *
920
  * @return string
921
  */
922
+ function um_filtered_social_link( $key, $match = null ) {
923
  $value = um_profile( $key );
924
+ if ( ! empty( $match ) ) {
925
+ $submatch = str_replace( 'https://', '', $match );
926
+ $submatch = str_replace( 'http://', '', $submatch );
927
+ if ( strstr( $value, $submatch ) ) {
928
+ $value = 'https://' . $value;
929
+ } elseif ( strpos( $value, 'http' ) !== 0 ) {
930
+ $value = $match . $value;
931
+ }
932
  }
933
  $value = str_replace( 'https://https://', 'https://', $value );
934
  $value = str_replace( 'http://https://', 'https://', $value );
languages/ultimate-member.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the Ultimate Member plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Ultimate Member 2.5.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ultimate-member\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-10-26T22:34:52+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.7.1\n"
15
  "X-Domain: ultimate-member\n"
@@ -17,7 +17,7 @@ msgstr ""
17
  #. Plugin Name of the plugin
18
  #. Author of the plugin
19
  #: includes/admin/core/class-admin-menu.php:147
20
- #: includes/core/class-user.php:880
21
  msgid "Ultimate Member"
22
  msgstr ""
23
 
@@ -50,7 +50,7 @@ msgid "Docs"
50
  msgstr ""
51
 
52
  #: includes/admin/class-admin.php:1881
53
- #: includes/admin/core/class-admin-settings.php:1890
54
  msgid "Settings"
55
  msgstr ""
56
 
@@ -121,7 +121,7 @@ msgstr ""
121
  #: includes/admin/core/class-admin-builder.php:776
122
  #: includes/admin/core/class-admin-dragdrop.php:33
123
  #: includes/admin/core/class-admin-menu.php:106
124
- #: includes/core/class-fields.php:4842
125
  msgid "Please login as administrator"
126
  msgstr ""
127
 
@@ -247,8 +247,8 @@ msgstr ""
247
 
248
  #: includes/admin/core/class-admin-columns.php:186
249
  #: includes/admin/core/class-admin-columns.php:219
250
- #: includes/admin/core/class-admin-settings.php:1083
251
- #: includes/admin/core/class-admin-settings.php:1186
252
  #: includes/admin/core/list-tables/roles-list-table.php:383
253
  #: includes/admin/core/list-tables/roles-list-table.php:391
254
  #: includes/admin/templates/form/login_customize.php:27
@@ -271,14 +271,14 @@ msgstr ""
271
  #: includes/core/class-builtin.php:1266
272
  #: includes/core/class-builtin.php:1282
273
  #: includes/core/class-builtin.php:1285
274
- #: includes/core/um-actions-account.php:332
275
  msgid "No"
276
  msgstr ""
277
 
278
  #: includes/admin/core/class-admin-columns.php:186
279
  #: includes/admin/core/class-admin-columns.php:219
280
- #: includes/admin/core/class-admin-settings.php:1084
281
- #: includes/admin/core/class-admin-settings.php:1187
282
  #: includes/admin/core/list-tables/roles-list-table.php:383
283
  #: includes/admin/core/list-tables/roles-list-table.php:391
284
  #: includes/admin/core/packages/2.1.3-beta3/functions.php:75
@@ -302,9 +302,9 @@ msgstr ""
302
  #: includes/core/class-builtin.php:1248
303
  #: includes/core/class-builtin.php:1267
304
  #: includes/core/class-builtin.php:1284
 
305
  #: includes/core/class-user.php:430
306
- #: includes/core/class-user.php:431
307
- #: includes/core/um-actions-account.php:327
308
  msgid "Yes"
309
  msgstr ""
310
 
@@ -321,8 +321,8 @@ msgstr ""
321
  #: includes/core/class-builtin.php:751
322
  #: includes/core/class-builtin.php:1291
323
  #: includes/core/class-builtin.php:1294
324
- #: includes/core/um-actions-account.php:623
325
- #: includes/core/um-actions-account.php:695
326
  msgid "Password"
327
  msgstr ""
328
 
@@ -522,7 +522,7 @@ msgid "Member Directories"
522
  msgstr ""
523
 
524
  #: includes/admin/core/class-admin-menu.php:206
525
- #: includes/admin/core/class-admin-settings.php:1744
526
  msgid "Extensions"
527
  msgstr ""
528
 
@@ -1322,10 +1322,10 @@ msgid "The text that appears on the button. e.g. Upload"
1322
  msgstr ""
1323
 
1324
  #: includes/admin/core/class-admin-metabox.php:2017
1325
- #: includes/core/class-fields.php:1858
1326
- #: includes/core/class-fields.php:1899
1327
- #: includes/core/class-fields.php:2807
1328
- #: includes/core/class-fields.php:2897
1329
  msgid "Upload"
1330
  msgstr ""
1331
 
@@ -1524,7 +1524,7 @@ msgstr ""
1524
 
1525
  #: includes/admin/core/class-admin-metabox.php:2295
1526
  #: includes/class-config.php:134
1527
- #: includes/class-config.php:802
1528
  msgid "Members"
1529
  msgstr ""
1530
 
@@ -1792,7 +1792,7 @@ msgid "Wrong Data"
1792
  msgstr ""
1793
 
1794
  #: includes/admin/core/class-admin-notices.php:714
1795
- #: includes/admin/core/class-admin-settings.php:2172
1796
  msgid "Security Check"
1797
  msgstr ""
1798
 
@@ -1816,7 +1816,6 @@ msgstr ""
1816
  msgid "%s page"
1817
  msgstr ""
1818
 
1819
- #. translators: %s: Page title
1820
  #: includes/admin/core/class-admin-settings.php:273
1821
  msgid "Add page ID"
1822
  msgstr ""
@@ -1840,7 +1839,6 @@ msgstr ""
1840
  msgid "Who can see %s Tab?"
1841
  msgstr ""
1842
 
1843
- #. translators: %s: Tab title
1844
  #: includes/admin/core/class-admin-settings.php:354
1845
  msgid "Select which users can view this tab."
1846
  msgstr ""
@@ -1986,70 +1984,70 @@ msgstr ""
1986
  msgid "If the update was successful, you will see a corresponding message. Otherwise, contact technical support if the update failed."
1987
  msgstr ""
1988
 
1989
- #: includes/admin/core/class-admin-settings.php:962
1990
  msgid "General"
1991
  msgstr ""
1992
 
1993
- #: includes/admin/core/class-admin-settings.php:965
1994
  msgid "Pages"
1995
  msgstr ""
1996
 
1997
- #: includes/admin/core/class-admin-settings.php:969
1998
  #: includes/admin/templates/dashboard/users.php:15
1999
  msgid "Users"
2000
  msgstr ""
2001
 
2002
- #: includes/admin/core/class-admin-settings.php:975
2003
  msgid "Profile Permalink Base"
2004
  msgstr ""
2005
 
2006
  #. translators: %s: Profile page URL
2007
- #: includes/admin/core/class-admin-settings.php:977
2008
  msgid "Here you can control the permalink structure of the user profile URL globally e.g. %s<strong>username</strong>/"
2009
  msgstr ""
2010
 
2011
- #: includes/admin/core/class-admin-settings.php:979
2012
- #: includes/admin/core/class-admin-settings.php:996
2013
  #: includes/core/class-builtin.php:724
2014
  #: includes/core/class-builtin.php:727
2015
  #: includes/core/class-member-directory.php:300
2016
  msgid "Username"
2017
  msgstr ""
2018
 
2019
- #: includes/admin/core/class-admin-settings.php:980
2020
  msgid "First and Last Name with '.'"
2021
  msgstr ""
2022
 
2023
- #: includes/admin/core/class-admin-settings.php:981
2024
  msgid "First and Last Name with '-'"
2025
  msgstr ""
2026
 
2027
- #: includes/admin/core/class-admin-settings.php:982
2028
  msgid "First and Last Name with '+'"
2029
  msgstr ""
2030
 
2031
- #: includes/admin/core/class-admin-settings.php:983
2032
  msgid "User ID"
2033
  msgstr ""
2034
 
2035
- #: includes/admin/core/class-admin-settings.php:985
2036
- #: includes/admin/core/class-admin-settings.php:1004
2037
  msgid "Select..."
2038
  msgstr ""
2039
 
2040
- #: includes/admin/core/class-admin-settings.php:991
2041
  msgid "User Display Name"
2042
  msgstr ""
2043
 
2044
- #: includes/admin/core/class-admin-settings.php:992
2045
  msgid "This is the name that will be displayed for users on the front end of your site. Default setting uses first/last name as display name if it exists"
2046
  msgstr ""
2047
 
2048
- #: includes/admin/core/class-admin-settings.php:994
2049
  msgid "Default WP Display Name"
2050
  msgstr ""
2051
 
2052
- #: includes/admin/core/class-admin-settings.php:995
2053
  #: includes/core/class-builtin.php:783
2054
  #: includes/core/class-builtin.php:786
2055
  #: includes/core/class-member-directory.php:301
@@ -2057,72 +2055,72 @@ msgstr ""
2057
  msgid "Nickname"
2058
  msgstr ""
2059
 
2060
- #: includes/admin/core/class-admin-settings.php:997
2061
  msgid "First name & last name"
2062
  msgstr ""
2063
 
2064
- #: includes/admin/core/class-admin-settings.php:998
2065
  msgid "Last name & first name"
2066
  msgstr ""
2067
 
2068
- #: includes/admin/core/class-admin-settings.php:999
2069
  msgid "First name & first initial of last name"
2070
  msgstr ""
2071
 
2072
- #: includes/admin/core/class-admin-settings.php:1000
2073
  msgid "First initial of first name & last name"
2074
  msgstr ""
2075
 
2076
- #: includes/admin/core/class-admin-settings.php:1001
2077
  msgid "First name only"
2078
  msgstr ""
2079
 
2080
- #: includes/admin/core/class-admin-settings.php:1002
2081
  msgid "Custom field(s)"
2082
  msgstr ""
2083
 
2084
- #: includes/admin/core/class-admin-settings.php:1009
2085
  msgid "Display Name Custom Field(s)"
2086
  msgstr ""
2087
 
2088
- #: includes/admin/core/class-admin-settings.php:1010
2089
  msgid "Specify the custom field meta key or custom fields seperated by comma that you want to use to display users name on the frontend of your site"
2090
  msgstr ""
2091
 
2092
- #: includes/admin/core/class-admin-settings.php:1016
2093
  msgid "Automatically redirect author page to their profile?"
2094
  msgstr ""
2095
 
2096
- #: includes/admin/core/class-admin-settings.php:1017
2097
  msgid "If enabled, author pages will automatically redirect to the user's profile page"
2098
  msgstr ""
2099
 
2100
- #: includes/admin/core/class-admin-settings.php:1022
2101
  msgid "Enable Members Directory"
2102
  msgstr ""
2103
 
2104
- #: includes/admin/core/class-admin-settings.php:1023
2105
  msgid "Control whether to enable or disable member directories on this site"
2106
  msgstr ""
2107
 
2108
- #: includes/admin/core/class-admin-settings.php:1028
2109
  msgid "Use Gravatars?"
2110
  msgstr ""
2111
 
2112
- #: includes/admin/core/class-admin-settings.php:1029
2113
  msgid "Do you want to use gravatars instead of the default plugin profile photo (If the user did not upload a custom profile photo / avatar)"
2114
  msgstr ""
2115
 
2116
- #: includes/admin/core/class-admin-settings.php:1034
2117
  msgid "Use Gravatar builtin image"
2118
  msgstr ""
2119
 
2120
- #: includes/admin/core/class-admin-settings.php:1035
2121
  msgid "Gravatar has a number of built in options which you can also use as defaults"
2122
  msgstr ""
2123
 
2124
- #: includes/admin/core/class-admin-settings.php:1037
2125
- #: includes/admin/core/class-admin-settings.php:1641
2126
  #: includes/admin/templates/form/login_settings.php:19
2127
  #: includes/admin/templates/form/register_customize.php:9
2128
  #: includes/admin/templates/form/register_customize.php:42
@@ -2130,941 +2128,949 @@ msgstr ""
2130
  msgid "Default"
2131
  msgstr ""
2132
 
2133
- #: includes/admin/core/class-admin-settings.php:1038
2134
  msgid "404 ( File Not Found response )"
2135
  msgstr ""
2136
 
2137
- #: includes/admin/core/class-admin-settings.php:1039
2138
  msgid "Mystery Man"
2139
  msgstr ""
2140
 
2141
- #: includes/admin/core/class-admin-settings.php:1040
2142
  msgid "Identicon"
2143
  msgstr ""
2144
 
2145
- #: includes/admin/core/class-admin-settings.php:1041
2146
  msgid "Monsterid"
2147
  msgstr ""
2148
 
2149
- #: includes/admin/core/class-admin-settings.php:1042
2150
  msgid "Wavatar"
2151
  msgstr ""
2152
 
2153
- #: includes/admin/core/class-admin-settings.php:1043
2154
  msgid "Retro"
2155
  msgstr ""
2156
 
2157
- #: includes/admin/core/class-admin-settings.php:1044
2158
  msgid "Blank ( a transparent PNG image )"
2159
  msgstr ""
2160
 
2161
- #: includes/admin/core/class-admin-settings.php:1052
2162
  msgid "Use Default plugin avatar as Gravatar's Default avatar"
2163
  msgstr ""
2164
 
2165
- #: includes/admin/core/class-admin-settings.php:1053
2166
  msgid "Do you want to use the plugin default avatar instead of the gravatar default photo (If the user did not upload a custom profile photo / avatar)"
2167
  msgstr ""
2168
 
2169
- #: includes/admin/core/class-admin-settings.php:1059
2170
  msgid "Require a strong password?"
2171
  msgstr ""
2172
 
2173
- #: includes/admin/core/class-admin-settings.php:1060
2174
  msgid "Enable or disable a strong password rules common for all Ultimate Member forms."
2175
  msgstr ""
2176
 
2177
- #: includes/admin/core/class-admin-settings.php:1065
2178
  msgid "Password minimum length"
2179
  msgstr ""
2180
 
2181
- #: includes/admin/core/class-admin-settings.php:1066
2182
  msgid "If you want to enable a minimum number of characters to be in password. User password field in the UM forms has own settings for that. Leave empty to use default value 8"
2183
  msgstr ""
2184
 
2185
- #: includes/admin/core/class-admin-settings.php:1072
2186
  msgid "Password maximum length"
2187
  msgstr ""
2188
 
2189
- #: includes/admin/core/class-admin-settings.php:1073
2190
  msgid "If you want to enable a maximum number of characters to be in password. User password field in the UM forms has own settings for that. Leave empty to use default value 30"
2191
  msgstr ""
2192
 
2193
- #: includes/admin/core/class-admin-settings.php:1080
2194
  #: includes/admin/templates/role/profile.php:49
2195
  msgid "Avoid indexing profile by search engines"
2196
  msgstr ""
2197
 
2198
- #: includes/admin/core/class-admin-settings.php:1081
2199
  msgid "Hides the profile page for robots. This setting can be overridden by individual role settings."
2200
  msgstr ""
2201
 
2202
- #: includes/admin/core/class-admin-settings.php:1090
2203
  msgid "Activation link lifetime"
2204
  msgstr ""
2205
 
2206
- #: includes/admin/core/class-admin-settings.php:1091
2207
  msgid "How long does an activation link live in seconds? Leave empty for endless links."
2208
  msgstr ""
2209
 
2210
- #: includes/admin/core/class-admin-settings.php:1097
2211
  #: includes/class-config.php:136
2212
- #: includes/class-config.php:804
2213
  #: includes/core/class-account.php:97
2214
  #: includes/admin/assets/js/um-admin-blocks-shortcode.js:305
2215
  #: includes/admin/assets/js/um-admin-blocks-shortcode.js:365
2216
  msgid "Account"
2217
  msgstr ""
2218
 
2219
- #: includes/admin/core/class-admin-settings.php:1102
2220
  msgid "Password Account Tab"
2221
  msgstr ""
2222
 
2223
- #: includes/admin/core/class-admin-settings.php:1103
2224
  msgid "Enable/disable the Password account tab in account page"
2225
  msgstr ""
2226
 
2227
- #: includes/admin/core/class-admin-settings.php:1108
2228
  msgid "Privacy Account Tab"
2229
  msgstr ""
2230
 
2231
- #: includes/admin/core/class-admin-settings.php:1109
2232
  msgid "Enable/disable the Privacy account tab in account page"
2233
  msgstr ""
2234
 
2235
- #: includes/admin/core/class-admin-settings.php:1114
2236
  msgid "Notifications Account Tab"
2237
  msgstr ""
2238
 
2239
- #: includes/admin/core/class-admin-settings.php:1115
2240
  msgid "Enable/disable the Notifications account tab in account page"
2241
  msgstr ""
2242
 
2243
- #: includes/admin/core/class-admin-settings.php:1120
2244
  msgid "Delete Account Tab"
2245
  msgstr ""
2246
 
2247
- #: includes/admin/core/class-admin-settings.php:1121
2248
  msgid "Enable/disable the Delete account tab in account page"
2249
  msgstr ""
2250
 
2251
- #: includes/admin/core/class-admin-settings.php:1126
2252
  msgid "Account Deletion Custom Text"
2253
  msgstr ""
2254
 
2255
- #: includes/admin/core/class-admin-settings.php:1127
2256
  msgid "This is custom text that will be displayed to users before they delete their accounts from your site when password is required."
2257
  msgstr ""
2258
 
2259
- #: includes/admin/core/class-admin-settings.php:1135
2260
  msgid "Account Deletion without password Custom Text"
2261
  msgstr ""
2262
 
2263
- #: includes/admin/core/class-admin-settings.php:1136
2264
  msgid "This is custom text that will be displayed to users before they delete their accounts from your site when password isn't required."
2265
  msgstr ""
2266
 
2267
- #: includes/admin/core/class-admin-settings.php:1144
2268
  msgid "Add a First & Last Name fields"
2269
  msgstr ""
2270
 
2271
- #: includes/admin/core/class-admin-settings.php:1145
2272
  msgid "Whether to enable these fields on the user account page by default or hide them."
2273
  msgstr ""
2274
 
2275
- #: includes/admin/core/class-admin-settings.php:1150
2276
  msgid "Disable First & Last Name fields"
2277
  msgstr ""
2278
 
2279
- #: includes/admin/core/class-admin-settings.php:1151
2280
  msgid "Whether to allow users changing their first and last name in account page."
2281
  msgstr ""
2282
 
2283
- #: includes/admin/core/class-admin-settings.php:1157
2284
  msgid "Require First & Last Name"
2285
  msgstr ""
2286
 
2287
- #: includes/admin/core/class-admin-settings.php:1158
2288
  msgid "Require first and last name?"
2289
  msgstr ""
2290
 
2291
- #: includes/admin/core/class-admin-settings.php:1164
2292
  msgid "Allow users to change e-mail"
2293
  msgstr ""
2294
 
2295
- #: includes/admin/core/class-admin-settings.php:1165
2296
  msgid "Whether to allow users changing their email in account page."
2297
  msgstr ""
2298
 
2299
- #: includes/admin/core/class-admin-settings.php:1170
2300
  msgid "Password is required?"
2301
  msgstr ""
2302
 
2303
- #: includes/admin/core/class-admin-settings.php:1171
2304
  msgid "Password is required to save account data."
2305
  msgstr ""
2306
 
2307
- #: includes/admin/core/class-admin-settings.php:1176
2308
  msgid "Allow users to hide their profiles from directory"
2309
  msgstr ""
2310
 
2311
- #: includes/admin/core/class-admin-settings.php:1177
2312
  msgid "Whether to allow users changing their profile visibility from member directory in account page."
2313
  msgstr ""
2314
 
2315
- #: includes/admin/core/class-admin-settings.php:1183
2316
  msgid "Hide profiles from directory by default"
2317
  msgstr ""
2318
 
2319
- #: includes/admin/core/class-admin-settings.php:1184
2320
  msgid "Set default value for the \"Hide my profile from directory\" option"
2321
  msgstr ""
2322
 
2323
- #: includes/admin/core/class-admin-settings.php:1195
2324
  msgid "Uploads"
2325
  msgstr ""
2326
 
2327
- #: includes/admin/core/class-admin-settings.php:1201
2328
  msgid "Profile Photo Maximum File Size (bytes)"
2329
  msgstr ""
2330
 
2331
- #: includes/admin/core/class-admin-settings.php:1202
2332
  msgid "Sets a maximum size for the uploaded photo"
2333
  msgstr ""
2334
 
2335
- #: includes/admin/core/class-admin-settings.php:1208
2336
  msgid "Cover Photo Maximum File Size (bytes)"
2337
  msgstr ""
2338
 
2339
- #: includes/admin/core/class-admin-settings.php:1209
2340
  msgid "Sets a maximum size for the uploaded cover"
2341
  msgstr ""
2342
 
2343
- #: includes/admin/core/class-admin-settings.php:1215
2344
  msgid "Profile Photo Thumbnail Sizes (px)"
2345
  msgstr ""
2346
 
2347
- #: includes/admin/core/class-admin-settings.php:1216
2348
  msgid "Here you can define which thumbnail sizes will be created for each profile photo upload."
2349
  msgstr ""
2350
 
2351
- #: includes/admin/core/class-admin-settings.php:1218
2352
- #: includes/admin/core/class-admin-settings.php:1228
2353
  msgid "Add New Size"
2354
  msgstr ""
2355
 
2356
- #: includes/admin/core/class-admin-settings.php:1225
2357
  msgid "Cover Photo Thumbnail Sizes (px)"
2358
  msgstr ""
2359
 
2360
- #: includes/admin/core/class-admin-settings.php:1226
2361
  msgid "Here you can define which thumbnail sizes will be created for each cover photo upload."
2362
  msgstr ""
2363
 
2364
- #: includes/admin/core/class-admin-settings.php:1234
2365
  msgid "Change image orientation"
2366
  msgstr ""
2367
 
2368
- #: includes/admin/core/class-admin-settings.php:1235
2369
  msgid "Rotate image to and use orientation by the camera EXIF data."
2370
  msgstr ""
2371
 
2372
- #: includes/admin/core/class-admin-settings.php:1241
2373
  msgid "Image Quality"
2374
  msgstr ""
2375
 
2376
- #: includes/admin/core/class-admin-settings.php:1242
2377
  msgid "Quality is used to determine quality of image uploads, and ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file). The default range is 60."
2378
  msgstr ""
2379
 
2380
- #: includes/admin/core/class-admin-settings.php:1249
2381
  msgid "Image Upload Maximum Width (px)"
2382
  msgstr ""
2383
 
2384
- #: includes/admin/core/class-admin-settings.php:1250
2385
  msgid "Any image upload above this width will be resized to this limit automatically."
2386
  msgstr ""
2387
 
2388
- #: includes/admin/core/class-admin-settings.php:1257
2389
  msgid "Cover Photo Minimum Width (px)"
2390
  msgstr ""
2391
 
2392
- #: includes/admin/core/class-admin-settings.php:1258
2393
  msgid "This will be the minimum width for cover photo uploads"
2394
  msgstr ""
2395
 
2396
- #: includes/admin/core/class-admin-settings.php:1265
2397
  msgid "Access"
2398
  msgstr ""
2399
 
2400
- #: includes/admin/core/class-admin-settings.php:1268
2401
  msgid "Restriction Content"
2402
  msgstr ""
2403
 
2404
- #: includes/admin/core/class-admin-settings.php:1272
2405
  msgid "Other"
2406
  msgstr ""
2407
 
2408
- #: includes/admin/core/class-admin-settings.php:1277
2409
  msgid "Enable the Reset Password Limit?"
2410
  msgstr ""
2411
 
2412
- #: includes/admin/core/class-admin-settings.php:1282
2413
  msgid "Reset Password Limit"
2414
  msgstr ""
2415
 
2416
- #: includes/admin/core/class-admin-settings.php:1283
2417
  msgid "Set the maximum reset password limit. If reached the maximum limit, user will be locked from using this."
2418
  msgstr ""
2419
 
2420
- #: includes/admin/core/class-admin-settings.php:1291
 
 
 
 
 
 
 
 
2421
  msgid "Blocked Email Addresses (Enter one email per line)"
2422
  msgstr ""
2423
 
2424
- #: includes/admin/core/class-admin-settings.php:1292
2425
  msgid "This will block the specified e-mail addresses from being able to sign up or sign in to your site. To block an entire domain, use something like *@domain.com"
2426
  msgstr ""
2427
 
2428
- #: includes/admin/core/class-admin-settings.php:1297
2429
  msgid "Blacklist Words (Enter one word per line)"
2430
  msgstr ""
2431
 
2432
- #: includes/admin/core/class-admin-settings.php:1298
2433
  msgid "This option lets you specify blacklist of words to prevent anyone from signing up with such a word as their username"
2434
  msgstr ""
2435
 
2436
- #: includes/admin/core/class-admin-settings.php:1303
2437
  msgid "Allowed Choice Callbacks (Enter one PHP function per line)"
2438
  msgstr ""
2439
 
2440
- #: includes/admin/core/class-admin-settings.php:1304
2441
  msgid "This option lets you specify the choice callback functions to prevent anyone from using 3rd-party functions that may put your site at risk."
2442
  msgstr ""
2443
 
2444
- #: includes/admin/core/class-admin-settings.php:1309
2445
  msgid "Allow external link redirect confirm"
2446
  msgstr ""
2447
 
2448
- #: includes/admin/core/class-admin-settings.php:1310
2449
  msgid "Using JS.confirm alert when you go to an external link."
2450
  msgstr ""
2451
 
2452
- #: includes/admin/core/class-admin-settings.php:1317
2453
  #: includes/admin/core/list-tables/emails-list-table.php:309
2454
  msgid "Email"
2455
  msgstr ""
2456
 
2457
- #: includes/admin/core/class-admin-settings.php:1322
2458
  msgid "Admin E-mail Address"
2459
  msgstr ""
2460
 
2461
- #: includes/admin/core/class-admin-settings.php:1323
2462
- #: includes/admin/core/class-admin-settings.php:1335
2463
  msgid "e.g. admin@companyname.com"
2464
  msgstr ""
2465
 
2466
- #: includes/admin/core/class-admin-settings.php:1328
2467
  msgid "Mail appears from"
2468
  msgstr ""
2469
 
2470
- #: includes/admin/core/class-admin-settings.php:1329
2471
  msgid "e.g. Site Name"
2472
  msgstr ""
2473
 
2474
- #: includes/admin/core/class-admin-settings.php:1334
2475
  msgid "Mail appears from address"
2476
  msgstr ""
2477
 
2478
- #: includes/admin/core/class-admin-settings.php:1340
2479
  msgid "Use HTML for E-mails?"
2480
  msgstr ""
2481
 
2482
- #: includes/admin/core/class-admin-settings.php:1341
2483
  msgid "If you plan use e-mails with HTML, please make sure that this option is enabled. Otherwise, HTML will be displayed as plain text."
2484
  msgstr ""
2485
 
2486
- #: includes/admin/core/class-admin-settings.php:1346
2487
  msgid "Appearance"
2488
  msgstr ""
2489
 
2490
- #: includes/admin/core/class-admin-settings.php:1349
2491
  #: includes/core/class-form.php:758
2492
  msgid "Profile"
2493
  msgstr ""
2494
 
2495
- #: includes/admin/core/class-admin-settings.php:1354
2496
  msgid "Profile Default Template"
2497
  msgstr ""
2498
 
2499
- #: includes/admin/core/class-admin-settings.php:1355
2500
  msgid "This will be the default template to output profile"
2501
  msgstr ""
2502
 
2503
- #: includes/admin/core/class-admin-settings.php:1363
2504
  msgid "Profile Maximum Width"
2505
  msgstr ""
2506
 
2507
- #: includes/admin/core/class-admin-settings.php:1365
2508
- #: includes/admin/core/class-admin-settings.php:1573
2509
- #: includes/admin/core/class-admin-settings.php:1663
2510
  msgid "The maximum width this shortcode can take from the page width"
2511
  msgstr ""
2512
 
2513
- #: includes/admin/core/class-admin-settings.php:1371
2514
  msgid "Profile Area Maximum Width"
2515
  msgstr ""
2516
 
2517
- #: includes/admin/core/class-admin-settings.php:1373
2518
  #: includes/admin/templates/form/profile_customize.php:76
2519
  msgid "The maximum width of the profile area inside profile (below profile header)"
2520
  msgstr ""
2521
 
2522
- #: includes/admin/core/class-admin-settings.php:1379
2523
  msgid "Profile Field Icons"
2524
  msgstr ""
2525
 
2526
- #: includes/admin/core/class-admin-settings.php:1380
2527
  msgid "This is applicable for edit mode only"
2528
  msgstr ""
2529
 
2530
- #: includes/admin/core/class-admin-settings.php:1383
2531
- #: includes/admin/core/class-admin-settings.php:1596
2532
- #: includes/admin/core/class-admin-settings.php:1686
2533
  #: includes/admin/templates/form/login_customize.php:54
2534
  #: includes/admin/templates/form/profile_customize.php:87
2535
  #: includes/admin/templates/form/register_customize.php:68
2536
  msgid "Show inside text field"
2537
  msgstr ""
2538
 
2539
- #: includes/admin/core/class-admin-settings.php:1384
2540
- #: includes/admin/core/class-admin-settings.php:1597
2541
- #: includes/admin/core/class-admin-settings.php:1687
2542
  #: includes/admin/templates/form/login_customize.php:55
2543
  #: includes/admin/templates/form/profile_customize.php:88
2544
  #: includes/admin/templates/form/register_customize.php:69
2545
  msgid "Show with label"
2546
  msgstr ""
2547
 
2548
- #: includes/admin/core/class-admin-settings.php:1385
2549
- #: includes/admin/core/class-admin-settings.php:1598
2550
- #: includes/admin/core/class-admin-settings.php:1688
2551
  #: includes/admin/templates/form/login_customize.php:56
2552
  #: includes/admin/templates/form/profile_customize.php:89
2553
  #: includes/admin/templates/form/register_customize.php:70
2554
  msgid "Turn off"
2555
  msgstr ""
2556
 
2557
- #: includes/admin/core/class-admin-settings.php:1392
2558
  msgid "Profile Primary Button Text"
2559
  msgstr ""
2560
 
2561
- #: includes/admin/core/class-admin-settings.php:1394
2562
  msgid "The text that is used for updating profile button"
2563
  msgstr ""
2564
 
2565
- #: includes/admin/core/class-admin-settings.php:1400
2566
  msgid "Profile Secondary Button"
2567
  msgstr ""
2568
 
2569
- #: includes/admin/core/class-admin-settings.php:1402
2570
- #: includes/admin/core/class-admin-settings.php:1615
2571
- #: includes/admin/core/class-admin-settings.php:1705
2572
  msgid "Switch on/off the secondary button display in the form"
2573
  msgstr ""
2574
 
2575
- #: includes/admin/core/class-admin-settings.php:1407
2576
  msgid "Profile Secondary Button Text"
2577
  msgstr ""
2578
 
2579
- #: includes/admin/core/class-admin-settings.php:1409
2580
  msgid "The text that is used for cancelling update profile button"
2581
  msgstr ""
2582
 
2583
- #: includes/admin/core/class-admin-settings.php:1416
2584
  msgid "Default Profile Photo"
2585
  msgstr ""
2586
 
2587
- #: includes/admin/core/class-admin-settings.php:1417
2588
  msgid "You can change the default profile picture globally here. Please make sure that the photo is 300x300px."
2589
  msgstr ""
2590
 
2591
- #: includes/admin/core/class-admin-settings.php:1418
2592
  msgid "Select Default Profile Photo"
2593
  msgstr ""
2594
 
2595
- #: includes/admin/core/class-admin-settings.php:1428
2596
  msgid "Default Cover Photo"
2597
  msgstr ""
2598
 
2599
- #: includes/admin/core/class-admin-settings.php:1429
2600
  msgid "You can change the default cover photo globally here. Please make sure that the default cover is large enough and respects the ratio you are using for cover photos."
2601
  msgstr ""
2602
 
2603
- #: includes/admin/core/class-admin-settings.php:1430
2604
  msgid "Select Default Cover Photo"
2605
  msgstr ""
2606
 
2607
- #: includes/admin/core/class-admin-settings.php:1435
2608
  #: includes/admin/templates/form/profile_customize.php:157
2609
  msgid "Disable Profile Photo Upload"
2610
  msgstr ""
2611
 
2612
- #: includes/admin/core/class-admin-settings.php:1436
2613
  #: includes/admin/templates/form/profile_customize.php:158
2614
  msgid "Switch on/off the profile photo uploader"
2615
  msgstr ""
2616
 
2617
- #: includes/admin/core/class-admin-settings.php:1442
2618
  #: includes/admin/templates/form/profile_customize.php:169
2619
  msgid "Profile Photo Size"
2620
  msgstr ""
2621
 
2622
- #: includes/admin/core/class-admin-settings.php:1445
2623
  msgid "The global default of profile photo size. This can be overridden by individual form settings"
2624
  msgstr ""
2625
 
2626
- #: includes/admin/core/class-admin-settings.php:1451
2627
  msgid "Profile Cover Photos"
2628
  msgstr ""
2629
 
2630
- #: includes/admin/core/class-admin-settings.php:1453
2631
  msgid "Switch on/off the profile cover photos"
2632
  msgstr ""
2633
 
2634
- #: includes/admin/core/class-admin-settings.php:1458
2635
  msgid "Profile Cover Size"
2636
  msgstr ""
2637
 
2638
- #: includes/admin/core/class-admin-settings.php:1461
2639
  msgid "The global default width of cover photo size. This can be overridden by individual form settings"
2640
  msgstr ""
2641
 
2642
- #: includes/admin/core/class-admin-settings.php:1468
2643
  msgid "Profile Cover Ratio"
2644
  msgstr ""
2645
 
2646
- #: includes/admin/core/class-admin-settings.php:1469
2647
  msgid "Choose global ratio for cover photos of profiles"
2648
  msgstr ""
2649
 
2650
- #: includes/admin/core/class-admin-settings.php:1483
2651
  msgid "Profile Header Meta Text Icon"
2652
  msgstr ""
2653
 
2654
- #: includes/admin/core/class-admin-settings.php:1485
2655
  msgid "Display field icons for related user meta fields in header or not"
2656
  msgstr ""
2657
 
2658
- #: includes/admin/core/class-admin-settings.php:1490
2659
  msgid "Show display name in profile header"
2660
  msgstr ""
2661
 
2662
- #: includes/admin/core/class-admin-settings.php:1492
2663
  msgid "Switch on/off the user name on profile header"
2664
  msgstr ""
2665
 
2666
- #: includes/admin/core/class-admin-settings.php:1497
2667
  msgid "Show social links in profile header"
2668
  msgstr ""
2669
 
2670
- #: includes/admin/core/class-admin-settings.php:1499
2671
  msgid "Switch on/off the social links on profile header"
2672
  msgstr ""
2673
 
2674
- #: includes/admin/core/class-admin-settings.php:1504
2675
  msgid "Show user description in header"
2676
  msgstr ""
2677
 
2678
- #: includes/admin/core/class-admin-settings.php:1506
2679
  msgid "Switch on/off the user description on profile header"
2680
  msgstr ""
2681
 
2682
- #: includes/admin/core/class-admin-settings.php:1511
2683
  msgid "Enable HTML support for user description"
2684
  msgstr ""
2685
 
2686
- #: includes/admin/core/class-admin-settings.php:1512
2687
  msgid "Switch on/off to enable/disable support for html tags on user description."
2688
  msgstr ""
2689
 
2690
- #: includes/admin/core/class-admin-settings.php:1517
2691
  msgid "User description maximum chars"
2692
  msgstr ""
2693
 
2694
- #: includes/admin/core/class-admin-settings.php:1519
2695
  msgid "Maximum number of characters to allow in user description field in header."
2696
  msgstr ""
2697
 
2698
- #: includes/admin/core/class-admin-settings.php:1526
2699
  msgid "Profile Header Menu Position"
2700
  msgstr ""
2701
 
2702
- #: includes/admin/core/class-admin-settings.php:1528
2703
  msgid "For incompatible themes, please make the menu open from left instead of bottom by default."
2704
  msgstr ""
2705
 
2706
- #: includes/admin/core/class-admin-settings.php:1530
2707
  msgid "Bottom of Icon"
2708
  msgstr ""
2709
 
2710
- #: includes/admin/core/class-admin-settings.php:1531
2711
  msgid "Left of Icon (right for RTL)"
2712
  msgstr ""
2713
 
2714
- #: includes/admin/core/class-admin-settings.php:1538
2715
  msgid "Show a custom message if profile is empty"
2716
  msgstr ""
2717
 
2718
- #: includes/admin/core/class-admin-settings.php:1540
2719
  msgid "Switch on/off the custom message that appears when the profile is empty"
2720
  msgstr ""
2721
 
2722
- #: includes/admin/core/class-admin-settings.php:1545
2723
  msgid "Show the emoticon"
2724
  msgstr ""
2725
 
2726
- #: includes/admin/core/class-admin-settings.php:1547
2727
  msgid "Switch on/off the emoticon (sad face) that appears above the message"
2728
  msgstr ""
2729
 
2730
- #: includes/admin/core/class-admin-settings.php:1553
2731
  msgid "Profile Menu"
2732
  msgstr ""
2733
 
2734
- #: includes/admin/core/class-admin-settings.php:1557
2735
  #: includes/admin/templates/form/mode.php:16
2736
  msgid "Registration Form"
2737
  msgstr ""
2738
 
2739
- #: includes/admin/core/class-admin-settings.php:1562
2740
  msgid "Registration Default Template"
2741
  msgstr ""
2742
 
2743
- #: includes/admin/core/class-admin-settings.php:1563
2744
  msgid "This will be the default template to output registration"
2745
  msgstr ""
2746
 
2747
- #: includes/admin/core/class-admin-settings.php:1571
2748
  msgid "Registration Maximum Width"
2749
  msgstr ""
2750
 
2751
- #: includes/admin/core/class-admin-settings.php:1579
2752
  msgid "Registration Shortcode Alignment"
2753
  msgstr ""
2754
 
2755
- #: includes/admin/core/class-admin-settings.php:1580
2756
- #: includes/admin/core/class-admin-settings.php:1670
2757
  #: includes/admin/templates/form/profile_customize.php:144
2758
  msgid "The shortcode is centered by default unless you specify otherwise here"
2759
  msgstr ""
2760
 
2761
- #: includes/admin/core/class-admin-settings.php:1583
2762
- #: includes/admin/core/class-admin-settings.php:1673
2763
  msgid "Centered"
2764
  msgstr ""
2765
 
2766
- #: includes/admin/core/class-admin-settings.php:1584
2767
- #: includes/admin/core/class-admin-settings.php:1674
2768
  msgid "Left aligned"
2769
  msgstr ""
2770
 
2771
- #: includes/admin/core/class-admin-settings.php:1585
2772
- #: includes/admin/core/class-admin-settings.php:1675
2773
  msgid "Right aligned"
2774
  msgstr ""
2775
 
2776
- #: includes/admin/core/class-admin-settings.php:1592
2777
  msgid "Registration Field Icons"
2778
  msgstr ""
2779
 
2780
- #: includes/admin/core/class-admin-settings.php:1593
2781
  msgid "This controls the display of field icons in the registration form"
2782
  msgstr ""
2783
 
2784
- #: includes/admin/core/class-admin-settings.php:1605
2785
  msgid "Registration Primary Button Text"
2786
  msgstr ""
2787
 
2788
- #: includes/admin/core/class-admin-settings.php:1607
2789
- #: includes/admin/core/class-admin-settings.php:1697
2790
  msgid "The text that is used for primary button text"
2791
  msgstr ""
2792
 
2793
- #: includes/admin/core/class-admin-settings.php:1613
2794
  msgid "Registration Secondary Button"
2795
  msgstr ""
2796
 
2797
- #: includes/admin/core/class-admin-settings.php:1620
2798
  msgid "Registration Secondary Button Text"
2799
  msgstr ""
2800
 
2801
- #: includes/admin/core/class-admin-settings.php:1622
2802
- #: includes/admin/core/class-admin-settings.php:1712
2803
  msgid "The text that is used for the secondary button text"
2804
  msgstr ""
2805
 
2806
- #: includes/admin/core/class-admin-settings.php:1629
2807
  msgid "Registration Secondary Button URL"
2808
  msgstr ""
2809
 
2810
- #: includes/admin/core/class-admin-settings.php:1631
2811
- #: includes/admin/core/class-admin-settings.php:1721
2812
  msgid "You can replace default link for this button by entering custom URL"
2813
  msgstr ""
2814
 
2815
- #: includes/admin/core/class-admin-settings.php:1638
2816
  msgid "Registration Default Role"
2817
  msgstr ""
2818
 
2819
- #: includes/admin/core/class-admin-settings.php:1639
2820
  msgid "This will be the default role assigned to users registering thru registration form"
2821
  msgstr ""
2822
 
2823
- #: includes/admin/core/class-admin-settings.php:1647
2824
  #: includes/admin/templates/form/mode.php:24
2825
  msgid "Login Form"
2826
  msgstr ""
2827
 
2828
- #: includes/admin/core/class-admin-settings.php:1652
2829
  msgid "Login Default Template"
2830
  msgstr ""
2831
 
2832
- #: includes/admin/core/class-admin-settings.php:1653
2833
  msgid "This will be the default template to output login"
2834
  msgstr ""
2835
 
2836
- #: includes/admin/core/class-admin-settings.php:1661
2837
  msgid "Login Maximum Width"
2838
  msgstr ""
2839
 
2840
- #: includes/admin/core/class-admin-settings.php:1669
2841
  msgid "Login Shortcode Alignment"
2842
  msgstr ""
2843
 
2844
- #: includes/admin/core/class-admin-settings.php:1682
2845
  msgid "Login Field Icons"
2846
  msgstr ""
2847
 
2848
- #: includes/admin/core/class-admin-settings.php:1683
2849
  msgid "This controls the display of field icons in the login form"
2850
  msgstr ""
2851
 
2852
- #: includes/admin/core/class-admin-settings.php:1695
2853
  msgid "Login Primary Button Text"
2854
  msgstr ""
2855
 
2856
- #: includes/admin/core/class-admin-settings.php:1703
2857
  msgid "Login Secondary Button"
2858
  msgstr ""
2859
 
2860
- #: includes/admin/core/class-admin-settings.php:1710
2861
  msgid "Login Secondary Button Text"
2862
  msgstr ""
2863
 
2864
- #: includes/admin/core/class-admin-settings.php:1719
2865
  msgid "Login Secondary Button URL"
2866
  msgstr ""
2867
 
2868
- #: includes/admin/core/class-admin-settings.php:1728
2869
  msgid "Login Forgot Password Link"
2870
  msgstr ""
2871
 
2872
- #: includes/admin/core/class-admin-settings.php:1730
2873
  msgid "Switch on/off the forgot password link in login form"
2874
  msgstr ""
2875
 
2876
- #: includes/admin/core/class-admin-settings.php:1735
2877
  msgid "Show \"Remember Me\""
2878
  msgstr ""
2879
 
2880
- #: includes/admin/core/class-admin-settings.php:1737
2881
  msgid "Allow users to choose If they want to stay signed in even after closing the browser. If you do not show this option, the default will be to not remember login session."
2882
  msgstr ""
2883
 
2884
- #: includes/admin/core/class-admin-settings.php:1747
2885
  msgid "Licenses"
2886
  msgstr ""
2887
 
2888
- #: includes/admin/core/class-admin-settings.php:1750
2889
  msgid "Misc"
2890
  msgstr ""
2891
 
2892
- #: includes/admin/core/class-admin-settings.php:1755
2893
  msgid "Show an asterisk for required fields"
2894
  msgstr ""
2895
 
2896
- #: includes/admin/core/class-admin-settings.php:1760
2897
  msgid "User Profile Title"
2898
  msgstr ""
2899
 
2900
- #: includes/admin/core/class-admin-settings.php:1761
2901
  msgid "This is the title that is displayed on a specific user profile"
2902
  msgstr ""
2903
 
2904
- #: includes/admin/core/class-admin-settings.php:1767
2905
  msgid "User Profile Dynamic Meta Description"
2906
  msgstr ""
2907
 
2908
- #: includes/admin/core/class-admin-settings.php:1768
2909
  msgid "This will be used in the meta description that is available for search-engines."
2910
  msgstr ""
2911
 
2912
- #: includes/admin/core/class-admin-settings.php:1776
2913
  msgid "Disable Cache User Profile"
2914
  msgstr ""
2915
 
2916
- #: includes/admin/core/class-admin-settings.php:1777
2917
  msgid "Check this box if you would like to disable Ultimate Member user's cache."
2918
  msgstr ""
2919
 
2920
- #: includes/admin/core/class-admin-settings.php:1782
2921
  msgid "Enable Gutenberg Blocks"
2922
  msgstr ""
2923
 
2924
- #: includes/admin/core/class-admin-settings.php:1783
2925
  msgid "Check this box if you would like to use Ultimate Member blocks in Gutenberg editor. Important some themes have the conflicts with Gutenberg editor."
2926
  msgstr ""
2927
 
2928
- #: includes/admin/core/class-admin-settings.php:1788
2929
  msgid "REST API version"
2930
  msgstr ""
2931
 
2932
- #: includes/admin/core/class-admin-settings.php:1789
2933
  msgid "This controls the REST API version, we recommend to use the last version"
2934
  msgstr ""
2935
 
2936
- #: includes/admin/core/class-admin-settings.php:1791
2937
  msgid "1.0 version"
2938
  msgstr ""
2939
 
2940
- #: includes/admin/core/class-admin-settings.php:1792
2941
  msgid "2.0 version"
2942
  msgstr ""
2943
 
2944
- #: includes/admin/core/class-admin-settings.php:1800
2945
  msgid "Disable pre-queries for restriction content logic (advanced)"
2946
  msgstr ""
2947
 
2948
- #: includes/admin/core/class-admin-settings.php:1801
2949
  msgid "Please enable this option only in the cases when you have big or unnecessary queries on your site with active restriction logic. If you want to exclude posts only from the results queries instead of pre_get_posts and fully-hidden post logic also please enable this option. It activates the restriction content logic until 2.2.x version without latest security enhancements"
2950
  msgstr ""
2951
 
2952
- #: includes/admin/core/class-admin-settings.php:1807
2953
  msgid "Remove Data on Uninstall?"
2954
  msgstr ""
2955
 
2956
- #: includes/admin/core/class-admin-settings.php:1808
2957
  msgid "Check this box if you would like Ultimate Member to completely remove all of its data when the plugin/extensions are deleted."
2958
  msgstr ""
2959
 
2960
- #: includes/admin/core/class-admin-settings.php:1813
2961
  msgid "Install Info"
2962
  msgstr ""
2963
 
2964
- #: includes/admin/core/class-admin-settings.php:1924
2965
  msgid "Ultimate Member - Settings"
2966
  msgstr ""
2967
 
2968
- #: includes/admin/core/class-admin-settings.php:2054
2969
  msgid "Save Changes"
2970
  msgstr ""
2971
 
2972
- #: includes/admin/core/class-admin-settings.php:2652
2973
  msgid "Subject Line"
2974
  msgstr ""
2975
 
2976
- #: includes/admin/core/class-admin-settings.php:2654
2977
  msgid "This is the subject line of the e-mail"
2978
  msgstr ""
2979
 
2980
- #: includes/admin/core/class-admin-settings.php:2659
2981
  msgid "Message Body"
2982
  msgstr ""
2983
 
2984
- #: includes/admin/core/class-admin-settings.php:2661
2985
  msgid "This is the content of the e-mail"
2986
  msgstr ""
2987
 
2988
- #: includes/admin/core/class-admin-settings.php:2711
2989
- #: includes/admin/core/class-admin-settings.php:2821
2990
  msgid "Your license key expired on %s. Please <a href=\"%s\" target=\"_blank\">renew your license key</a>."
2991
  msgstr ""
2992
 
2993
- #: includes/admin/core/class-admin-settings.php:2724
2994
- #: includes/admin/core/class-admin-settings.php:2834
2995
  msgid "Your license key has been disabled. Please <a href=\"%s\" target=\"_blank\">contact support</a> for more information."
2996
  msgstr ""
2997
 
2998
- #: includes/admin/core/class-admin-settings.php:2736
2999
- #: includes/admin/core/class-admin-settings.php:2846
3000
  msgid "Invalid license. Please <a href=\"%s\" target=\"_blank\">visit your account page</a> and verify it."
3001
  msgstr ""
3002
 
3003
- #: includes/admin/core/class-admin-settings.php:2749
3004
- #: includes/admin/core/class-admin-settings.php:2859
3005
  msgid "Your %s is not active for this URL. Please <a href=\"%s\" target=\"_blank\">visit your account page</a> to manage your license key URLs."
3006
  msgstr ""
3007
 
3008
- #: includes/admin/core/class-admin-settings.php:2761
3009
- #: includes/admin/core/class-admin-settings.php:2871
3010
- msgid "This appears to be an invalid license key for %s."
3011
- msgstr ""
3012
-
3013
  #: includes/admin/core/class-admin-settings.php:2770
3014
  #: includes/admin/core/class-admin-settings.php:2880
3015
- msgid "Your license key has reached its activation limit. <a href=\"%s\">View possible upgrades</a> now."
3016
  msgstr ""
3017
 
3018
  #: includes/admin/core/class-admin-settings.php:2779
3019
  #: includes/admin/core/class-admin-settings.php:2889
 
 
 
 
 
3020
  msgid "The key you entered belongs to a bundle, please use the product specific license key."
3021
  msgstr ""
3022
 
3023
- #: includes/admin/core/class-admin-settings.php:2787
3024
- #: includes/admin/core/class-admin-settings.php:2795
3025
- #: includes/admin/core/class-admin-settings.php:2807
3026
  msgid "unknown_error"
3027
  msgstr ""
3028
 
3029
- #: includes/admin/core/class-admin-settings.php:2788
3030
- #: includes/admin/core/class-admin-settings.php:2796
3031
  msgid "There was an error with this license key: %s. Please <a href=\"%s\">contact our support team</a>."
3032
  msgstr ""
3033
 
3034
- #: includes/admin/core/class-admin-settings.php:2809
3035
  msgid "There was an error with this license key: %s%s. Please <a href=\"%s\">contact our support team</a>."
3036
  msgstr ""
3037
 
3038
- #: includes/admin/core/class-admin-settings.php:2904
3039
  msgid "License key never expires."
3040
  msgstr ""
3041
 
3042
- #: includes/admin/core/class-admin-settings.php:2911
3043
  msgid "Your license key expires soon! It expires on %s. <a href=\"%s\" target=\"_blank\">Renew your license key</a>."
3044
  msgstr ""
3045
 
3046
- #: includes/admin/core/class-admin-settings.php:2921
3047
  msgid "Your license key expires on %s."
3048
  msgstr ""
3049
 
3050
- #: includes/admin/core/class-admin-settings.php:2939
3051
  msgid "To receive updates, please enter your valid %s license key."
3052
  msgstr ""
3053
 
3054
- #: includes/admin/core/class-admin-settings.php:2961
3055
- #: includes/admin/core/class-admin-settings.php:2966
3056
  msgid "Clear License"
3057
  msgstr ""
3058
 
3059
- #: includes/admin/core/class-admin-settings.php:2963
3060
  msgid "Activate"
3061
  msgstr ""
3062
 
3063
- #: includes/admin/core/class-admin-settings.php:2965
3064
  msgid "Re-Activate"
3065
  msgstr ""
3066
 
3067
- #: includes/admin/core/class-admin-settings.php:3018
3068
  msgid "To copy the Install info, click below then press Ctrl + C (PC) or Cmd + C (Mac)."
3069
  msgstr ""
3070
 
@@ -3106,7 +3112,7 @@ msgid "UM Action"
3106
  msgstr ""
3107
 
3108
  #: includes/admin/core/class-admin-users.php:193
3109
- #: includes/core/class-fields.php:2877
3110
  msgid "Apply"
3111
  msgstr ""
3112
 
@@ -3157,7 +3163,7 @@ msgstr ""
3157
 
3158
  #: includes/admin/core/class-admin-users.php:407
3159
  #: includes/admin/templates/dashboard/users.php:28
3160
- #: includes/core/class-user.php:1141
3161
  msgid "Approved"
3162
  msgstr ""
3163
 
@@ -3683,12 +3689,12 @@ msgid "Get latest versions"
3683
  msgstr ""
3684
 
3685
  #: includes/admin/templates/dashboard/users.php:60
3686
- #: includes/core/class-user.php:1149
3687
  msgid "Pending Review"
3688
  msgstr ""
3689
 
3690
  #: includes/admin/templates/dashboard/users.php:73
3691
- #: includes/core/class-user.php:1145
3692
  msgid "Awaiting E-mail Confirmation"
3693
  msgstr ""
3694
 
@@ -4293,8 +4299,8 @@ msgstr ""
4293
  #: includes/admin/templates/modal/forms/fonticons.php:14
4294
  #: includes/admin/templates/role/publish.php:30
4295
  #: includes/class-config.php:254
4296
- #: includes/core/class-fields.php:2878
4297
- #: includes/core/class-fields.php:2985
4298
  #: includes/core/um-actions-profile.php:844
4299
  #: includes/core/um-actions-profile.php:856
4300
  #: includes/core/um-actions-profile.php:1044
@@ -4628,14 +4634,14 @@ msgid "Check All"
4628
  msgstr ""
4629
 
4630
  #: includes/class-config.php:131
4631
- #: includes/class-config.php:799
4632
  msgid "User"
4633
  msgstr ""
4634
 
4635
  #: includes/class-config.php:132
4636
  #: includes/class-config.php:264
4637
  #: includes/class-config.php:272
4638
- #: includes/class-config.php:800
4639
  #: includes/core/class-form.php:755
4640
  msgid "Login"
4641
  msgstr ""
@@ -4643,13 +4649,13 @@ msgstr ""
4643
  #: includes/class-config.php:133
4644
  #: includes/class-config.php:262
4645
  #: includes/class-config.php:276
4646
- #: includes/class-config.php:801
4647
  #: includes/core/class-form.php:761
4648
  msgid "Register"
4649
  msgstr ""
4650
 
4651
  #: includes/class-config.php:135
4652
- #: includes/class-config.php:803
4653
  #: includes/core/class-member-directory.php:2300
4654
  #: includes/core/um-actions-profile.php:1426
4655
  #: includes/core/um-actions-user.php:19
@@ -4657,7 +4663,7 @@ msgid "Logout"
4657
  msgstr ""
4658
 
4659
  #: includes/class-config.php:137
4660
- #: includes/class-config.php:805
4661
  #: includes/admin/assets/js/um-admin-blocks-shortcode.js:262
4662
  #: includes/admin/assets/js/um-admin-blocks-shortcode.js:283
4663
  msgid "Password Reset"
@@ -4834,8 +4840,8 @@ msgstr ""
4834
  #. translators: %s: The message after registration process based on a role data and user status after registration
4835
  #. translators: %s: Restricted taxonomy message.
4836
  #: includes/core/class-access.php:738
4837
- #: includes/core/class-fields.php:1473
4838
- #: includes/core/um-actions-account.php:495
4839
  #: templates/message.php:8
4840
  #: templates/restricted-taxonomy.php:47
4841
  msgid "%s"
@@ -4963,7 +4969,7 @@ msgid "You must add a shortcode to the content area"
4963
  msgstr ""
4964
 
4965
  #: includes/core/class-builtin.php:713
4966
- #: includes/core/class-user.php:1972
4967
  msgid "Only me"
4968
  msgstr ""
4969
 
@@ -7120,97 +7126,97 @@ msgstr ""
7120
  msgid "Less than 1 year old"
7121
  msgstr ""
7122
 
7123
- #: includes/core/class-fields.php:1494
7124
  msgid "Custom Field"
7125
  msgstr ""
7126
 
7127
- #: includes/core/class-fields.php:1847
7128
  msgid "Please upload a valid image!"
7129
  msgstr ""
7130
 
7131
- #: includes/core/class-fields.php:1861
7132
  msgid "Sorry this is not a valid image."
7133
  msgstr ""
7134
 
7135
- #: includes/core/class-fields.php:1864
7136
  msgid "This image is too large!"
7137
  msgstr ""
7138
 
7139
- #: includes/core/class-fields.php:1867
7140
  msgid "This image is too small!"
7141
  msgstr ""
7142
 
7143
- #: includes/core/class-fields.php:1870
7144
  msgid "You can only upload one image"
7145
  msgstr ""
7146
 
7147
- #: includes/core/class-fields.php:1902
7148
  msgid "Sorry this is not a valid file."
7149
  msgstr ""
7150
 
7151
- #: includes/core/class-fields.php:1905
7152
  msgid "This file is too large!"
7153
  msgstr ""
7154
 
7155
- #: includes/core/class-fields.php:1908
7156
  msgid "This file is too small!"
7157
  msgstr ""
7158
 
7159
- #: includes/core/class-fields.php:1911
7160
  msgid "You can only upload one file"
7161
  msgstr ""
7162
 
7163
- #: includes/core/class-fields.php:2477
7164
  msgid "Current Password"
7165
  msgstr ""
7166
 
7167
- #: includes/core/class-fields.php:2508
7168
  msgid "New Password"
7169
  msgstr ""
7170
 
7171
- #: includes/core/class-fields.php:2551
7172
- #: includes/core/class-fields.php:2570
7173
- #: includes/core/class-fields.php:2572
7174
  msgid "Confirm %s"
7175
  msgstr ""
7176
 
7177
- #: includes/core/class-fields.php:2817
7178
  msgid "Upload Photo"
7179
  msgstr ""
7180
 
7181
- #: includes/core/class-fields.php:2844
7182
- #: includes/core/class-fields.php:2877
7183
  #: includes/core/um-actions-profile.php:1075
7184
  msgid "Change photo"
7185
  msgstr ""
7186
 
7187
- #: includes/core/class-fields.php:2877
7188
- #: includes/core/class-fields.php:2984
7189
  msgid "Processing..."
7190
  msgstr ""
7191
 
7192
- #: includes/core/class-fields.php:2902
7193
  msgid "Upload File"
7194
  msgstr ""
7195
 
7196
- #: includes/core/class-fields.php:2946
7197
  #: includes/core/um-filters-fields.php:330
7198
  msgid "This file has been removed."
7199
  msgstr ""
7200
 
7201
- #: includes/core/class-fields.php:2950
7202
  msgid "Change file"
7203
  msgstr ""
7204
 
7205
- #: includes/core/class-fields.php:2984
7206
  msgid "Save"
7207
  msgstr ""
7208
 
7209
- #: includes/core/class-fields.php:4571
7210
  msgid "Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some information!"
7211
  msgstr ""
7212
 
7213
- #: includes/core/class-fields.php:4573
7214
  msgid "This user has not added any information to their profile yet."
7215
  msgstr ""
7216
 
@@ -7274,8 +7280,8 @@ msgstr ""
7274
  msgid "Hello, spam bot!"
7275
  msgstr ""
7276
 
7277
- #: includes/core/class-mail.php:619
7278
- #: includes/core/class-password.php:707
7279
  #: includes/core/class-profile.php:517
7280
  msgid "Your set password"
7281
  msgstr ""
@@ -7378,38 +7384,54 @@ msgstr ""
7378
  msgid "You have reached the limit for requesting password change for this user already. Contact support if you cannot open the email"
7379
  msgstr ""
7380
 
7381
- #: includes/core/class-password.php:530
 
 
 
 
7382
  msgid "You must enter a new password"
7383
  msgstr ""
7384
 
7385
- #: includes/core/class-password.php:543
7386
  #: includes/core/um-actions-account.php:67
7387
  #: includes/core/um-actions-register.php:277
7388
  msgid "Passwords may not contain the character \"\\\"."
7389
  msgstr ""
7390
 
7391
- #: includes/core/class-password.php:553
7392
- #: includes/core/um-actions-account.php:97
7393
  msgid "Your password must contain at least %d characters"
7394
  msgstr ""
7395
 
7396
- #: includes/core/class-password.php:557
7397
- #: includes/core/um-actions-account.php:101
7398
  msgid "Your password must contain less than %d characters"
7399
  msgstr ""
7400
 
7401
- #: includes/core/class-password.php:561
7402
- #: includes/core/um-actions-account.php:105
7403
  #: includes/core/um-actions-form.php:625
 
 
 
 
 
 
 
 
 
 
 
 
7404
  msgid "Your password must contain at least one lowercase letter, one capital letter and one number"
7405
  msgstr ""
7406
 
7407
- #: includes/core/class-password.php:566
7408
  msgid "You must confirm your new password"
7409
  msgstr ""
7410
 
7411
- #: includes/core/class-password.php:570
7412
- #: includes/core/um-actions-form.php:634
7413
  msgid "Your passwords do not match"
7414
  msgstr ""
7415
 
@@ -7502,19 +7524,19 @@ msgstr ""
7502
  msgid "This file type is not recognized."
7503
  msgstr ""
7504
 
7505
- #: includes/core/class-user.php:941
7506
  msgid "Ultimate Member Role"
7507
  msgstr ""
7508
 
7509
- #: includes/core/class-user.php:944
7510
  msgid "&mdash; No role for Ultimate Member &mdash;"
7511
  msgstr ""
7512
 
7513
- #: includes/core/class-user.php:1153
7514
  msgid "Membership Rejected"
7515
  msgstr ""
7516
 
7517
- #: includes/core/class-user.php:1157
7518
  msgid "Membership Inactive"
7519
  msgstr ""
7520
 
@@ -7580,14 +7602,14 @@ msgid "Are you hacking? Please try again!"
7580
  msgstr ""
7581
 
7582
  #: includes/core/um-actions-account.php:29
7583
- #: includes/core/um-actions-account.php:160
7584
  msgid "You must enter your password"
7585
  msgstr ""
7586
 
7587
  #: includes/core/um-actions-account.php:32
7588
  #: includes/core/um-actions-account.php:75
7589
  #: includes/core/um-actions-account.php:79
7590
- #: includes/core/um-actions-account.php:163
7591
  msgid "This is not your password"
7592
  msgstr ""
7593
 
@@ -7603,117 +7625,117 @@ msgstr ""
7603
  msgid "Your new password does not match"
7604
  msgstr ""
7605
 
7606
- #: includes/core/um-actions-account.php:135
7607
  msgid "You must provide your first name"
7608
  msgstr ""
7609
 
7610
- #: includes/core/um-actions-account.php:139
7611
  msgid "You must provide your last name"
7612
  msgstr ""
7613
 
7614
- #: includes/core/um-actions-account.php:145
7615
  msgid "You must provide your e-mail"
7616
  msgstr ""
7617
 
7618
- #: includes/core/um-actions-account.php:149
7619
- #: includes/core/um-actions-account.php:153
7620
  msgid "Please provide a valid e-mail"
7621
  msgstr ""
7622
 
7623
- #: includes/core/um-actions-account.php:511
7624
  msgid "Select what email notifications you want to receive"
7625
  msgstr ""
7626
 
7627
- #: includes/core/um-actions-account.php:573
7628
  msgid "Download your data"
7629
  msgstr ""
7630
 
7631
- #: includes/core/um-actions-account.php:575
7632
  msgid "You can request a file with the information that we believe is most relevant and useful to you."
7633
  msgstr ""
7634
 
7635
- #: includes/core/um-actions-account.php:595
7636
  msgid "You could download your previous data:"
7637
  msgstr ""
7638
 
7639
- #: includes/core/um-actions-account.php:596
7640
  msgid "Download Personal Data"
7641
  msgstr ""
7642
 
7643
- #: includes/core/um-actions-account.php:597
7644
  msgid "You could send a new request for an export of personal your data."
7645
  msgstr ""
7646
 
7647
- #: includes/core/um-actions-account.php:613
7648
- #: includes/core/um-actions-account.php:766
7649
  msgid "A confirmation email has been sent to your email. Click the link within the email to confirm your export request."
7650
  msgstr ""
7651
 
7652
- #: includes/core/um-actions-account.php:615
7653
  msgid "The administrator has not yet approved downloading the data. Please expect an email with a link to your data."
7654
  msgstr ""
7655
 
7656
- #: includes/core/um-actions-account.php:620
7657
  msgid "Enter your current password to confirm a new export of your personal data."
7658
  msgstr ""
7659
 
7660
- #: includes/core/um-actions-account.php:625
7661
- #: includes/core/um-actions-account.php:697
7662
  msgid "You must enter a password"
7663
  msgstr ""
7664
 
7665
- #: includes/core/um-actions-account.php:633
7666
  msgid "To export of your personal data, click the button below."
7667
  msgstr ""
7668
 
7669
- #: includes/core/um-actions-account.php:640
7670
  msgid "Request data"
7671
  msgstr ""
7672
 
7673
- #: includes/core/um-actions-account.php:649
7674
  msgid "Erase of your data"
7675
  msgstr ""
7676
 
7677
- #: includes/core/um-actions-account.php:651
7678
  msgid "You can request erasing of the data that we have about you."
7679
  msgstr ""
7680
 
7681
- #: includes/core/um-actions-account.php:670
7682
  msgid "Your personal data has been deleted."
7683
  msgstr ""
7684
 
7685
- #: includes/core/um-actions-account.php:671
7686
  msgid "You could send a new request for deleting your personal data."
7687
  msgstr ""
7688
 
7689
- #: includes/core/um-actions-account.php:687
7690
- #: includes/core/um-actions-account.php:768
7691
  msgid "A confirmation email has been sent to your email. Click the link within the email to confirm your deletion request."
7692
  msgstr ""
7693
 
7694
- #: includes/core/um-actions-account.php:689
7695
  msgid "The administrator has not yet approved deleting your data. Please expect an email with a link to your data."
7696
  msgstr ""
7697
 
7698
- #: includes/core/um-actions-account.php:694
7699
  msgid "Enter your current password to confirm the erasure of your personal data."
7700
  msgstr ""
7701
 
7702
- #: includes/core/um-actions-account.php:705
7703
  msgid "Require erasure of your personal data, click on the button below."
7704
  msgstr ""
7705
 
7706
- #: includes/core/um-actions-account.php:712
7707
  msgid "Request data erase"
7708
  msgstr ""
7709
 
7710
- #: includes/core/um-actions-account.php:726
7711
- #: includes/core/um-actions-account.php:758
7712
  msgid "Wrong request."
7713
  msgstr ""
7714
 
7715
- #: includes/core/um-actions-account.php:738
7716
- #: includes/core/um-actions-account.php:745
7717
  msgid "The password you entered is incorrect."
7718
  msgstr ""
7719
 
@@ -7788,114 +7810,114 @@ msgstr ""
7788
  msgid "You can not use HTML tags here"
7789
  msgstr ""
7790
 
7791
- #: includes/core/um-actions-form.php:631
7792
  msgid "Please confirm your password"
7793
  msgstr ""
7794
 
7795
- #: includes/core/um-actions-form.php:640
7796
  msgid "Please select at least %s choices"
7797
  msgstr ""
7798
 
7799
- #: includes/core/um-actions-form.php:646
7800
  msgid "You can only select up to %s choices"
7801
  msgstr ""
7802
 
7803
- #: includes/core/um-actions-form.php:652
7804
  msgid "Minimum number limit is %s"
7805
  msgstr ""
7806
 
7807
- #: includes/core/um-actions-form.php:658
7808
  msgid "Maximum number limit is %s"
7809
  msgstr ""
7810
 
7811
- #: includes/core/um-actions-form.php:694
7812
  msgid "Please enter numbers only in this field"
7813
  msgstr ""
7814
 
7815
- #: includes/core/um-actions-form.php:700
7816
  msgid "Please enter a valid phone number"
7817
  msgstr ""
7818
 
7819
- #: includes/core/um-actions-form.php:706
7820
- #: includes/core/um-actions-form.php:712
7821
- #: includes/core/um-actions-form.php:718
7822
- #: includes/core/um-actions-form.php:724
7823
- #: includes/core/um-actions-form.php:730
7824
- #: includes/core/um-actions-form.php:743
7825
- #: includes/core/um-actions-form.php:749
7826
- #: includes/core/um-actions-form.php:755
7827
  msgid "Please enter a valid %s username or profile URL"
7828
  msgstr ""
7829
 
7830
- #: includes/core/um-actions-form.php:737
7831
  msgid "Please enter a valid %s profile URL"
7832
  msgstr ""
7833
 
7834
- #: includes/core/um-actions-form.php:761
7835
  msgid "Please enter a valid Discord ID"
7836
  msgstr ""
7837
 
7838
- #: includes/core/um-actions-form.php:767
7839
  msgid "Please enter a valid URL"
7840
  msgstr ""
7841
 
7842
- #: includes/core/um-actions-form.php:774
7843
  msgid "You must provide a username"
7844
  msgstr ""
7845
 
7846
- #: includes/core/um-actions-form.php:776
7847
- #: includes/core/um-actions-form.php:790
7848
  msgid "The username you entered is incorrect"
7849
  msgstr ""
7850
 
7851
- #: includes/core/um-actions-form.php:778
7852
  msgid "Username cannot be an email"
7853
  msgstr ""
7854
 
7855
- #: includes/core/um-actions-form.php:780
7856
- #: includes/core/um-actions-form.php:794
7857
  msgid "Your username contains invalid characters"
7858
  msgstr ""
7859
 
7860
- #: includes/core/um-actions-form.php:788
7861
  msgid "You must provide a username or email"
7862
  msgstr ""
7863
 
7864
- #: includes/core/um-actions-form.php:792
7865
- #: includes/core/um-actions-form.php:814
7866
- #: includes/core/um-actions-form.php:816
7867
- #: includes/core/um-actions-form.php:818
7868
  #: includes/core/um-actions-form.php:826
7869
- #: includes/core/um-actions-form.php:828
7870
- #: includes/core/um-actions-form.php:835
 
7871
  msgid "The email you entered is incorrect"
7872
  msgstr ""
7873
 
7874
- #: includes/core/um-actions-form.php:812
7875
  msgid "You must provide your email"
7876
  msgstr ""
7877
 
7878
- #: includes/core/um-actions-form.php:820
7879
  msgid "Your email contains invalid characters"
7880
  msgstr ""
7881
 
7882
- #: includes/core/um-actions-form.php:850
7883
  msgid "This is not a valid email"
7884
  msgstr ""
7885
 
7886
- #: includes/core/um-actions-form.php:869
7887
  msgid "You must provide a unique value"
7888
  msgstr ""
7889
 
7890
- #: includes/core/um-actions-form.php:879
7891
  msgid "You must provide alphabetic letters"
7892
  msgstr ""
7893
 
7894
- #: includes/core/um-actions-form.php:891
7895
  msgid "You must provide lowercase letters."
7896
  msgstr ""
7897
 
7898
- #: includes/core/um-actions-form.php:909
7899
  msgid "Your user description must contain less than %s characters"
7900
  msgstr ""
7901
 
@@ -7916,20 +7938,20 @@ msgid "Please enter your password"
7916
  msgstr ""
7917
 
7918
  #: includes/core/um-actions-login.php:59
7919
- #: includes/core/um-actions-login.php:68
7920
- #: includes/core/um-actions-login.php:73
7921
  msgid "Password is incorrect. Please try again."
7922
  msgstr ""
7923
 
7924
- #: includes/core/um-actions-login.php:192
7925
  msgid "This action has been prevented for security measures."
7926
  msgstr ""
7927
 
7928
- #: includes/core/um-actions-login.php:420
7929
  msgid "Keep me signed in"
7930
  msgstr ""
7931
 
7932
- #: includes/core/um-actions-login.php:464
7933
  msgid "Forgot your password?"
7934
  msgstr ""
7935
 
2
  # This file is distributed under the same license as the Ultimate Member plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Ultimate Member 2.5.2\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ultimate-member\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-12-14T14:22:38+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.7.1\n"
15
  "X-Domain: ultimate-member\n"
17
  #. Plugin Name of the plugin
18
  #. Author of the plugin
19
  #: includes/admin/core/class-admin-menu.php:147
20
+ #: includes/core/class-user.php:879
21
  msgid "Ultimate Member"
22
  msgstr ""
23
 
50
  msgstr ""
51
 
52
  #: includes/admin/class-admin.php:1881
53
+ #: includes/admin/core/class-admin-settings.php:1899
54
  msgid "Settings"
55
  msgstr ""
56
 
121
  #: includes/admin/core/class-admin-builder.php:776
122
  #: includes/admin/core/class-admin-dragdrop.php:33
123
  #: includes/admin/core/class-admin-menu.php:106
124
+ #: includes/core/class-fields.php:4866
125
  msgid "Please login as administrator"
126
  msgstr ""
127
 
247
 
248
  #: includes/admin/core/class-admin-columns.php:186
249
  #: includes/admin/core/class-admin-columns.php:219
250
+ #: includes/admin/core/class-admin-settings.php:1086
251
+ #: includes/admin/core/class-admin-settings.php:1189
252
  #: includes/admin/core/list-tables/roles-list-table.php:383
253
  #: includes/admin/core/list-tables/roles-list-table.php:391
254
  #: includes/admin/templates/form/login_customize.php:27
271
  #: includes/core/class-builtin.php:1266
272
  #: includes/core/class-builtin.php:1282
273
  #: includes/core/class-builtin.php:1285
274
+ #: includes/core/um-actions-account.php:347
275
  msgid "No"
276
  msgstr ""
277
 
278
  #: includes/admin/core/class-admin-columns.php:186
279
  #: includes/admin/core/class-admin-columns.php:219
280
+ #: includes/admin/core/class-admin-settings.php:1087
281
+ #: includes/admin/core/class-admin-settings.php:1190
282
  #: includes/admin/core/list-tables/roles-list-table.php:383
283
  #: includes/admin/core/list-tables/roles-list-table.php:391
284
  #: includes/admin/core/packages/2.1.3-beta3/functions.php:75
302
  #: includes/core/class-builtin.php:1248
303
  #: includes/core/class-builtin.php:1267
304
  #: includes/core/class-builtin.php:1284
305
+ #: includes/core/class-user.php:429
306
  #: includes/core/class-user.php:430
307
+ #: includes/core/um-actions-account.php:342
 
308
  msgid "Yes"
309
  msgstr ""
310
 
321
  #: includes/core/class-builtin.php:751
322
  #: includes/core/class-builtin.php:1291
323
  #: includes/core/class-builtin.php:1294
324
+ #: includes/core/um-actions-account.php:638
325
+ #: includes/core/um-actions-account.php:710
326
  msgid "Password"
327
  msgstr ""
328
 
522
  msgstr ""
523
 
524
  #: includes/admin/core/class-admin-menu.php:206
525
+ #: includes/admin/core/class-admin-settings.php:1753
526
  msgid "Extensions"
527
  msgstr ""
528
 
1322
  msgstr ""
1323
 
1324
  #: includes/admin/core/class-admin-metabox.php:2017
1325
+ #: includes/core/class-fields.php:1882
1326
+ #: includes/core/class-fields.php:1923
1327
+ #: includes/core/class-fields.php:2831
1328
+ #: includes/core/class-fields.php:2921
1329
  msgid "Upload"
1330
  msgstr ""
1331
 
1524
 
1525
  #: includes/admin/core/class-admin-metabox.php:2295
1526
  #: includes/class-config.php:134
1527
+ #: includes/class-config.php:803
1528
  msgid "Members"
1529
  msgstr ""
1530
 
1792
  msgstr ""
1793
 
1794
  #: includes/admin/core/class-admin-notices.php:714
1795
+ #: includes/admin/core/class-admin-settings.php:2181
1796
  msgid "Security Check"
1797
  msgstr ""
1798
 
1816
  msgid "%s page"
1817
  msgstr ""
1818
 
 
1819
  #: includes/admin/core/class-admin-settings.php:273
1820
  msgid "Add page ID"
1821
  msgstr ""
1839
  msgid "Who can see %s Tab?"
1840
  msgstr ""
1841
 
 
1842
  #: includes/admin/core/class-admin-settings.php:354
1843
  msgid "Select which users can view this tab."
1844
  msgstr ""
1984
  msgid "If the update was successful, you will see a corresponding message. Otherwise, contact technical support if the update failed."
1985
  msgstr ""
1986
 
1987
+ #: includes/admin/core/class-admin-settings.php:965
1988
  msgid "General"
1989
  msgstr ""
1990
 
1991
+ #: includes/admin/core/class-admin-settings.php:968
1992
  msgid "Pages"
1993
  msgstr ""
1994
 
1995
+ #: includes/admin/core/class-admin-settings.php:972
1996
  #: includes/admin/templates/dashboard/users.php:15
1997
  msgid "Users"
1998
  msgstr ""
1999
 
2000
+ #: includes/admin/core/class-admin-settings.php:978
2001
  msgid "Profile Permalink Base"
2002
  msgstr ""
2003
 
2004
  #. translators: %s: Profile page URL
2005
+ #: includes/admin/core/class-admin-settings.php:980
2006
  msgid "Here you can control the permalink structure of the user profile URL globally e.g. %s<strong>username</strong>/"
2007
  msgstr ""
2008
 
2009
+ #: includes/admin/core/class-admin-settings.php:982
2010
+ #: includes/admin/core/class-admin-settings.php:999
2011
  #: includes/core/class-builtin.php:724
2012
  #: includes/core/class-builtin.php:727
2013
  #: includes/core/class-member-directory.php:300
2014
  msgid "Username"
2015
  msgstr ""
2016
 
2017
+ #: includes/admin/core/class-admin-settings.php:983
2018
  msgid "First and Last Name with '.'"
2019
  msgstr ""
2020
 
2021
+ #: includes/admin/core/class-admin-settings.php:984
2022
  msgid "First and Last Name with '-'"
2023
  msgstr ""
2024
 
2025
+ #: includes/admin/core/class-admin-settings.php:985
2026
  msgid "First and Last Name with '+'"
2027
  msgstr ""
2028
 
2029
+ #: includes/admin/core/class-admin-settings.php:986
2030
  msgid "User ID"
2031
  msgstr ""
2032
 
2033
+ #: includes/admin/core/class-admin-settings.php:988
2034
+ #: includes/admin/core/class-admin-settings.php:1007
2035
  msgid "Select..."
2036
  msgstr ""
2037
 
2038
+ #: includes/admin/core/class-admin-settings.php:994
2039
  msgid "User Display Name"
2040
  msgstr ""
2041
 
2042
+ #: includes/admin/core/class-admin-settings.php:995
2043
  msgid "This is the name that will be displayed for users on the front end of your site. Default setting uses first/last name as display name if it exists"
2044
  msgstr ""
2045
 
2046
+ #: includes/admin/core/class-admin-settings.php:997
2047
  msgid "Default WP Display Name"
2048
  msgstr ""
2049
 
2050
+ #: includes/admin/core/class-admin-settings.php:998
2051
  #: includes/core/class-builtin.php:783
2052
  #: includes/core/class-builtin.php:786
2053
  #: includes/core/class-member-directory.php:301
2055
  msgid "Nickname"
2056
  msgstr ""
2057
 
2058
+ #: includes/admin/core/class-admin-settings.php:1000
2059
  msgid "First name & last name"
2060
  msgstr ""
2061
 
2062
+ #: includes/admin/core/class-admin-settings.php:1001
2063
  msgid "Last name & first name"
2064
  msgstr ""
2065
 
2066
+ #: includes/admin/core/class-admin-settings.php:1002
2067
  msgid "First name & first initial of last name"
2068
  msgstr ""
2069
 
2070
+ #: includes/admin/core/class-admin-settings.php:1003
2071
  msgid "First initial of first name & last name"
2072
  msgstr ""
2073
 
2074
+ #: includes/admin/core/class-admin-settings.php:1004
2075
  msgid "First name only"
2076
  msgstr ""
2077
 
2078
+ #: includes/admin/core/class-admin-settings.php:1005
2079
  msgid "Custom field(s)"
2080
  msgstr ""
2081
 
2082
+ #: includes/admin/core/class-admin-settings.php:1012
2083
  msgid "Display Name Custom Field(s)"
2084
  msgstr ""
2085
 
2086
+ #: includes/admin/core/class-admin-settings.php:1013
2087
  msgid "Specify the custom field meta key or custom fields seperated by comma that you want to use to display users name on the frontend of your site"
2088
  msgstr ""
2089
 
2090
+ #: includes/admin/core/class-admin-settings.php:1019
2091
  msgid "Automatically redirect author page to their profile?"
2092
  msgstr ""
2093
 
2094
+ #: includes/admin/core/class-admin-settings.php:1020
2095
  msgid "If enabled, author pages will automatically redirect to the user's profile page"
2096
  msgstr ""
2097
 
2098
+ #: includes/admin/core/class-admin-settings.php:1025
2099
  msgid "Enable Members Directory"
2100
  msgstr ""
2101
 
2102
+ #: includes/admin/core/class-admin-settings.php:1026
2103
  msgid "Control whether to enable or disable member directories on this site"
2104
  msgstr ""
2105
 
2106
+ #: includes/admin/core/class-admin-settings.php:1031
2107
  msgid "Use Gravatars?"
2108
  msgstr ""
2109
 
2110
+ #: includes/admin/core/class-admin-settings.php:1032
2111
  msgid "Do you want to use gravatars instead of the default plugin profile photo (If the user did not upload a custom profile photo / avatar)"
2112
  msgstr ""
2113
 
2114
+ #: includes/admin/core/class-admin-settings.php:1037
2115
  msgid "Use Gravatar builtin image"
2116
  msgstr ""
2117
 
2118
+ #: includes/admin/core/class-admin-settings.php:1038
2119
  msgid "Gravatar has a number of built in options which you can also use as defaults"
2120
  msgstr ""
2121
 
2122
+ #: includes/admin/core/class-admin-settings.php:1040
2123
+ #: includes/admin/core/class-admin-settings.php:1650
2124
  #: includes/admin/templates/form/login_settings.php:19
2125
  #: includes/admin/templates/form/register_customize.php:9
2126
  #: includes/admin/templates/form/register_customize.php:42
2128
  msgid "Default"
2129
  msgstr ""
2130
 
2131
+ #: includes/admin/core/class-admin-settings.php:1041
2132
  msgid "404 ( File Not Found response )"
2133
  msgstr ""
2134
 
2135
+ #: includes/admin/core/class-admin-settings.php:1042
2136
  msgid "Mystery Man"
2137
  msgstr ""
2138
 
2139
+ #: includes/admin/core/class-admin-settings.php:1043
2140
  msgid "Identicon"
2141
  msgstr ""
2142
 
2143
+ #: includes/admin/core/class-admin-settings.php:1044
2144
  msgid "Monsterid"
2145
  msgstr ""
2146
 
2147
+ #: includes/admin/core/class-admin-settings.php:1045
2148
  msgid "Wavatar"
2149
  msgstr ""
2150
 
2151
+ #: includes/admin/core/class-admin-settings.php:1046
2152
  msgid "Retro"
2153
  msgstr ""
2154
 
2155
+ #: includes/admin/core/class-admin-settings.php:1047
2156
  msgid "Blank ( a transparent PNG image )"
2157
  msgstr ""
2158
 
2159
+ #: includes/admin/core/class-admin-settings.php:1055
2160
  msgid "Use Default plugin avatar as Gravatar's Default avatar"
2161
  msgstr ""
2162
 
2163
+ #: includes/admin/core/class-admin-settings.php:1056
2164
  msgid "Do you want to use the plugin default avatar instead of the gravatar default photo (If the user did not upload a custom profile photo / avatar)"
2165
  msgstr ""
2166
 
2167
+ #: includes/admin/core/class-admin-settings.php:1062
2168
  msgid "Require a strong password?"
2169
  msgstr ""
2170
 
2171
+ #: includes/admin/core/class-admin-settings.php:1063
2172
  msgid "Enable or disable a strong password rules common for all Ultimate Member forms."
2173
  msgstr ""
2174
 
2175
+ #: includes/admin/core/class-admin-settings.php:1068
2176
  msgid "Password minimum length"
2177
  msgstr ""
2178
 
2179
+ #: includes/admin/core/class-admin-settings.php:1069
2180
  msgid "If you want to enable a minimum number of characters to be in password. User password field in the UM forms has own settings for that. Leave empty to use default value 8"
2181
  msgstr ""
2182
 
2183
+ #: includes/admin/core/class-admin-settings.php:1075
2184
  msgid "Password maximum length"
2185
  msgstr ""
2186
 
2187
+ #: includes/admin/core/class-admin-settings.php:1076
2188
  msgid "If you want to enable a maximum number of characters to be in password. User password field in the UM forms has own settings for that. Leave empty to use default value 30"
2189
  msgstr ""
2190
 
2191
+ #: includes/admin/core/class-admin-settings.php:1083
2192
  #: includes/admin/templates/role/profile.php:49
2193
  msgid "Avoid indexing profile by search engines"
2194
  msgstr ""
2195
 
2196
+ #: includes/admin/core/class-admin-settings.php:1084
2197
  msgid "Hides the profile page for robots. This setting can be overridden by individual role settings."
2198
  msgstr ""
2199
 
2200
+ #: includes/admin/core/class-admin-settings.php:1093
2201
  msgid "Activation link lifetime"
2202
  msgstr ""
2203
 
2204
+ #: includes/admin/core/class-admin-settings.php:1094
2205
  msgid "How long does an activation link live in seconds? Leave empty for endless links."
2206
  msgstr ""
2207
 
2208
+ #: includes/admin/core/class-admin-settings.php:1100
2209
  #: includes/class-config.php:136
2210
+ #: includes/class-config.php:805
2211
  #: includes/core/class-account.php:97
2212
  #: includes/admin/assets/js/um-admin-blocks-shortcode.js:305
2213
  #: includes/admin/assets/js/um-admin-blocks-shortcode.js:365
2214
  msgid "Account"
2215
  msgstr ""
2216
 
2217
+ #: includes/admin/core/class-admin-settings.php:1105
2218
  msgid "Password Account Tab"
2219
  msgstr ""
2220
 
2221
+ #: includes/admin/core/class-admin-settings.php:1106
2222
  msgid "Enable/disable the Password account tab in account page"
2223
  msgstr ""
2224
 
2225
+ #: includes/admin/core/class-admin-settings.php:1111
2226
  msgid "Privacy Account Tab"
2227
  msgstr ""
2228
 
2229
+ #: includes/admin/core/class-admin-settings.php:1112
2230
  msgid "Enable/disable the Privacy account tab in account page"
2231
  msgstr ""
2232
 
2233
+ #: includes/admin/core/class-admin-settings.php:1117
2234
  msgid "Notifications Account Tab"
2235
  msgstr ""
2236
 
2237
+ #: includes/admin/core/class-admin-settings.php:1118
2238
  msgid "Enable/disable the Notifications account tab in account page"
2239
  msgstr ""
2240
 
2241
+ #: includes/admin/core/class-admin-settings.php:1123
2242
  msgid "Delete Account Tab"
2243
  msgstr ""
2244
 
2245
+ #: includes/admin/core/class-admin-settings.php:1124
2246
  msgid "Enable/disable the Delete account tab in account page"
2247
  msgstr ""
2248
 
2249
+ #: includes/admin/core/class-admin-settings.php:1129
2250
  msgid "Account Deletion Custom Text"
2251
  msgstr ""
2252
 
2253
+ #: includes/admin/core/class-admin-settings.php:1130
2254
  msgid "This is custom text that will be displayed to users before they delete their accounts from your site when password is required."
2255
  msgstr ""
2256
 
2257
+ #: includes/admin/core/class-admin-settings.php:1138
2258
  msgid "Account Deletion without password Custom Text"
2259
  msgstr ""
2260
 
2261
+ #: includes/admin/core/class-admin-settings.php:1139
2262
  msgid "This is custom text that will be displayed to users before they delete their accounts from your site when password isn't required."
2263
  msgstr ""
2264
 
2265
+ #: includes/admin/core/class-admin-settings.php:1147
2266
  msgid "Add a First & Last Name fields"
2267
  msgstr ""
2268
 
2269
+ #: includes/admin/core/class-admin-settings.php:1148
2270
  msgid "Whether to enable these fields on the user account page by default or hide them."
2271
  msgstr ""
2272
 
2273
+ #: includes/admin/core/class-admin-settings.php:1153
2274
  msgid "Disable First & Last Name fields"
2275
  msgstr ""
2276
 
2277
+ #: includes/admin/core/class-admin-settings.php:1154
2278
  msgid "Whether to allow users changing their first and last name in account page."
2279
  msgstr ""
2280
 
2281
+ #: includes/admin/core/class-admin-settings.php:1160
2282
  msgid "Require First & Last Name"
2283
  msgstr ""
2284
 
2285
+ #: includes/admin/core/class-admin-settings.php:1161
2286
  msgid "Require first and last name?"
2287
  msgstr ""
2288
 
2289
+ #: includes/admin/core/class-admin-settings.php:1167
2290
  msgid "Allow users to change e-mail"
2291
  msgstr ""
2292
 
2293
+ #: includes/admin/core/class-admin-settings.php:1168
2294
  msgid "Whether to allow users changing their email in account page."
2295
  msgstr ""
2296
 
2297
+ #: includes/admin/core/class-admin-settings.php:1173
2298
  msgid "Password is required?"
2299
  msgstr ""
2300
 
2301
+ #: includes/admin/core/class-admin-settings.php:1174
2302
  msgid "Password is required to save account data."
2303
  msgstr ""
2304
 
2305
+ #: includes/admin/core/class-admin-settings.php:1179
2306
  msgid "Allow users to hide their profiles from directory"
2307
  msgstr ""
2308
 
2309
+ #: includes/admin/core/class-admin-settings.php:1180
2310
  msgid "Whether to allow users changing their profile visibility from member directory in account page."
2311
  msgstr ""
2312
 
2313
+ #: includes/admin/core/class-admin-settings.php:1186
2314
  msgid "Hide profiles from directory by default"
2315
  msgstr ""
2316
 
2317
+ #: includes/admin/core/class-admin-settings.php:1187
2318
  msgid "Set default value for the \"Hide my profile from directory\" option"
2319
  msgstr ""
2320
 
2321
+ #: includes/admin/core/class-admin-settings.php:1198
2322
  msgid "Uploads"
2323
  msgstr ""
2324
 
2325
+ #: includes/admin/core/class-admin-settings.php:1204
2326
  msgid "Profile Photo Maximum File Size (bytes)"
2327
  msgstr ""
2328
 
2329
+ #: includes/admin/core/class-admin-settings.php:1205
2330
  msgid "Sets a maximum size for the uploaded photo"
2331
  msgstr ""
2332
 
2333
+ #: includes/admin/core/class-admin-settings.php:1211
2334
  msgid "Cover Photo Maximum File Size (bytes)"
2335
  msgstr ""
2336
 
2337
+ #: includes/admin/core/class-admin-settings.php:1212
2338
  msgid "Sets a maximum size for the uploaded cover"
2339
  msgstr ""
2340
 
2341
+ #: includes/admin/core/class-admin-settings.php:1218
2342
  msgid "Profile Photo Thumbnail Sizes (px)"
2343
  msgstr ""
2344
 
2345
+ #: includes/admin/core/class-admin-settings.php:1219
2346
  msgid "Here you can define which thumbnail sizes will be created for each profile photo upload."
2347
  msgstr ""
2348
 
2349
+ #: includes/admin/core/class-admin-settings.php:1221
2350
+ #: includes/admin/core/class-admin-settings.php:1231
2351
  msgid "Add New Size"
2352
  msgstr ""
2353
 
2354
+ #: includes/admin/core/class-admin-settings.php:1228
2355
  msgid "Cover Photo Thumbnail Sizes (px)"
2356
  msgstr ""
2357
 
2358
+ #: includes/admin/core/class-admin-settings.php:1229
2359
  msgid "Here you can define which thumbnail sizes will be created for each cover photo upload."
2360
  msgstr ""
2361
 
2362
+ #: includes/admin/core/class-admin-settings.php:1237
2363
  msgid "Change image orientation"
2364
  msgstr ""
2365
 
2366
+ #: includes/admin/core/class-admin-settings.php:1238
2367
  msgid "Rotate image to and use orientation by the camera EXIF data."
2368
  msgstr ""
2369
 
2370
+ #: includes/admin/core/class-admin-settings.php:1244
2371
  msgid "Image Quality"
2372
  msgstr ""
2373
 
2374
+ #: includes/admin/core/class-admin-settings.php:1245
2375
  msgid "Quality is used to determine quality of image uploads, and ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file). The default range is 60."
2376
  msgstr ""
2377
 
2378
+ #: includes/admin/core/class-admin-settings.php:1252
2379
  msgid "Image Upload Maximum Width (px)"
2380
  msgstr ""
2381
 
2382
+ #: includes/admin/core/class-admin-settings.php:1253
2383
  msgid "Any image upload above this width will be resized to this limit automatically."
2384
  msgstr ""
2385
 
2386
+ #: includes/admin/core/class-admin-settings.php:1260
2387
  msgid "Cover Photo Minimum Width (px)"
2388
  msgstr ""
2389
 
2390
+ #: includes/admin/core/class-admin-settings.php:1261
2391
  msgid "This will be the minimum width for cover photo uploads"
2392
  msgstr ""
2393
 
2394
+ #: includes/admin/core/class-admin-settings.php:1268
2395
  msgid "Access"
2396
  msgstr ""
2397
 
2398
+ #: includes/admin/core/class-admin-settings.php:1271
2399
  msgid "Restriction Content"
2400
  msgstr ""
2401
 
2402
+ #: includes/admin/core/class-admin-settings.php:1275
2403
  msgid "Other"
2404
  msgstr ""
2405
 
2406
+ #: includes/admin/core/class-admin-settings.php:1280
2407
  msgid "Enable the Reset Password Limit?"
2408
  msgstr ""
2409
 
2410
+ #: includes/admin/core/class-admin-settings.php:1285
2411
  msgid "Reset Password Limit"
2412
  msgstr ""
2413
 
2414
+ #: includes/admin/core/class-admin-settings.php:1286
2415
  msgid "Set the maximum reset password limit. If reached the maximum limit, user will be locked from using this."
2416
  msgstr ""
2417
 
2418
+ #: includes/admin/core/class-admin-settings.php:1294
2419
+ msgid "Change Password request limit"
2420
+ msgstr ""
2421
+
2422
+ #: includes/admin/core/class-admin-settings.php:1295
2423
+ msgid "This option adds rate limit when submitting the change password form in the Account page. Users are only allowed to submit 1 request per 30 minutes to prevent from any brute-force attacks or password guessing with the form."
2424
+ msgstr ""
2425
+
2426
+ #: includes/admin/core/class-admin-settings.php:1300
2427
  msgid "Blocked Email Addresses (Enter one email per line)"
2428
  msgstr ""
2429
 
2430
+ #: includes/admin/core/class-admin-settings.php:1301
2431
  msgid "This will block the specified e-mail addresses from being able to sign up or sign in to your site. To block an entire domain, use something like *@domain.com"
2432
  msgstr ""
2433
 
2434
+ #: includes/admin/core/class-admin-settings.php:1306
2435
  msgid "Blacklist Words (Enter one word per line)"
2436
  msgstr ""
2437
 
2438
+ #: includes/admin/core/class-admin-settings.php:1307
2439
  msgid "This option lets you specify blacklist of words to prevent anyone from signing up with such a word as their username"
2440
  msgstr ""
2441
 
2442
+ #: includes/admin/core/class-admin-settings.php:1312
2443
  msgid "Allowed Choice Callbacks (Enter one PHP function per line)"
2444
  msgstr ""
2445
 
2446
+ #: includes/admin/core/class-admin-settings.php:1313
2447
  msgid "This option lets you specify the choice callback functions to prevent anyone from using 3rd-party functions that may put your site at risk."
2448
  msgstr ""
2449
 
2450
+ #: includes/admin/core/class-admin-settings.php:1318
2451
  msgid "Allow external link redirect confirm"
2452
  msgstr ""
2453
 
2454
+ #: includes/admin/core/class-admin-settings.php:1319
2455
  msgid "Using JS.confirm alert when you go to an external link."
2456
  msgstr ""
2457
 
2458
+ #: includes/admin/core/class-admin-settings.php:1326
2459
  #: includes/admin/core/list-tables/emails-list-table.php:309
2460
  msgid "Email"
2461
  msgstr ""
2462
 
2463
+ #: includes/admin/core/class-admin-settings.php:1331
2464
  msgid "Admin E-mail Address"
2465
  msgstr ""
2466
 
2467
+ #: includes/admin/core/class-admin-settings.php:1332
2468
+ #: includes/admin/core/class-admin-settings.php:1344
2469
  msgid "e.g. admin@companyname.com"
2470
  msgstr ""
2471
 
2472
+ #: includes/admin/core/class-admin-settings.php:1337
2473
  msgid "Mail appears from"
2474
  msgstr ""
2475
 
2476
+ #: includes/admin/core/class-admin-settings.php:1338
2477
  msgid "e.g. Site Name"
2478
  msgstr ""
2479
 
2480
+ #: includes/admin/core/class-admin-settings.php:1343
2481
  msgid "Mail appears from address"
2482
  msgstr ""
2483
 
2484
+ #: includes/admin/core/class-admin-settings.php:1349
2485
  msgid "Use HTML for E-mails?"
2486
  msgstr ""
2487
 
2488
+ #: includes/admin/core/class-admin-settings.php:1350
2489
  msgid "If you plan use e-mails with HTML, please make sure that this option is enabled. Otherwise, HTML will be displayed as plain text."
2490
  msgstr ""
2491
 
2492
+ #: includes/admin/core/class-admin-settings.php:1355
2493
  msgid "Appearance"
2494
  msgstr ""
2495
 
2496
+ #: includes/admin/core/class-admin-settings.php:1358
2497
  #: includes/core/class-form.php:758
2498
  msgid "Profile"
2499
  msgstr ""
2500
 
2501
+ #: includes/admin/core/class-admin-settings.php:1363
2502
  msgid "Profile Default Template"
2503
  msgstr ""
2504
 
2505
+ #: includes/admin/core/class-admin-settings.php:1364
2506
  msgid "This will be the default template to output profile"
2507
  msgstr ""
2508
 
2509
+ #: includes/admin/core/class-admin-settings.php:1372
2510
  msgid "Profile Maximum Width"
2511
  msgstr ""
2512
 
2513
+ #: includes/admin/core/class-admin-settings.php:1374
2514
+ #: includes/admin/core/class-admin-settings.php:1582
2515
+ #: includes/admin/core/class-admin-settings.php:1672
2516
  msgid "The maximum width this shortcode can take from the page width"
2517
  msgstr ""
2518
 
2519
+ #: includes/admin/core/class-admin-settings.php:1380
2520
  msgid "Profile Area Maximum Width"
2521
  msgstr ""
2522
 
2523
+ #: includes/admin/core/class-admin-settings.php:1382
2524
  #: includes/admin/templates/form/profile_customize.php:76
2525
  msgid "The maximum width of the profile area inside profile (below profile header)"
2526
  msgstr ""
2527
 
2528
+ #: includes/admin/core/class-admin-settings.php:1388
2529
  msgid "Profile Field Icons"
2530
  msgstr ""
2531
 
2532
+ #: includes/admin/core/class-admin-settings.php:1389
2533
  msgid "This is applicable for edit mode only"
2534
  msgstr ""
2535
 
2536
+ #: includes/admin/core/class-admin-settings.php:1392
2537
+ #: includes/admin/core/class-admin-settings.php:1605
2538
+ #: includes/admin/core/class-admin-settings.php:1695
2539
  #: includes/admin/templates/form/login_customize.php:54
2540
  #: includes/admin/templates/form/profile_customize.php:87
2541
  #: includes/admin/templates/form/register_customize.php:68
2542
  msgid "Show inside text field"
2543
  msgstr ""
2544
 
2545
+ #: includes/admin/core/class-admin-settings.php:1393
2546
+ #: includes/admin/core/class-admin-settings.php:1606
2547
+ #: includes/admin/core/class-admin-settings.php:1696
2548
  #: includes/admin/templates/form/login_customize.php:55
2549
  #: includes/admin/templates/form/profile_customize.php:88
2550
  #: includes/admin/templates/form/register_customize.php:69
2551
  msgid "Show with label"
2552
  msgstr ""
2553
 
2554
+ #: includes/admin/core/class-admin-settings.php:1394
2555
+ #: includes/admin/core/class-admin-settings.php:1607
2556
+ #: includes/admin/core/class-admin-settings.php:1697
2557
  #: includes/admin/templates/form/login_customize.php:56
2558
  #: includes/admin/templates/form/profile_customize.php:89
2559
  #: includes/admin/templates/form/register_customize.php:70
2560
  msgid "Turn off"
2561
  msgstr ""
2562
 
2563
+ #: includes/admin/core/class-admin-settings.php:1401
2564
  msgid "Profile Primary Button Text"
2565
  msgstr ""
2566
 
2567
+ #: includes/admin/core/class-admin-settings.php:1403
2568
  msgid "The text that is used for updating profile button"
2569
  msgstr ""
2570
 
2571
+ #: includes/admin/core/class-admin-settings.php:1409
2572
  msgid "Profile Secondary Button"
2573
  msgstr ""
2574
 
2575
+ #: includes/admin/core/class-admin-settings.php:1411
2576
+ #: includes/admin/core/class-admin-settings.php:1624
2577
+ #: includes/admin/core/class-admin-settings.php:1714
2578
  msgid "Switch on/off the secondary button display in the form"
2579
  msgstr ""
2580
 
2581
+ #: includes/admin/core/class-admin-settings.php:1416
2582
  msgid "Profile Secondary Button Text"
2583
  msgstr ""
2584
 
2585
+ #: includes/admin/core/class-admin-settings.php:1418
2586
  msgid "The text that is used for cancelling update profile button"
2587
  msgstr ""
2588
 
2589
+ #: includes/admin/core/class-admin-settings.php:1425
2590
  msgid "Default Profile Photo"
2591
  msgstr ""
2592
 
2593
+ #: includes/admin/core/class-admin-settings.php:1426
2594
  msgid "You can change the default profile picture globally here. Please make sure that the photo is 300x300px."
2595
  msgstr ""
2596
 
2597
+ #: includes/admin/core/class-admin-settings.php:1427
2598
  msgid "Select Default Profile Photo"
2599
  msgstr ""
2600
 
2601
+ #: includes/admin/core/class-admin-settings.php:1437
2602
  msgid "Default Cover Photo"
2603
  msgstr ""
2604
 
2605
+ #: includes/admin/core/class-admin-settings.php:1438
2606
  msgid "You can change the default cover photo globally here. Please make sure that the default cover is large enough and respects the ratio you are using for cover photos."
2607
  msgstr ""
2608
 
2609
+ #: includes/admin/core/class-admin-settings.php:1439
2610
  msgid "Select Default Cover Photo"
2611
  msgstr ""
2612
 
2613
+ #: includes/admin/core/class-admin-settings.php:1444
2614
  #: includes/admin/templates/form/profile_customize.php:157
2615
  msgid "Disable Profile Photo Upload"
2616
  msgstr ""
2617
 
2618
+ #: includes/admin/core/class-admin-settings.php:1445
2619
  #: includes/admin/templates/form/profile_customize.php:158
2620
  msgid "Switch on/off the profile photo uploader"
2621
  msgstr ""
2622
 
2623
+ #: includes/admin/core/class-admin-settings.php:1451
2624
  #: includes/admin/templates/form/profile_customize.php:169
2625
  msgid "Profile Photo Size"
2626
  msgstr ""
2627
 
2628
+ #: includes/admin/core/class-admin-settings.php:1454
2629
  msgid "The global default of profile photo size. This can be overridden by individual form settings"
2630
  msgstr ""
2631
 
2632
+ #: includes/admin/core/class-admin-settings.php:1460
2633
  msgid "Profile Cover Photos"
2634
  msgstr ""
2635
 
2636
+ #: includes/admin/core/class-admin-settings.php:1462
2637
  msgid "Switch on/off the profile cover photos"
2638
  msgstr ""
2639
 
2640
+ #: includes/admin/core/class-admin-settings.php:1467
2641
  msgid "Profile Cover Size"
2642
  msgstr ""
2643
 
2644
+ #: includes/admin/core/class-admin-settings.php:1470
2645
  msgid "The global default width of cover photo size. This can be overridden by individual form settings"
2646
  msgstr ""
2647
 
2648
+ #: includes/admin/core/class-admin-settings.php:1477
2649
  msgid "Profile Cover Ratio"
2650
  msgstr ""
2651
 
2652
+ #: includes/admin/core/class-admin-settings.php:1478
2653
  msgid "Choose global ratio for cover photos of profiles"
2654
  msgstr ""
2655
 
2656
+ #: includes/admin/core/class-admin-settings.php:1492
2657
  msgid "Profile Header Meta Text Icon"
2658
  msgstr ""
2659
 
2660
+ #: includes/admin/core/class-admin-settings.php:1494
2661
  msgid "Display field icons for related user meta fields in header or not"
2662
  msgstr ""
2663
 
2664
+ #: includes/admin/core/class-admin-settings.php:1499
2665
  msgid "Show display name in profile header"
2666
  msgstr ""
2667
 
2668
+ #: includes/admin/core/class-admin-settings.php:1501
2669
  msgid "Switch on/off the user name on profile header"
2670
  msgstr ""
2671
 
2672
+ #: includes/admin/core/class-admin-settings.php:1506
2673
  msgid "Show social links in profile header"
2674
  msgstr ""
2675
 
2676
+ #: includes/admin/core/class-admin-settings.php:1508
2677
  msgid "Switch on/off the social links on profile header"
2678
  msgstr ""
2679
 
2680
+ #: includes/admin/core/class-admin-settings.php:1513
2681
  msgid "Show user description in header"
2682
  msgstr ""
2683
 
2684
+ #: includes/admin/core/class-admin-settings.php:1515
2685
  msgid "Switch on/off the user description on profile header"
2686
  msgstr ""
2687
 
2688
+ #: includes/admin/core/class-admin-settings.php:1520
2689
  msgid "Enable HTML support for user description"
2690
  msgstr ""
2691
 
2692
+ #: includes/admin/core/class-admin-settings.php:1521
2693
  msgid "Switch on/off to enable/disable support for html tags on user description."
2694
  msgstr ""
2695
 
2696
+ #: includes/admin/core/class-admin-settings.php:1526
2697
  msgid "User description maximum chars"
2698
  msgstr ""
2699
 
2700
+ #: includes/admin/core/class-admin-settings.php:1528
2701
  msgid "Maximum number of characters to allow in user description field in header."
2702
  msgstr ""
2703
 
2704
+ #: includes/admin/core/class-admin-settings.php:1535
2705
  msgid "Profile Header Menu Position"
2706
  msgstr ""
2707
 
2708
+ #: includes/admin/core/class-admin-settings.php:1537
2709
  msgid "For incompatible themes, please make the menu open from left instead of bottom by default."
2710
  msgstr ""
2711
 
2712
+ #: includes/admin/core/class-admin-settings.php:1539
2713
  msgid "Bottom of Icon"
2714
  msgstr ""
2715
 
2716
+ #: includes/admin/core/class-admin-settings.php:1540
2717
  msgid "Left of Icon (right for RTL)"
2718
  msgstr ""
2719
 
2720
+ #: includes/admin/core/class-admin-settings.php:1547
2721
  msgid "Show a custom message if profile is empty"
2722
  msgstr ""
2723
 
2724
+ #: includes/admin/core/class-admin-settings.php:1549
2725
  msgid "Switch on/off the custom message that appears when the profile is empty"
2726
  msgstr ""
2727
 
2728
+ #: includes/admin/core/class-admin-settings.php:1554
2729
  msgid "Show the emoticon"
2730
  msgstr ""
2731
 
2732
+ #: includes/admin/core/class-admin-settings.php:1556
2733
  msgid "Switch on/off the emoticon (sad face) that appears above the message"
2734
  msgstr ""
2735
 
2736
+ #: includes/admin/core/class-admin-settings.php:1562
2737
  msgid "Profile Menu"
2738
  msgstr ""
2739
 
2740
+ #: includes/admin/core/class-admin-settings.php:1566
2741
  #: includes/admin/templates/form/mode.php:16
2742
  msgid "Registration Form"
2743
  msgstr ""
2744
 
2745
+ #: includes/admin/core/class-admin-settings.php:1571
2746
  msgid "Registration Default Template"
2747
  msgstr ""
2748
 
2749
+ #: includes/admin/core/class-admin-settings.php:1572
2750
  msgid "This will be the default template to output registration"
2751
  msgstr ""
2752
 
2753
+ #: includes/admin/core/class-admin-settings.php:1580
2754
  msgid "Registration Maximum Width"
2755
  msgstr ""
2756
 
2757
+ #: includes/admin/core/class-admin-settings.php:1588
2758
  msgid "Registration Shortcode Alignment"
2759
  msgstr ""
2760
 
2761
+ #: includes/admin/core/class-admin-settings.php:1589
2762
+ #: includes/admin/core/class-admin-settings.php:1679
2763
  #: includes/admin/templates/form/profile_customize.php:144
2764
  msgid "The shortcode is centered by default unless you specify otherwise here"
2765
  msgstr ""
2766
 
2767
+ #: includes/admin/core/class-admin-settings.php:1592
2768
+ #: includes/admin/core/class-admin-settings.php:1682
2769
  msgid "Centered"
2770
  msgstr ""
2771
 
2772
+ #: includes/admin/core/class-admin-settings.php:1593
2773
+ #: includes/admin/core/class-admin-settings.php:1683
2774
  msgid "Left aligned"
2775
  msgstr ""
2776
 
2777
+ #: includes/admin/core/class-admin-settings.php:1594
2778
+ #: includes/admin/core/class-admin-settings.php:1684
2779
  msgid "Right aligned"
2780
  msgstr ""
2781
 
2782
+ #: includes/admin/core/class-admin-settings.php:1601
2783
  msgid "Registration Field Icons"
2784
  msgstr ""
2785
 
2786
+ #: includes/admin/core/class-admin-settings.php:1602
2787
  msgid "This controls the display of field icons in the registration form"
2788
  msgstr ""
2789
 
2790
+ #: includes/admin/core/class-admin-settings.php:1614
2791
  msgid "Registration Primary Button Text"
2792
  msgstr ""
2793
 
2794
+ #: includes/admin/core/class-admin-settings.php:1616
2795
+ #: includes/admin/core/class-admin-settings.php:1706
2796
  msgid "The text that is used for primary button text"
2797
  msgstr ""
2798
 
2799
+ #: includes/admin/core/class-admin-settings.php:1622
2800
  msgid "Registration Secondary Button"
2801
  msgstr ""
2802
 
2803
+ #: includes/admin/core/class-admin-settings.php:1629
2804
  msgid "Registration Secondary Button Text"
2805
  msgstr ""
2806
 
2807
+ #: includes/admin/core/class-admin-settings.php:1631
2808
+ #: includes/admin/core/class-admin-settings.php:1721
2809
  msgid "The text that is used for the secondary button text"
2810
  msgstr ""
2811
 
2812
+ #: includes/admin/core/class-admin-settings.php:1638
2813
  msgid "Registration Secondary Button URL"
2814
  msgstr ""
2815
 
2816
+ #: includes/admin/core/class-admin-settings.php:1640
2817
+ #: includes/admin/core/class-admin-settings.php:1730
2818
  msgid "You can replace default link for this button by entering custom URL"
2819
  msgstr ""
2820
 
2821
+ #: includes/admin/core/class-admin-settings.php:1647
2822
  msgid "Registration Default Role"
2823
  msgstr ""
2824
 
2825
+ #: includes/admin/core/class-admin-settings.php:1648
2826
  msgid "This will be the default role assigned to users registering thru registration form"
2827
  msgstr ""
2828
 
2829
+ #: includes/admin/core/class-admin-settings.php:1656
2830
  #: includes/admin/templates/form/mode.php:24
2831
  msgid "Login Form"
2832
  msgstr ""
2833
 
2834
+ #: includes/admin/core/class-admin-settings.php:1661
2835
  msgid "Login Default Template"
2836
  msgstr ""
2837
 
2838
+ #: includes/admin/core/class-admin-settings.php:1662
2839
  msgid "This will be the default template to output login"
2840
  msgstr ""
2841
 
2842
+ #: includes/admin/core/class-admin-settings.php:1670
2843
  msgid "Login Maximum Width"
2844
  msgstr ""
2845
 
2846
+ #: includes/admin/core/class-admin-settings.php:1678
2847
  msgid "Login Shortcode Alignment"
2848
  msgstr ""
2849
 
2850
+ #: includes/admin/core/class-admin-settings.php:1691
2851
  msgid "Login Field Icons"
2852
  msgstr ""
2853
 
2854
+ #: includes/admin/core/class-admin-settings.php:1692
2855
  msgid "This controls the display of field icons in the login form"
2856
  msgstr ""
2857
 
2858
+ #: includes/admin/core/class-admin-settings.php:1704
2859
  msgid "Login Primary Button Text"
2860
  msgstr ""
2861
 
2862
+ #: includes/admin/core/class-admin-settings.php:1712
2863
  msgid "Login Secondary Button"
2864
  msgstr ""
2865
 
2866
+ #: includes/admin/core/class-admin-settings.php:1719
2867
  msgid "Login Secondary Button Text"
2868
  msgstr ""
2869
 
2870
+ #: includes/admin/core/class-admin-settings.php:1728
2871
  msgid "Login Secondary Button URL"
2872
  msgstr ""
2873
 
2874
+ #: includes/admin/core/class-admin-settings.php:1737
2875
  msgid "Login Forgot Password Link"
2876
  msgstr ""
2877
 
2878
+ #: includes/admin/core/class-admin-settings.php:1739
2879
  msgid "Switch on/off the forgot password link in login form"
2880
  msgstr ""
2881
 
2882
+ #: includes/admin/core/class-admin-settings.php:1744
2883
  msgid "Show \"Remember Me\""
2884
  msgstr ""
2885
 
2886
+ #: includes/admin/core/class-admin-settings.php:1746
2887
  msgid "Allow users to choose If they want to stay signed in even after closing the browser. If you do not show this option, the default will be to not remember login session."
2888
  msgstr ""
2889
 
2890
+ #: includes/admin/core/class-admin-settings.php:1756
2891
  msgid "Licenses"
2892
  msgstr ""
2893
 
2894
+ #: includes/admin/core/class-admin-settings.php:1759
2895
  msgid "Misc"
2896
  msgstr ""
2897
 
2898
+ #: includes/admin/core/class-admin-settings.php:1764
2899
  msgid "Show an asterisk for required fields"
2900
  msgstr ""
2901
 
2902
+ #: includes/admin/core/class-admin-settings.php:1769
2903
  msgid "User Profile Title"
2904
  msgstr ""
2905
 
2906
+ #: includes/admin/core/class-admin-settings.php:1770
2907
  msgid "This is the title that is displayed on a specific user profile"
2908
  msgstr ""
2909
 
2910
+ #: includes/admin/core/class-admin-settings.php:1776
2911
  msgid "User Profile Dynamic Meta Description"
2912
  msgstr ""
2913
 
2914
+ #: includes/admin/core/class-admin-settings.php:1777
2915
  msgid "This will be used in the meta description that is available for search-engines."
2916
  msgstr ""
2917
 
2918
+ #: includes/admin/core/class-admin-settings.php:1785
2919
  msgid "Disable Cache User Profile"
2920
  msgstr ""
2921
 
2922
+ #: includes/admin/core/class-admin-settings.php:1786
2923
  msgid "Check this box if you would like to disable Ultimate Member user's cache."
2924
  msgstr ""
2925
 
2926
+ #: includes/admin/core/class-admin-settings.php:1791
2927
  msgid "Enable Gutenberg Blocks"
2928
  msgstr ""
2929
 
2930
+ #: includes/admin/core/class-admin-settings.php:1792
2931
  msgid "Check this box if you would like to use Ultimate Member blocks in Gutenberg editor. Important some themes have the conflicts with Gutenberg editor."
2932
  msgstr ""
2933
 
2934
+ #: includes/admin/core/class-admin-settings.php:1797
2935
  msgid "REST API version"
2936
  msgstr ""
2937
 
2938
+ #: includes/admin/core/class-admin-settings.php:1798
2939
  msgid "This controls the REST API version, we recommend to use the last version"
2940
  msgstr ""
2941
 
2942
+ #: includes/admin/core/class-admin-settings.php:1800
2943
  msgid "1.0 version"
2944
  msgstr ""
2945
 
2946
+ #: includes/admin/core/class-admin-settings.php:1801
2947
  msgid "2.0 version"
2948
  msgstr ""
2949
 
2950
+ #: includes/admin/core/class-admin-settings.php:1809
2951
  msgid "Disable pre-queries for restriction content logic (advanced)"
2952
  msgstr ""
2953
 
2954
+ #: includes/admin/core/class-admin-settings.php:1810
2955
  msgid "Please enable this option only in the cases when you have big or unnecessary queries on your site with active restriction logic. If you want to exclude posts only from the results queries instead of pre_get_posts and fully-hidden post logic also please enable this option. It activates the restriction content logic until 2.2.x version without latest security enhancements"
2956
  msgstr ""
2957
 
2958
+ #: includes/admin/core/class-admin-settings.php:1816
2959
  msgid "Remove Data on Uninstall?"
2960
  msgstr ""
2961
 
2962
+ #: includes/admin/core/class-admin-settings.php:1817
2963
  msgid "Check this box if you would like Ultimate Member to completely remove all of its data when the plugin/extensions are deleted."
2964
  msgstr ""
2965
 
2966
+ #: includes/admin/core/class-admin-settings.php:1822
2967
  msgid "Install Info"
2968
  msgstr ""
2969
 
2970
+ #: includes/admin/core/class-admin-settings.php:1933
2971
  msgid "Ultimate Member - Settings"
2972
  msgstr ""
2973
 
2974
+ #: includes/admin/core/class-admin-settings.php:2063
2975
  msgid "Save Changes"
2976
  msgstr ""
2977
 
2978
+ #: includes/admin/core/class-admin-settings.php:2661
2979
  msgid "Subject Line"
2980
  msgstr ""
2981
 
2982
+ #: includes/admin/core/class-admin-settings.php:2663
2983
  msgid "This is the subject line of the e-mail"
2984
  msgstr ""
2985
 
2986
+ #: includes/admin/core/class-admin-settings.php:2668
2987
  msgid "Message Body"
2988
  msgstr ""
2989
 
2990
+ #: includes/admin/core/class-admin-settings.php:2670
2991
  msgid "This is the content of the e-mail"
2992
  msgstr ""
2993
 
2994
+ #: includes/admin/core/class-admin-settings.php:2720
2995
+ #: includes/admin/core/class-admin-settings.php:2830
2996
  msgid "Your license key expired on %s. Please <a href=\"%s\" target=\"_blank\">renew your license key</a>."
2997
  msgstr ""
2998
 
2999
+ #: includes/admin/core/class-admin-settings.php:2733
3000
+ #: includes/admin/core/class-admin-settings.php:2843
3001
  msgid "Your license key has been disabled. Please <a href=\"%s\" target=\"_blank\">contact support</a> for more information."
3002
  msgstr ""
3003
 
3004
+ #: includes/admin/core/class-admin-settings.php:2745
3005
+ #: includes/admin/core/class-admin-settings.php:2855
3006
  msgid "Invalid license. Please <a href=\"%s\" target=\"_blank\">visit your account page</a> and verify it."
3007
  msgstr ""
3008
 
3009
+ #: includes/admin/core/class-admin-settings.php:2758
3010
+ #: includes/admin/core/class-admin-settings.php:2868
3011
  msgid "Your %s is not active for this URL. Please <a href=\"%s\" target=\"_blank\">visit your account page</a> to manage your license key URLs."
3012
  msgstr ""
3013
 
 
 
 
 
 
3014
  #: includes/admin/core/class-admin-settings.php:2770
3015
  #: includes/admin/core/class-admin-settings.php:2880
3016
+ msgid "This appears to be an invalid license key for %s."
3017
  msgstr ""
3018
 
3019
  #: includes/admin/core/class-admin-settings.php:2779
3020
  #: includes/admin/core/class-admin-settings.php:2889
3021
+ msgid "Your license key has reached its activation limit. <a href=\"%s\">View possible upgrades</a> now."
3022
+ msgstr ""
3023
+
3024
+ #: includes/admin/core/class-admin-settings.php:2788
3025
+ #: includes/admin/core/class-admin-settings.php:2898
3026
  msgid "The key you entered belongs to a bundle, please use the product specific license key."
3027
  msgstr ""
3028
 
3029
+ #: includes/admin/core/class-admin-settings.php:2796
3030
+ #: includes/admin/core/class-admin-settings.php:2804
3031
+ #: includes/admin/core/class-admin-settings.php:2816
3032
  msgid "unknown_error"
3033
  msgstr ""
3034
 
3035
+ #: includes/admin/core/class-admin-settings.php:2797
3036
+ #: includes/admin/core/class-admin-settings.php:2805
3037
  msgid "There was an error with this license key: %s. Please <a href=\"%s\">contact our support team</a>."
3038
  msgstr ""
3039
 
3040
+ #: includes/admin/core/class-admin-settings.php:2818
3041
  msgid "There was an error with this license key: %s%s. Please <a href=\"%s\">contact our support team</a>."
3042
  msgstr ""
3043
 
3044
+ #: includes/admin/core/class-admin-settings.php:2913
3045
  msgid "License key never expires."
3046
  msgstr ""
3047
 
3048
+ #: includes/admin/core/class-admin-settings.php:2920
3049
  msgid "Your license key expires soon! It expires on %s. <a href=\"%s\" target=\"_blank\">Renew your license key</a>."
3050
  msgstr ""
3051
 
3052
+ #: includes/admin/core/class-admin-settings.php:2930
3053
  msgid "Your license key expires on %s."
3054
  msgstr ""
3055
 
3056
+ #: includes/admin/core/class-admin-settings.php:2948
3057
  msgid "To receive updates, please enter your valid %s license key."
3058
  msgstr ""
3059
 
3060
+ #: includes/admin/core/class-admin-settings.php:2970
3061
+ #: includes/admin/core/class-admin-settings.php:2975
3062
  msgid "Clear License"
3063
  msgstr ""
3064
 
3065
+ #: includes/admin/core/class-admin-settings.php:2972
3066
  msgid "Activate"
3067
  msgstr ""
3068
 
3069
+ #: includes/admin/core/class-admin-settings.php:2974
3070
  msgid "Re-Activate"
3071
  msgstr ""
3072
 
3073
+ #: includes/admin/core/class-admin-settings.php:3027
3074
  msgid "To copy the Install info, click below then press Ctrl + C (PC) or Cmd + C (Mac)."
3075
  msgstr ""
3076
 
3112
  msgstr ""
3113
 
3114
  #: includes/admin/core/class-admin-users.php:193
3115
+ #: includes/core/class-fields.php:2901
3116
  msgid "Apply"
3117
  msgstr ""
3118
 
3163
 
3164
  #: includes/admin/core/class-admin-users.php:407
3165
  #: includes/admin/templates/dashboard/users.php:28
3166
+ #: includes/core/class-user.php:1140
3167
  msgid "Approved"
3168
  msgstr ""
3169
 
3689
  msgstr ""
3690
 
3691
  #: includes/admin/templates/dashboard/users.php:60
3692
+ #: includes/core/class-user.php:1148
3693
  msgid "Pending Review"
3694
  msgstr ""
3695
 
3696
  #: includes/admin/templates/dashboard/users.php:73
3697
+ #: includes/core/class-user.php:1144
3698
  msgid "Awaiting E-mail Confirmation"
3699
  msgstr ""
3700
 
4299
  #: includes/admin/templates/modal/forms/fonticons.php:14
4300
  #: includes/admin/templates/role/publish.php:30
4301
  #: includes/class-config.php:254
4302
+ #: includes/core/class-fields.php:2902
4303
+ #: includes/core/class-fields.php:3009
4304
  #: includes/core/um-actions-profile.php:844
4305
  #: includes/core/um-actions-profile.php:856
4306
  #: includes/core/um-actions-profile.php:1044
4634
  msgstr ""
4635
 
4636
  #: includes/class-config.php:131
4637
+ #: includes/class-config.php:800
4638
  msgid "User"
4639
  msgstr ""
4640
 
4641
  #: includes/class-config.php:132
4642
  #: includes/class-config.php:264
4643
  #: includes/class-config.php:272
4644
+ #: includes/class-config.php:801
4645
  #: includes/core/class-form.php:755
4646
  msgid "Login"
4647
  msgstr ""
4649
  #: includes/class-config.php:133
4650
  #: includes/class-config.php:262
4651
  #: includes/class-config.php:276
4652
+ #: includes/class-config.php:802
4653
  #: includes/core/class-form.php:761
4654
  msgid "Register"
4655
  msgstr ""
4656
 
4657
  #: includes/class-config.php:135
4658
+ #: includes/class-config.php:804
4659
  #: includes/core/class-member-directory.php:2300
4660
  #: includes/core/um-actions-profile.php:1426
4661
  #: includes/core/um-actions-user.php:19
4663
  msgstr ""
4664
 
4665
  #: includes/class-config.php:137
4666
+ #: includes/class-config.php:806
4667
  #: includes/admin/assets/js/um-admin-blocks-shortcode.js:262
4668
  #: includes/admin/assets/js/um-admin-blocks-shortcode.js:283
4669
  msgid "Password Reset"
4840
  #. translators: %s: The message after registration process based on a role data and user status after registration
4841
  #. translators: %s: Restricted taxonomy message.
4842
  #: includes/core/class-access.php:738
4843
+ #: includes/core/class-fields.php:1497
4844
+ #: includes/core/um-actions-account.php:510
4845
  #: templates/message.php:8
4846
  #: templates/restricted-taxonomy.php:47
4847
  msgid "%s"
4969
  msgstr ""
4970
 
4971
  #: includes/core/class-builtin.php:713
4972
+ #: includes/core/class-user.php:1967
4973
  msgid "Only me"
4974
  msgstr ""
4975
 
7126
  msgid "Less than 1 year old"
7127
  msgstr ""
7128
 
7129
+ #: includes/core/class-fields.php:1518
7130
  msgid "Custom Field"
7131
  msgstr ""
7132
 
7133
+ #: includes/core/class-fields.php:1871
7134
  msgid "Please upload a valid image!"
7135
  msgstr ""
7136
 
7137
+ #: includes/core/class-fields.php:1885
7138
  msgid "Sorry this is not a valid image."
7139
  msgstr ""
7140
 
7141
+ #: includes/core/class-fields.php:1888
7142
  msgid "This image is too large!"
7143
  msgstr ""
7144
 
7145
+ #: includes/core/class-fields.php:1891
7146
  msgid "This image is too small!"
7147
  msgstr ""
7148
 
7149
+ #: includes/core/class-fields.php:1894
7150
  msgid "You can only upload one image"
7151
  msgstr ""
7152
 
7153
+ #: includes/core/class-fields.php:1926
7154
  msgid "Sorry this is not a valid file."
7155
  msgstr ""
7156
 
7157
+ #: includes/core/class-fields.php:1929
7158
  msgid "This file is too large!"
7159
  msgstr ""
7160
 
7161
+ #: includes/core/class-fields.php:1932
7162
  msgid "This file is too small!"
7163
  msgstr ""
7164
 
7165
+ #: includes/core/class-fields.php:1935
7166
  msgid "You can only upload one file"
7167
  msgstr ""
7168
 
7169
+ #: includes/core/class-fields.php:2501
7170
  msgid "Current Password"
7171
  msgstr ""
7172
 
7173
+ #: includes/core/class-fields.php:2532
7174
  msgid "New Password"
7175
  msgstr ""
7176
 
7177
+ #: includes/core/class-fields.php:2575
7178
+ #: includes/core/class-fields.php:2594
7179
+ #: includes/core/class-fields.php:2596
7180
  msgid "Confirm %s"
7181
  msgstr ""
7182
 
7183
+ #: includes/core/class-fields.php:2841
7184
  msgid "Upload Photo"
7185
  msgstr ""
7186
 
7187
+ #: includes/core/class-fields.php:2868
7188
+ #: includes/core/class-fields.php:2901
7189
  #: includes/core/um-actions-profile.php:1075
7190
  msgid "Change photo"
7191
  msgstr ""
7192
 
7193
+ #: includes/core/class-fields.php:2901
7194
+ #: includes/core/class-fields.php:3008
7195
  msgid "Processing..."
7196
  msgstr ""
7197
 
7198
+ #: includes/core/class-fields.php:2926
7199
  msgid "Upload File"
7200
  msgstr ""
7201
 
7202
+ #: includes/core/class-fields.php:2970
7203
  #: includes/core/um-filters-fields.php:330
7204
  msgid "This file has been removed."
7205
  msgstr ""
7206
 
7207
+ #: includes/core/class-fields.php:2974
7208
  msgid "Change file"
7209
  msgstr ""
7210
 
7211
+ #: includes/core/class-fields.php:3008
7212
  msgid "Save"
7213
  msgstr ""
7214
 
7215
+ #: includes/core/class-fields.php:4595
7216
  msgid "Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some information!"
7217
  msgstr ""
7218
 
7219
+ #: includes/core/class-fields.php:4597
7220
  msgid "This user has not added any information to their profile yet."
7221
  msgstr ""
7222
 
7280
  msgid "Hello, spam bot!"
7281
  msgstr ""
7282
 
7283
+ #: includes/core/class-mail.php:610
7284
+ #: includes/core/class-password.php:741
7285
  #: includes/core/class-profile.php:517
7286
  msgid "Your set password"
7287
  msgstr ""
7384
  msgid "You have reached the limit for requesting password change for this user already. Contact support if you cannot open the email"
7385
  msgstr ""
7386
 
7387
+ #: includes/core/class-password.php:536
7388
+ msgid "Unable to change password because of password change limit. Please try again later."
7389
+ msgstr ""
7390
+
7391
+ #: includes/core/class-password.php:542
7392
  msgid "You must enter a new password"
7393
  msgstr ""
7394
 
7395
+ #: includes/core/class-password.php:555
7396
  #: includes/core/um-actions-account.php:67
7397
  #: includes/core/um-actions-register.php:277
7398
  msgid "Passwords may not contain the character \"\\\"."
7399
  msgstr ""
7400
 
7401
+ #: includes/core/class-password.php:579
7402
+ #: includes/core/um-actions-account.php:104
7403
  msgid "Your password must contain at least %d characters"
7404
  msgstr ""
7405
 
7406
+ #: includes/core/class-password.php:583
7407
+ #: includes/core/um-actions-account.php:108
7408
  msgid "Your password must contain less than %d characters"
7409
  msgstr ""
7410
 
7411
+ #: includes/core/class-password.php:587
7412
+ #: includes/core/um-actions-account.php:112
7413
  #: includes/core/um-actions-form.php:625
7414
+ msgid "Your password cannot contain the part of your username"
7415
+ msgstr ""
7416
+
7417
+ #: includes/core/class-password.php:591
7418
+ #: includes/core/um-actions-account.php:116
7419
+ #: includes/core/um-actions-form.php:629
7420
+ msgid "Your password cannot contain the part of your email address"
7421
+ msgstr ""
7422
+
7423
+ #: includes/core/class-password.php:595
7424
+ #: includes/core/um-actions-account.php:120
7425
+ #: includes/core/um-actions-form.php:633
7426
  msgid "Your password must contain at least one lowercase letter, one capital letter and one number"
7427
  msgstr ""
7428
 
7429
+ #: includes/core/class-password.php:600
7430
  msgid "You must confirm your new password"
7431
  msgstr ""
7432
 
7433
+ #: includes/core/class-password.php:604
7434
+ #: includes/core/um-actions-form.php:642
7435
  msgid "Your passwords do not match"
7436
  msgstr ""
7437
 
7524
  msgid "This file type is not recognized."
7525
  msgstr ""
7526
 
7527
+ #: includes/core/class-user.php:940
7528
  msgid "Ultimate Member Role"
7529
  msgstr ""
7530
 
7531
+ #: includes/core/class-user.php:943
7532
  msgid "&mdash; No role for Ultimate Member &mdash;"
7533
  msgstr ""
7534
 
7535
+ #: includes/core/class-user.php:1152
7536
  msgid "Membership Rejected"
7537
  msgstr ""
7538
 
7539
+ #: includes/core/class-user.php:1156
7540
  msgid "Membership Inactive"
7541
  msgstr ""
7542
 
7602
  msgstr ""
7603
 
7604
  #: includes/core/um-actions-account.php:29
7605
+ #: includes/core/um-actions-account.php:175
7606
  msgid "You must enter your password"
7607
  msgstr ""
7608
 
7609
  #: includes/core/um-actions-account.php:32
7610
  #: includes/core/um-actions-account.php:75
7611
  #: includes/core/um-actions-account.php:79
7612
+ #: includes/core/um-actions-account.php:178
7613
  msgid "This is not your password"
7614
  msgstr ""
7615
 
7625
  msgid "Your new password does not match"
7626
  msgstr ""
7627
 
7628
+ #: includes/core/um-actions-account.php:150
7629
  msgid "You must provide your first name"
7630
  msgstr ""
7631
 
7632
+ #: includes/core/um-actions-account.php:154
7633
  msgid "You must provide your last name"
7634
  msgstr ""
7635
 
7636
+ #: includes/core/um-actions-account.php:160
7637
  msgid "You must provide your e-mail"
7638
  msgstr ""
7639
 
7640
+ #: includes/core/um-actions-account.php:164
7641
+ #: includes/core/um-actions-account.php:168
7642
  msgid "Please provide a valid e-mail"
7643
  msgstr ""
7644
 
7645
+ #: includes/core/um-actions-account.php:526
7646
  msgid "Select what email notifications you want to receive"
7647
  msgstr ""
7648
 
7649
+ #: includes/core/um-actions-account.php:588
7650
  msgid "Download your data"
7651
  msgstr ""
7652
 
7653
+ #: includes/core/um-actions-account.php:590
7654
  msgid "You can request a file with the information that we believe is most relevant and useful to you."
7655
  msgstr ""
7656
 
7657
+ #: includes/core/um-actions-account.php:610
7658
  msgid "You could download your previous data:"
7659
  msgstr ""
7660
 
7661
+ #: includes/core/um-actions-account.php:611
7662
  msgid "Download Personal Data"
7663
  msgstr ""
7664
 
7665
+ #: includes/core/um-actions-account.php:612
7666
  msgid "You could send a new request for an export of personal your data."
7667
  msgstr ""
7668
 
7669
+ #: includes/core/um-actions-account.php:628
7670
+ #: includes/core/um-actions-account.php:781
7671
  msgid "A confirmation email has been sent to your email. Click the link within the email to confirm your export request."
7672
  msgstr ""
7673
 
7674
+ #: includes/core/um-actions-account.php:630
7675
  msgid "The administrator has not yet approved downloading the data. Please expect an email with a link to your data."
7676
  msgstr ""
7677
 
7678
+ #: includes/core/um-actions-account.php:635
7679
  msgid "Enter your current password to confirm a new export of your personal data."
7680
  msgstr ""
7681
 
7682
+ #: includes/core/um-actions-account.php:640
7683
+ #: includes/core/um-actions-account.php:712
7684
  msgid "You must enter a password"
7685
  msgstr ""
7686
 
7687
+ #: includes/core/um-actions-account.php:648
7688
  msgid "To export of your personal data, click the button below."
7689
  msgstr ""
7690
 
7691
+ #: includes/core/um-actions-account.php:655
7692
  msgid "Request data"
7693
  msgstr ""
7694
 
7695
+ #: includes/core/um-actions-account.php:664
7696
  msgid "Erase of your data"
7697
  msgstr ""
7698
 
7699
+ #: includes/core/um-actions-account.php:666
7700
  msgid "You can request erasing of the data that we have about you."
7701
  msgstr ""
7702
 
7703
+ #: includes/core/um-actions-account.php:685
7704
  msgid "Your personal data has been deleted."
7705
  msgstr ""
7706
 
7707
+ #: includes/core/um-actions-account.php:686
7708
  msgid "You could send a new request for deleting your personal data."
7709
  msgstr ""
7710
 
7711
+ #: includes/core/um-actions-account.php:702
7712
+ #: includes/core/um-actions-account.php:783
7713
  msgid "A confirmation email has been sent to your email. Click the link within the email to confirm your deletion request."
7714
  msgstr ""
7715
 
7716
+ #: includes/core/um-actions-account.php:704
7717
  msgid "The administrator has not yet approved deleting your data. Please expect an email with a link to your data."
7718
  msgstr ""
7719
 
7720
+ #: includes/core/um-actions-account.php:709
7721
  msgid "Enter your current password to confirm the erasure of your personal data."
7722
  msgstr ""
7723
 
7724
+ #: includes/core/um-actions-account.php:720
7725
  msgid "Require erasure of your personal data, click on the button below."
7726
  msgstr ""
7727
 
7728
+ #: includes/core/um-actions-account.php:727
7729
  msgid "Request data erase"
7730
  msgstr ""
7731
 
7732
+ #: includes/core/um-actions-account.php:741
7733
+ #: includes/core/um-actions-account.php:773
7734
  msgid "Wrong request."
7735
  msgstr ""
7736
 
7737
+ #: includes/core/um-actions-account.php:753
7738
+ #: includes/core/um-actions-account.php:760
7739
  msgid "The password you entered is incorrect."
7740
  msgstr ""
7741
 
7810
  msgid "You can not use HTML tags here"
7811
  msgstr ""
7812
 
7813
+ #: includes/core/um-actions-form.php:639
7814
  msgid "Please confirm your password"
7815
  msgstr ""
7816
 
7817
+ #: includes/core/um-actions-form.php:648
7818
  msgid "Please select at least %s choices"
7819
  msgstr ""
7820
 
7821
+ #: includes/core/um-actions-form.php:654
7822
  msgid "You can only select up to %s choices"
7823
  msgstr ""
7824
 
7825
+ #: includes/core/um-actions-form.php:660
7826
  msgid "Minimum number limit is %s"
7827
  msgstr ""
7828
 
7829
+ #: includes/core/um-actions-form.php:666
7830
  msgid "Maximum number limit is %s"
7831
  msgstr ""
7832
 
7833
+ #: includes/core/um-actions-form.php:702
7834
  msgid "Please enter numbers only in this field"
7835
  msgstr ""
7836
 
7837
+ #: includes/core/um-actions-form.php:708
7838
  msgid "Please enter a valid phone number"
7839
  msgstr ""
7840
 
7841
+ #: includes/core/um-actions-form.php:714
7842
+ #: includes/core/um-actions-form.php:720
7843
+ #: includes/core/um-actions-form.php:726
7844
+ #: includes/core/um-actions-form.php:732
7845
+ #: includes/core/um-actions-form.php:738
7846
+ #: includes/core/um-actions-form.php:751
7847
+ #: includes/core/um-actions-form.php:757
7848
+ #: includes/core/um-actions-form.php:763
7849
  msgid "Please enter a valid %s username or profile URL"
7850
  msgstr ""
7851
 
7852
+ #: includes/core/um-actions-form.php:745
7853
  msgid "Please enter a valid %s profile URL"
7854
  msgstr ""
7855
 
7856
+ #: includes/core/um-actions-form.php:769
7857
  msgid "Please enter a valid Discord ID"
7858
  msgstr ""
7859
 
7860
+ #: includes/core/um-actions-form.php:775
7861
  msgid "Please enter a valid URL"
7862
  msgstr ""
7863
 
7864
+ #: includes/core/um-actions-form.php:782
7865
  msgid "You must provide a username"
7866
  msgstr ""
7867
 
7868
+ #: includes/core/um-actions-form.php:784
7869
+ #: includes/core/um-actions-form.php:798
7870
  msgid "The username you entered is incorrect"
7871
  msgstr ""
7872
 
7873
+ #: includes/core/um-actions-form.php:786
7874
  msgid "Username cannot be an email"
7875
  msgstr ""
7876
 
7877
+ #: includes/core/um-actions-form.php:788
7878
+ #: includes/core/um-actions-form.php:802
7879
  msgid "Your username contains invalid characters"
7880
  msgstr ""
7881
 
7882
+ #: includes/core/um-actions-form.php:796
7883
  msgid "You must provide a username or email"
7884
  msgstr ""
7885
 
7886
+ #: includes/core/um-actions-form.php:800
7887
+ #: includes/core/um-actions-form.php:822
7888
+ #: includes/core/um-actions-form.php:824
 
7889
  #: includes/core/um-actions-form.php:826
7890
+ #: includes/core/um-actions-form.php:834
7891
+ #: includes/core/um-actions-form.php:836
7892
+ #: includes/core/um-actions-form.php:843
7893
  msgid "The email you entered is incorrect"
7894
  msgstr ""
7895
 
7896
+ #: includes/core/um-actions-form.php:820
7897
  msgid "You must provide your email"
7898
  msgstr ""
7899
 
7900
+ #: includes/core/um-actions-form.php:828
7901
  msgid "Your email contains invalid characters"
7902
  msgstr ""
7903
 
7904
+ #: includes/core/um-actions-form.php:858
7905
  msgid "This is not a valid email"
7906
  msgstr ""
7907
 
7908
+ #: includes/core/um-actions-form.php:877
7909
  msgid "You must provide a unique value"
7910
  msgstr ""
7911
 
7912
+ #: includes/core/um-actions-form.php:887
7913
  msgid "You must provide alphabetic letters"
7914
  msgstr ""
7915
 
7916
+ #: includes/core/um-actions-form.php:899
7917
  msgid "You must provide lowercase letters."
7918
  msgstr ""
7919
 
7920
+ #: includes/core/um-actions-form.php:917
7921
  msgid "Your user description must contain less than %s characters"
7922
  msgstr ""
7923
 
7938
  msgstr ""
7939
 
7940
  #: includes/core/um-actions-login.php:59
7941
+ #: includes/core/um-actions-login.php:74
7942
+ #: includes/core/um-actions-login.php:83
7943
  msgid "Password is incorrect. Please try again."
7944
  msgstr ""
7945
 
7946
+ #: includes/core/um-actions-login.php:203
7947
  msgid "This action has been prevented for security measures."
7948
  msgstr ""
7949
 
7950
+ #: includes/core/um-actions-login.php:431
7951
  msgid "Keep me signed in"
7952
  msgstr ""
7953
 
7954
+ #: includes/core/um-actions-login.php:475
7955
  msgid "Forgot your password?"
7956
  msgstr ""
7957
 
readme.txt CHANGED
@@ -6,8 +6,8 @@ Donate link:
6
  Tags: community, member, membership, user-profile, user-registration
7
  Requires PHP: 5.6
8
  Requires at least: 5.0
9
- Tested up to: 6.0
10
- Stable tag: 2.5.1
11
  License: GNU Version 2 or Any Later Version
12
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
13
 
@@ -163,6 +163,30 @@ No, you do not need to use our plugin’s login or registration pages and can us
163
  * To learn more about version 2.1 please see this [docs](https://docs.ultimatemember.com/article/1512-upgrade-2-1-0)
164
  * UM2.1+ is a significant update to the Member Directories' code base from 2.0.x. Please make sure you take a full-site backup with restore point before updating the plugin
165
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  = 2.5.1: October 26, 2022 =
167
 
168
  * Enhancements:
6
  Tags: community, member, membership, user-profile, user-registration
7
  Requires PHP: 5.6
8
  Requires at least: 5.0
9
+ Tested up to: 6.1
10
+ Stable tag: 2.5.2
11
  License: GNU Version 2 or Any Later Version
12
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
13
 
163
  * To learn more about version 2.1 please see this [docs](https://docs.ultimatemember.com/article/1512-upgrade-2-1-0)
164
  * UM2.1+ is a significant update to the Member Directories' code base from 2.0.x. Please make sure you take a full-site backup with restore point before updating the plugin
165
 
166
+ = 2.5.2: December 14, 2022 =
167
+
168
+ * Enhancements:
169
+
170
+ - Added: Custom dropdown callback functions security enhancements. Avoid using blacklisted functions through namespace or uppercase format
171
+ - Added: Validation for upgrade package in wp-admin
172
+ - Added: `Change Password request limit` option for prevent from any brute-force attacks or password guessing with the form
173
+ - Added: Strong password checking for not using username|email inside the password
174
+ - Added: `um_custom_authenticate_error_codes` hook for handling 3rd-party login errors on UM invalid form
175
+
176
+ * Bugfixes:
177
+
178
+ - Fixed: Some texts sanitizing
179
+ - Fixed: PHP Error in url-type field on UM Forms
180
+ - Fixed: Using `wp_mkdir` to avoid the filesystem conflict when copy email template to theme
181
+ - Fixed: Password Reset URL generating
182
+ - Fixed: Multiple users approve
183
+ - Fixed: Using regular URL-type field for displaying
184
+
185
+ * Templates required update:
186
+ - members.php
187
+
188
+ * Cached and optimized/minified assets(JS/CSS) must be flushed/re-generated after upgrade
189
+
190
  = 2.5.1: October 26, 2022 =
191
 
192
  * Enhancements:
templates/members-grid.php CHANGED
@@ -1,153 +1,153 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
-
3
- $unique_hash = substr( md5( $args['form_id'] ), 10, 5 ); ?>
4
-
5
- <script type="text/template" id="tmpl-um-member-grid-<?php echo esc_attr( $unique_hash ) ?>">
6
- <div class="um-members um-members-grid">
7
- <div class="um-gutter-sizer"></div>
8
-
9
- <# if ( data.length > 0 ) { #>
10
- <# _.each( data, function( user, key, list ) { #>
11
-
12
- <div id="um-member-{{{user.card_anchor}}}-<?php echo esc_attr( $unique_hash ) ?>" class="um-member um-role-{{{user.role}}} {{{user.account_status}}} <?php if ( $cover_photos ) { echo 'with-cover'; } ?>">
13
-
14
- <span class="um-member-status {{{user.account_status}}}">
15
- {{{user.account_status_name}}}
16
- </span>
17
-
18
- <?php if ( $cover_photos ) { ?>
19
- <div class="um-member-cover" data-ratio="<?php echo esc_attr( UM()->options()->get( 'profile_cover_ratio' ) ); ?>">
20
- <div class="um-member-cover-e">
21
- <a href="{{{user.profile_url}}}" title="<# if ( user.display_name ) { #>{{{user.display_name}}}<# } #>">
22
- {{{user.cover_photo}}}
23
- </a>
24
- </div>
25
- </div>
26
- <?php }
27
-
28
- if ( $profile_photo ) { ?>
29
- <div class="um-member-photo radius-<?php echo esc_attr( UM()->options()->get( 'profile_photocorner' ) ); ?>">
30
- <a href="{{{user.profile_url}}}" title="<# if ( user.display_name ) { #>{{{user.display_name}}}<# } #>">
31
- {{{user.avatar}}}
32
- <?php do_action( 'um_members_in_profile_photo_tmpl', $args ); ?>
33
- </a>
34
- </div>
35
- <?php } ?>
36
-
37
-
38
- <div class="um-member-card <?php if ( ! $profile_photo ) { echo 'no-photo'; } ?>">
39
- <?php if ( $show_name ) { ?>
40
- <# if ( user.display_name_html ) { #>
41
- <div class="um-member-name">
42
- <a href="{{{user.profile_url}}}" title="{{{user.display_name}}}">
43
- {{{user.display_name_html}}}
44
- </a>
45
- </div>
46
- <# } #>
47
- <?php }
48
-
49
- // please use for buttons priority > 100
50
- do_action( 'um_members_just_after_name_tmpl', $args ); ?>
51
- {{{user.hook_just_after_name}}}
52
-
53
-
54
- <# if ( user.can_edit ) { #>
55
- <div class="um-members-edit-btn">
56
- <a href="{{{user.edit_profile_url}}}" class="um-edit-profile-btn um-button um-alt">
57
- <?php _e( 'Edit profile','ultimate-member' ) ?>
58
- </a>
59
- </div>
60
- <# } #>
61
-
62
-
63
- <?php do_action( 'um_members_after_user_name_tmpl', $args ); ?>
64
- {{{user.hook_after_user_name}}}
65
-
66
-
67
- <?php if ( $show_tagline && ! empty( $tagline_fields ) && is_array( $tagline_fields ) ) {
68
- foreach ( $tagline_fields as $key ) {
69
- if ( empty( $key ) ) {
70
- continue;
71
- } ?>
72
-
73
- <# if ( typeof user['<?php echo $key; ?>'] !== 'undefined' ) { #>
74
- <div class="um-member-tagline um-member-tagline-<?php echo esc_attr( $key ); ?>"
75
- data-key="<?php echo esc_attr( $key ); ?>">
76
- {{{user['<?php echo $key; ?>']}}}
77
- </div>
78
- <# } #>
79
-
80
- <?php }
81
- }
82
-
83
- if ( $show_userinfo ) { ?>
84
-
85
- <# var $show_block = false; #>
86
-
87
- <?php foreach ( $reveal_fields as $k => $key ) {
88
- if ( empty( $key ) ) {
89
- unset( $reveal_fields[ $k ] );
90
- } ?>
91
- <# if ( typeof user['<?php echo $key; ?>'] !== 'undefined' ) {
92
- $show_block = true;
93
- } #>
94
- <?php }
95
-
96
- if ( $show_social ) { ?>
97
- <# if ( ! $show_block ) { #>
98
- <# $show_block = user.social_urls #>
99
- <# } #>
100
- <?php } ?>
101
-
102
- <# if ( $show_block ) { #>
103
- <div class="um-member-meta-main">
104
-
105
- <?php if ( $userinfo_animate ) { ?>
106
- <div class="um-member-more">
107
- <a href="javascript:void(0);"><i class="um-faicon-angle-down"></i></a>
108
- </div>
109
- <?php } ?>
110
-
111
- <div class="um-member-meta <?php if ( ! $userinfo_animate ) { echo 'no-animate'; } ?>">
112
-
113
- <?php foreach ( $reveal_fields as $key ) { ?>
114
-
115
- <# if ( typeof user['<?php echo $key; ?>'] !== 'undefined' ) { #>
116
- <div class="um-member-metaline um-member-metaline-<?php echo $key; ?>">
117
- <strong>{{{user['label_<?php echo $key;?>']}}}:</strong> {{{user['<?php echo $key;?>']}}}
118
- </div>
119
- <# } #>
120
-
121
- <?php }
122
-
123
- if ( $show_social ) { ?>
124
- <div class="um-member-connect">
125
- {{{user.social_urls}}}
126
- </div>
127
- <?php } ?>
128
- </div>
129
-
130
- <?php if ( $userinfo_animate ) { ?>
131
- <div class="um-member-less">
132
- <a href="javascript:void(0);"><i class="um-faicon-angle-up"></i></a>
133
- </div>
134
- <?php } ?>
135
- </div>
136
- <# } #>
137
- <?php } ?>
138
-
139
- </div>
140
- </div>
141
-
142
- <# }); #>
143
- <# } else { #>
144
-
145
- <div class="um-members-none">
146
- <p><?php echo $no_users; ?></p>
147
- </div>
148
-
149
- <# } #>
150
-
151
- <div class="um-clear"></div>
152
- </div>
153
- </script>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
+
3
+ $unique_hash = substr( md5( $args['form_id'] ), 10, 5 ); ?>
4
+
5
+ <script type="text/template" id="tmpl-um-member-grid-<?php echo esc_attr( $unique_hash ) ?>">
6
+ <div class="um-members um-members-grid">
7
+ <div class="um-gutter-sizer"></div>
8
+
9
+ <# if ( data.length > 0 ) { #>
10
+ <# _.each( data, function( user, key, list ) { #>
11
+
12
+ <div id="um-member-{{{user.card_anchor}}}-<?php echo esc_attr( $unique_hash ) ?>" class="um-member um-role-{{{user.role}}} {{{user.account_status}}} <?php if ( $cover_photos ) { echo 'with-cover'; } ?>">
13
+
14
+ <span class="um-member-status {{{user.account_status}}}">
15
+ {{{user.account_status_name}}}
16
+ </span>
17
+
18
+ <?php if ( $cover_photos ) { ?>
19
+ <div class="um-member-cover" data-ratio="<?php echo esc_attr( UM()->options()->get( 'profile_cover_ratio' ) ); ?>">
20
+ <div class="um-member-cover-e">
21
+ <a href="{{{user.profile_url}}}" title="<# if ( user.display_name ) { #>{{{user.display_name}}}<# } #>">
22
+ {{{user.cover_photo}}}
23
+ </a>
24
+ </div>
25
+ </div>
26
+ <?php }
27
+
28
+ if ( $profile_photo ) { ?>
29
+ <div class="um-member-photo radius-<?php echo esc_attr( UM()->options()->get( 'profile_photocorner' ) ); ?>">
30
+ <a href="{{{user.profile_url}}}" title="<# if ( user.display_name ) { #>{{{user.display_name}}}<# } #>">
31
+ {{{user.avatar}}}
32
+ <?php do_action( 'um_members_in_profile_photo_tmpl', $args ); ?>
33
+ </a>
34
+ </div>
35
+ <?php } ?>
36
+
37
+
38
+ <div class="um-member-card <?php if ( ! $profile_photo ) { echo 'no-photo'; } ?>">
39
+ <?php if ( $show_name ) { ?>
40
+ <# if ( user.display_name_html ) { #>
41
+ <div class="um-member-name">
42
+ <a href="{{{user.profile_url}}}" title="{{{user.display_name}}}">
43
+ {{{user.display_name_html}}}
44
+ </a>
45
+ </div>
46
+ <# } #>
47
+ <?php }
48
+
49
+ // please use for buttons priority > 100
50
+ do_action( 'um_members_just_after_name_tmpl', $args ); ?>
51
+ {{{user.hook_just_after_name}}}
52
+
53
+
54
+ <# if ( user.can_edit ) { #>
55
+ <div class="um-members-edit-btn">
56
+ <a href="{{{user.edit_profile_url}}}" class="um-edit-profile-btn um-button um-alt">
57
+ <?php _e( 'Edit profile','ultimate-member' ) ?>
58
+ </a>
59
+ </div>
60
+ <# } #>
61
+
62
+
63
+ <?php do_action( 'um_members_after_user_name_tmpl', $args ); ?>
64
+ {{{user.hook_after_user_name}}}
65
+
66
+
67
+ <?php if ( $show_tagline && ! empty( $tagline_fields ) && is_array( $tagline_fields ) ) {
68
+ foreach ( $tagline_fields as $key ) {
69
+ if ( empty( $key ) ) {
70
+ continue;
71
+ } ?>
72
+
73
+ <# if ( typeof user['<?php echo $key; ?>'] !== 'undefined' ) { #>
74
+ <div class="um-member-tagline um-member-tagline-<?php echo esc_attr( $key ); ?>"
75
+ data-key="<?php echo esc_attr( $key ); ?>">
76
+ {{{user['<?php echo $key; ?>']}}}
77
+ </div>
78
+ <# } #>
79
+
80
+ <?php }
81
+ }
82
+
83
+ if ( $show_userinfo ) { ?>
84
+
85
+ <# var $show_block = false; #>
86
+
87
+ <?php foreach ( $reveal_fields as $k => $key ) {
88
+ if ( empty( $key ) ) {
89
+ unset( $reveal_fields[ $k ] );
90
+ } ?>
91
+ <# if ( typeof user['<?php echo $key; ?>'] !== 'undefined' ) {
92
+ $show_block = true;
93
+ } #>
94
+ <?php }
95
+
96
+ if ( $show_social ) { ?>
97
+ <# if ( ! $show_block ) { #>
98
+ <# $show_block = user.social_urls #>
99
+ <# } #>
100
+ <?php } ?>
101
+
102
+ <# if ( $show_block ) { #>
103
+ <div class="um-member-meta-main">
104
+
105
+ <?php if ( $userinfo_animate ) { ?>
106
+ <div class="um-member-more">
107
+ <a href="javascript:void(0);"><i class="um-faicon-angle-down"></i></a>
108
+ </div>
109
+ <?php } ?>
110
+
111
+ <div class="um-member-meta <?php if ( ! $userinfo_animate ) { echo 'no-animate'; } ?>">
112
+
113
+ <?php foreach ( $reveal_fields as $key ) { ?>
114
+
115
+ <# if ( typeof user['<?php echo $key; ?>'] !== 'undefined' ) { #>
116
+ <div class="um-member-metaline um-member-metaline-<?php echo $key; ?>">
117
+ <strong>{{{user['label_<?php echo $key;?>']}}}:</strong> {{{user['<?php echo $key;?>']}}}
118
+ </div>
119
+ <# } #>
120
+
121
+ <?php }
122
+
123
+ if ( $show_social ) { ?>
124
+ <div class="um-member-connect">
125
+ {{{user.social_urls}}}
126
+ </div>
127
+ <?php } ?>
128
+ </div>
129
+
130
+ <?php if ( $userinfo_animate ) { ?>
131
+ <div class="um-member-less">
132
+ <a href="javascript:void(0);"><i class="um-faicon-angle-up"></i></a>
133
+ </div>
134
+ <?php } ?>
135
+ </div>
136
+ <# } #>
137
+ <?php } ?>
138
+
139
+ </div>
140
+ </div>
141
+
142
+ <# }); #>
143
+ <# } else { #>
144
+
145
+ <div class="um-members-none">
146
+ <p><?php echo $no_users; ?></p>
147
+ </div>
148
+
149
+ <# } #>
150
+
151
+ <div class="um-clear"></div>
152
+ </div>
153
+ </script>
templates/members.php CHANGED
@@ -45,7 +45,7 @@ if ( count( $args['view_types'] ) == 1 ) {
45
  } else {
46
  $args['default_view'] = ! empty( $args['default_view'] ) ? $args['default_view'] : $args['view_types'][0];
47
  $default_view = $args['default_view'];
48
- $current_view = ( ! empty( $_GET[ 'view_type_' . $unique_hash ] ) && in_array( $_GET[ 'view_type_' . $unique_hash ], $args['view_types'] ) ) ? $_GET[ 'view_type_' . $unique_hash ] : $args['default_view'];
49
  }
50
 
51
  // Sorting
45
  } else {
46
  $args['default_view'] = ! empty( $args['default_view'] ) ? $args['default_view'] : $args['view_types'][0];
47
  $default_view = $args['default_view'];
48
+ $current_view = ( ! empty( $_GET[ 'view_type_' . $unique_hash ] ) && in_array( $_GET[ 'view_type_' . $unique_hash ], $args['view_types'] ) ) ? sanitize_text_field( $_GET[ 'view_type_' . $unique_hash ] ) : $args['default_view'];
49
  }
50
 
51
  // Sorting
ultimate-member.php CHANGED
@@ -1,24 +1,24 @@
1
- <?php
2
- /*
3
- Plugin Name: Ultimate Member
4
- Plugin URI: http://ultimatemember.com/
5
- Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
6
- Version: 2.5.1
7
- Author: Ultimate Member
8
- Author URI: http://ultimatemember.com/
9
- Text Domain: ultimate-member
10
- */
11
-
12
- defined( 'ABSPATH' ) || exit;
13
-
14
- require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
15
- $plugin_data = get_plugin_data( __FILE__ );
16
-
17
- define( 'um_url', plugin_dir_url( __FILE__ ) );
18
- define( 'um_path', plugin_dir_path( __FILE__ ) );
19
- define( 'um_plugin', plugin_basename( __FILE__ ) );
20
- define( 'ultimatemember_version', $plugin_data['Version'] );
21
- define( 'ultimatemember_plugin_name', $plugin_data['Name'] );
22
-
23
- require_once 'includes/class-functions.php';
24
- require_once 'includes/class-init.php';
1
+ <?php
2
+ /*
3
+ Plugin Name: Ultimate Member
4
+ Plugin URI: http://ultimatemember.com/
5
+ Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
6
+ Version: 2.5.2
7
+ Author: Ultimate Member
8
+ Author URI: http://ultimatemember.com/
9
+ Text Domain: ultimate-member
10
+ */
11
+
12
+ defined( 'ABSPATH' ) || exit;
13
+
14
+ require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
15
+ $plugin_data = get_plugin_data( __FILE__ );
16
+
17
+ define( 'um_url', plugin_dir_url( __FILE__ ) );
18
+ define( 'um_path', plugin_dir_path( __FILE__ ) );
19
+ define( 'um_plugin', plugin_basename( __FILE__ ) );
20
+ define( 'ultimatemember_version', $plugin_data['Version'] );
21
+ define( 'ultimatemember_plugin_name', $plugin_data['Name'] );
22
+
23
+ require_once 'includes/class-functions.php';
24
+ require_once 'includes/class-init.php';