WP User Avatar - Version 3.1.11

Version Description

  • Fixed missing sql unescaping in member directory search.
  • Validate redirect_to urls to prevent redirect to another site.
  • XSS fix by escaping variables in tab widget.
Download this release

Release Info

Developer Collizo4sky
Plugin Icon 128x128 WP User Avatar
Version 3.1.11
Comparing to
See all releases

Code changes from version 3.1.10 to 3.1.11

changelog.txt CHANGED
@@ -1,4 +1,9 @@
1
- = 3.1.10 =
 
 
 
 
 
2
  * Fixed issue where bulk delete wasn't working in some cases.
3
  * Scoped wp_list actions to manage_options capability.
4
  * Fixed typos in admin setting and My Account pages.
1
+ = 3.1.11 =
2
+ * Fixed missing sql unescaping in member directory search.
3
+ * Validate redirect_to urls to prevent redirect to another site.
4
+ * XSS fix by escaping variables in tab widget.
5
+
6
+ = 3.1.10 =
7
  * Fixed issue where bulk delete wasn't working in some cases.
8
  * Scoped wp_list actions to manage_options capability.
9
  * Fixed typos in admin setting and My Account pages.
languages/wp-user-avatar.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the ProfilePress package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: ProfilePress 3.1.10\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-user-avatar\n"
7
- "POT-Creation-Date: 2021-07-04 18:15:27+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -898,7 +898,8 @@ msgstr ""
898
  #: src/Admin/SettingsPages/DragDropBuilder/Fields/Password.php:22
899
  #: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:162
900
  #: src/Themes/DragDrop/AbstractTheme.php:165
901
- #: src/Themes/DragDrop/AbstractTheme.php:205
 
902
  msgid "Password"
903
  msgstr ""
904
 
@@ -1221,7 +1222,7 @@ msgstr ""
1221
  #: src/Themes/DragDrop/AbstractTheme.php:159
1222
  #: src/Themes/DragDrop/AbstractTheme.php:218
1223
  #: src/Themes/DragDrop/UserProfile/DefaultTemplate.php:105
1224
- #: src/Widgets/TabbedWidget.php:125
1225
  msgid "Username"
1226
  msgstr ""
1227
 
@@ -1604,6 +1605,7 @@ msgid "No email available."
1604
  msgstr ""
1605
 
1606
  #: src/Admin/SettingsPages/EmailSettings/WPListTable.php:29
 
1607
  msgid "Email"
1608
  msgstr ""
1609
 
@@ -2864,33 +2866,33 @@ msgstr ""
2864
  msgid "Log in"
2865
  msgstr ""
2866
 
2867
- #: src/Classes/RegistrationAuth.php:213
2868
  msgid "%s field is required"
2869
  msgstr ""
2870
 
2871
- #: src/Classes/RegistrationAuth.php:222
2872
  msgid ""
2873
  "<strong>ERROR</strong>: This username is invalid because it uses illegal "
2874
  "characters. Please enter a valid username."
2875
  msgstr ""
2876
 
2877
- #: src/Classes/RegistrationAuth.php:226
2878
  msgid "Email address is not valid"
2879
  msgstr ""
2880
 
2881
- #: src/Classes/RegistrationAuth.php:230
2882
  msgid "Passwords do not match"
2883
  msgstr ""
2884
 
2885
- #: src/Classes/RegistrationAuth.php:234
2886
  msgid "Email addresses do not match"
2887
  msgstr ""
2888
 
2889
- #: src/Classes/RegistrationAuth.php:238
2890
  msgid "Password is not strong"
2891
  msgstr ""
2892
 
2893
- #: src/Classes/RegistrationAuth.php:404
2894
  #: src/Themes/DragDrop/AbstractTheme.php:110
2895
  msgid "Registration successful."
2896
  msgstr ""
@@ -4986,7 +4988,7 @@ msgid "Fields to show in sorting dropdown menu"
4986
  msgstr ""
4987
 
4988
  #: src/Themes/DragDrop/AbstractMemberDirectoryTheme.php:244
4989
- #: src/Themes/DragDrop/AbstractMemberDirectoryTheme.php:832
4990
  msgid "Search"
4991
  msgstr ""
4992
 
@@ -5062,11 +5064,11 @@ msgstr ""
5062
  msgid "Oldest Users First"
5063
  msgstr ""
5064
 
5065
- #: src/Themes/DragDrop/AbstractMemberDirectoryTheme.php:686
5066
  msgid "Sort by"
5067
  msgstr ""
5068
 
5069
- #: src/Themes/DragDrop/AbstractMemberDirectoryTheme.php:723
5070
  msgid "More Filters"
5071
  msgstr ""
5072
 
@@ -5325,6 +5327,10 @@ msgstr ""
5325
  msgid "Forgot?"
5326
  msgstr ""
5327
 
 
 
 
 
5328
  #: src/Widgets/TabbedWidget.php:208 src/Widgets/UserPanel.php:50
5329
  msgid "Welcome %s"
5330
  msgstr ""
@@ -5377,7 +5383,7 @@ msgstr ""
5377
  msgid "Unexpected error, please try again"
5378
  msgstr ""
5379
 
5380
- #: src/Widgets/TabbedWidgetDependency.php:105
5381
  msgid "Required form field is missing"
5382
  msgstr ""
5383
 
@@ -5415,9 +5421,9 @@ msgstr ""
5415
  msgid "ProfilePress"
5416
  msgstr ""
5417
 
5418
- #. #-#-#-#-# wp-user-avatar.pot (ProfilePress 3.1.10) #-#-#-#-#
5419
  #. Plugin URI of the plugin/theme
5420
- #. #-#-#-#-# wp-user-avatar.pot (ProfilePress 3.1.10) #-#-#-#-#
5421
  #. Author URI of the plugin/theme
5422
  msgid "https://profilepress.net"
5423
  msgstr ""
2
  # This file is distributed under the same license as the ProfilePress package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: ProfilePress 3.1.11\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-user-avatar\n"
7
+ "POT-Creation-Date: 2021-07-09 16:46:21+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
898
  #: src/Admin/SettingsPages/DragDropBuilder/Fields/Password.php:22
899
  #: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:162
900
  #: src/Themes/DragDrop/AbstractTheme.php:165
901
+ #: src/Themes/DragDrop/AbstractTheme.php:205 src/Widgets/TabbedWidget.php:139
902
+ #: src/Widgets/TabbedWidget.php:162
903
  msgid "Password"
904
  msgstr ""
905
 
1222
  #: src/Themes/DragDrop/AbstractTheme.php:159
1223
  #: src/Themes/DragDrop/AbstractTheme.php:218
1224
  #: src/Themes/DragDrop/UserProfile/DefaultTemplate.php:105
1225
+ #: src/Widgets/TabbedWidget.php:125 src/Widgets/TabbedWidget.php:156
1226
  msgid "Username"
1227
  msgstr ""
1228
 
1605
  msgstr ""
1606
 
1607
  #: src/Admin/SettingsPages/EmailSettings/WPListTable.php:29
1608
+ #: src/Widgets/TabbedWidget.php:159
1609
  msgid "Email"
1610
  msgstr ""
1611
 
2866
  msgid "Log in"
2867
  msgstr ""
2868
 
2869
+ #: src/Classes/RegistrationAuth.php:219
2870
  msgid "%s field is required"
2871
  msgstr ""
2872
 
2873
+ #: src/Classes/RegistrationAuth.php:228
2874
  msgid ""
2875
  "<strong>ERROR</strong>: This username is invalid because it uses illegal "
2876
  "characters. Please enter a valid username."
2877
  msgstr ""
2878
 
2879
+ #: src/Classes/RegistrationAuth.php:232
2880
  msgid "Email address is not valid"
2881
  msgstr ""
2882
 
2883
+ #: src/Classes/RegistrationAuth.php:236
2884
  msgid "Passwords do not match"
2885
  msgstr ""
2886
 
2887
+ #: src/Classes/RegistrationAuth.php:240
2888
  msgid "Email addresses do not match"
2889
  msgstr ""
2890
 
2891
+ #: src/Classes/RegistrationAuth.php:244
2892
  msgid "Password is not strong"
2893
  msgstr ""
2894
 
2895
+ #: src/Classes/RegistrationAuth.php:410
2896
  #: src/Themes/DragDrop/AbstractTheme.php:110
2897
  msgid "Registration successful."
2898
  msgstr ""
4988
  msgstr ""
4989
 
4990
  #: src/Themes/DragDrop/AbstractMemberDirectoryTheme.php:244
4991
+ #: src/Themes/DragDrop/AbstractMemberDirectoryTheme.php:834
4992
  msgid "Search"
4993
  msgstr ""
4994
 
5064
  msgid "Oldest Users First"
5065
  msgstr ""
5066
 
5067
+ #: src/Themes/DragDrop/AbstractMemberDirectoryTheme.php:688
5068
  msgid "Sort by"
5069
  msgstr ""
5070
 
5071
+ #: src/Themes/DragDrop/AbstractMemberDirectoryTheme.php:725
5072
  msgid "More Filters"
5073
  msgstr ""
5074
 
5327
  msgid "Forgot?"
5328
  msgstr ""
5329
 
5330
+ #: src/Widgets/TabbedWidget.php:181
5331
+ msgid "Username or E-mail:"
5332
+ msgstr ""
5333
+
5334
  #: src/Widgets/TabbedWidget.php:208 src/Widgets/UserPanel.php:50
5335
  msgid "Welcome %s"
5336
  msgstr ""
5383
  msgid "Unexpected error, please try again"
5384
  msgstr ""
5385
 
5386
+ #: src/Widgets/TabbedWidgetDependency.php:104
5387
  msgid "Required form field is missing"
5388
  msgstr ""
5389
 
5421
  msgid "ProfilePress"
5422
  msgstr ""
5423
 
5424
+ #. #-#-#-#-# wp-user-avatar.pot (ProfilePress 3.1.11) #-#-#-#-#
5425
  #. Plugin URI of the plugin/theme
5426
+ #. #-#-#-#-# wp-user-avatar.pot (ProfilePress 3.1.11) #-#-#-#-#
5427
  #. Author URI of the plugin/theme
5428
  msgid "https://profilepress.net"
5429
  msgstr ""
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
- === User Registration, User Profiles, Login & Membership – ProfilePress (Formerly WP User Avatar) ===
2
  Contributors: properfraction, collizo4sky
3
  Donate link: https://profilepress.net/pricing/
4
  Tags: user registration, user profile, registration form, membership, login form, login, registration, password reset, members, users, profile, front-end profile, edit profile, avatar, profile picture
5
  Requires at least: 4.7
6
  Requires PHP: 5.6
7
  Tested up to: 5.7
8
- Stable tag: 3.1.10
9
  License: GPLv2 or later
10
 
11
  Modern membership plugin for user registration, login form, user profile, member directories & content restriction.
@@ -117,6 +117,11 @@ No. You can create and manage your forms, user profiles and member directories w
117
 
118
  == Changelog ==
119
 
 
 
 
 
 
120
  = 3.1.10 =
121
  * Fixed issue where bulk delete wasn't working in some cases.
122
  * Scoped wp_list actions to manage_options capability.
1
+ === User Registration, User Profile, Login & Membership – ProfilePress (Formerly WP User Avatar) ===
2
  Contributors: properfraction, collizo4sky
3
  Donate link: https://profilepress.net/pricing/
4
  Tags: user registration, user profile, registration form, membership, login form, login, registration, password reset, members, users, profile, front-end profile, edit profile, avatar, profile picture
5
  Requires at least: 4.7
6
  Requires PHP: 5.6
7
  Tested up to: 5.7
8
+ Stable tag: 3.1.11
9
  License: GPLv2 or later
10
 
11
  Modern membership plugin for user registration, login form, user profile, member directories & content restriction.
117
 
118
  == Changelog ==
119
 
120
+ = 3.1.11 =
121
+ * Fixed missing sql unescaping in member directory search.
122
+ * Validate redirect_to urls to prevent redirect to another site.
123
+ * XSS fix by escaping variables in tab widget.
124
+
125
  = 3.1.10 =
126
  * Fixed issue where bulk delete wasn't working in some cases.
127
  * Scoped wp_list actions to manage_options capability.
src/Classes/LoginAuth.php CHANGED
@@ -90,7 +90,7 @@ class LoginAuth
90
 
91
  $login_redirect = esc_url_raw($redirect);
92
 
93
- $requested_redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : '';
94
 
95
  $login_redirection = apply_filters('login_redirect', $login_redirect, $requested_redirect_to, $user);
96
 
90
 
91
  $login_redirect = esc_url_raw($redirect);
92
 
93
+ $requested_redirect_to = isset($_REQUEST['redirect_to']) ? wp_validate_redirect($_REQUEST['redirect_to']) : '';
94
 
95
  $login_redirection = apply_filters('login_redirect', $login_redirect, $requested_redirect_to, $user);
96
 
src/Classes/ModifyRedirectDefaultLinks.php CHANGED
@@ -89,7 +89,7 @@ class ModifyRedirectDefaultLinks
89
  $url = get_permalink($login_page_id);
90
 
91
  if ( ! empty($redirect)) {
92
- $url = add_query_arg('redirect_to', rawurlencode($redirect), $url);
93
  }
94
 
95
  if ($force_reauth) {
@@ -193,7 +193,7 @@ class ModifyRedirectDefaultLinks
193
 
194
  if ($set_redirect) {
195
  $set_redirect = apply_filters('ppress_logout_redirect', esc_url_raw($set_redirect));
196
- $logout_url = add_query_arg('redirect_to', urlencode($set_redirect), $logout_url);
197
  }
198
 
199
  return esc_url_raw($logout_url);
89
  $url = get_permalink($login_page_id);
90
 
91
  if ( ! empty($redirect)) {
92
+ $url = add_query_arg('redirect_to', wp_validate_redirect(rawurlencode($redirect)), $url);
93
  }
94
 
95
  if ($force_reauth) {
193
 
194
  if ($set_redirect) {
195
  $set_redirect = apply_filters('ppress_logout_redirect', esc_url_raw($set_redirect));
196
+ $logout_url = add_query_arg('redirect_to', wp_validate_redirect(urlencode($set_redirect)), $logout_url);
197
  }
198
 
199
  return esc_url_raw($logout_url);
src/Classes/RegistrationAuth.php CHANGED
@@ -126,6 +126,12 @@ class RegistrationAuth
126
  }
127
 
128
  if (in_array($key, $valid_userdata)) {
 
 
 
 
 
 
129
  $segregated_userdata[$key] = sanitize_text_field($value);
130
  }
131
  }
126
  }
127
 
128
  if (in_array($key, $valid_userdata)) {
129
+
130
+ if(in_array($key, ['reg_email', 'reg_email2'])) {
131
+ $segregated_userdata[$key] = sanitize_email($value);
132
+ continue;
133
+ }
134
+
135
  $segregated_userdata[$key] = sanitize_text_field($value);
136
  }
137
  }
src/Functions/GlobalFunctions.php CHANGED
@@ -240,7 +240,7 @@ function ppress_login_redirect()
240
  }
241
  }
242
 
243
- return apply_filters('ppress_login_redirect', esc_url_raw($redirect));
244
  }
245
 
246
  /**
@@ -354,7 +354,7 @@ function ppress_login_url($redirect = '')
354
  }
355
 
356
  if ( ! empty($redirect)) {
357
- $login_url = add_query_arg('redirect_to', rawurlencode($redirect), $login_url);
358
  }
359
 
360
  return apply_filters('ppress_login_url', $login_url);
240
  }
241
  }
242
 
243
+ return apply_filters('ppress_login_redirect', wp_validate_redirect(esc_url_raw($redirect)));
244
  }
245
 
246
  /**
354
  }
355
 
356
  if ( ! empty($redirect)) {
357
+ $login_url = add_query_arg('redirect_to', wp_validate_redirect(rawurlencode($redirect)), $login_url);
358
  }
359
 
360
  return apply_filters('ppress_login_url', $login_url);
src/ShortcodeParser/LoginFormTag.php CHANGED
@@ -85,7 +85,7 @@ class LoginFormTag extends FormProcessor
85
  $referrer_url = wp_get_referer() ? wp_get_referer() : '';
86
 
87
  if ( ! empty($_REQUEST['redirect_to'])) {
88
- $redirect = rawurldecode($_REQUEST['redirect_to']);
89
  }
90
 
91
  if ( ! empty($redirect)) {
85
  $referrer_url = wp_get_referer() ? wp_get_referer() : '';
86
 
87
  if ( ! empty($_REQUEST['redirect_to'])) {
88
+ $redirect = wp_validate_redirect(rawurldecode($_REQUEST['redirect_to']));
89
  }
90
 
91
  if ( ! empty($redirect)) {
src/Themes/DragDrop/AbstractMemberDirectoryTheme.php CHANGED
@@ -614,7 +614,8 @@ abstract class AbstractMemberDirectoryTheme extends AbstractTheme
614
  $index2++;
615
 
616
  $filter_queries .= $wpdb->prepare(
617
- "({$wpdb->usermeta}.meta_key = '$meta_key' AND {$wpdb->usermeta}.meta_value LIKE %s)",
 
618
  '%' . $wpdb->esc_like($value) . '%'
619
  );
620
 
@@ -626,7 +627,8 @@ abstract class AbstractMemberDirectoryTheme extends AbstractTheme
626
  } else {
627
 
628
  $filter_queries .= $wpdb->prepare(
629
- "({$wpdb->usermeta}.meta_key = '$meta_key' AND {$wpdb->usermeta}.meta_value = %s)",
 
630
  $meta_value
631
  );
632
  }
614
  $index2++;
615
 
616
  $filter_queries .= $wpdb->prepare(
617
+ "({$wpdb->usermeta}.meta_key = %s AND {$wpdb->usermeta}.meta_value LIKE %s)",
618
+ $meta_key,
619
  '%' . $wpdb->esc_like($value) . '%'
620
  );
621
 
627
  } else {
628
 
629
  $filter_queries .= $wpdb->prepare(
630
+ "({$wpdb->usermeta}.meta_key = %s AND {$wpdb->usermeta}.meta_value = %s)",
631
+ $meta_key,
632
  $meta_value
633
  );
634
  }
src/Widgets/TabbedWidget.php CHANGED
@@ -28,8 +28,8 @@ class TabbedWidget extends \WP_Widget
28
  {
29
  if (isset($_POST['tabbed_login_submit'])) {
30
  $this->widget_status = @TabbedWidgetDependency::login(
31
- trim($_POST['tabbed-login-name']),
32
- $_POST['tabbed-login-password']
33
  );
34
  }
35
 
@@ -39,9 +39,9 @@ class TabbedWidget extends \WP_Widget
39
 
40
  if (isset($_POST['tabbed_reg_submit'])) {
41
  $this->widget_status = @TabbedWidgetDependency::registration(
42
- $_POST['tabbed-reg-username'],
43
- $_POST['tabbed-reg-password'],
44
- $_POST['tabbed-reg-email']
45
  );
46
  }
47
  }
@@ -133,10 +133,10 @@ class TabbedWidget extends \WP_Widget
133
  }
134
  ?>
135
  <input type="hidden" name="is-pp-tab-widget" value="true">
136
- <input type="text" name="tabbed-login-name" value="<?php echo(isset($_POST['tabbed-login-name']) ? $_POST['tabbed-login-name'] : ''); ?>" placeholder="<?php echo $login_placeholder; ?>" required/>
137
  </li>
138
  <li>
139
- <input name="tabbed-login-password" value="<?php echo(isset($_POST['tabbed-login-password']) ? $_POST['tabbed-login-password'] : ''); ?>" type="password" placeholder="Password" required/>
140
  </li>
141
  <li>
142
  <input data-pp-submit-label="<?= $login_btn_label ?>" data-pp-processing-label="<?= $processing_label ?>" name="tabbed_login_submit" type="submit" value="<?= $login_btn_label ?>" class="tb-button"/>
@@ -153,13 +153,13 @@ class TabbedWidget extends \WP_Widget
153
  <ul class="tab-widget" style="list-style: none">
154
  <li>
155
  <input type="hidden" name="is-pp-tab-widget" value="true">
156
- <input type="text" name="tabbed-reg-username" placeholder="Username" value="<?php echo(isset($_POST['tabbed-reg-username']) ? $_POST['tabbed-reg-username'] : ''); ?>" required/>
157
  </li>
158
  <li>
159
- <input type="email" name="tabbed-reg-email" placeholder="Email" value="<?php echo(isset($_POST['tabbed-reg-email']) ? $_POST['tabbed-reg-email'] : ''); ?>" required/>
160
  </li>
161
  <li>
162
- <input type="password" name="tabbed-reg-password" placeholder="Password" value="<?php echo(isset($_POST['tabbed-reg-password']) ? $_POST['tabbed-reg-password'] : ''); ?>" required/>
163
  </li>
164
  <li>
165
  <input data-pp-submit-label="<?= $signup_btn_label ?>" data-pp-processing-label="<?= $processing_label ?>" name="tabbed_reg_submit" type="submit" value="<?= $signup_btn_label ?>" class="tb-button"/>
@@ -178,7 +178,7 @@ class TabbedWidget extends \WP_Widget
178
  <form data-pp-form-submit="passwordreset" method="post" action="<?php echo esc_url($_SERVER['REQUEST_URI']); ?>">
179
  <ul class="tab-widget" style="list-style: none">
180
  <li>
181
- <input name="tabbed-user-login" value="<?php echo(isset($_POST['tabbed-user-login']) ? $_POST['tabbed-user-login'] : ''); ?>" type="text" placeholder="Username or E-mail:" required/>
182
  <input type="hidden" name="is-pp-tab-widget" value="true">
183
  </li>
184
  <li>
28
  {
29
  if (isset($_POST['tabbed_login_submit'])) {
30
  $this->widget_status = @TabbedWidgetDependency::login(
31
+ trim(wp_unslash($_POST['tabbed-login-name'])), // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
32
+ $_POST['tabbed-login-password'] // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash
33
  );
34
  }
35
 
39
 
40
  if (isset($_POST['tabbed_reg_submit'])) {
41
  $this->widget_status = @TabbedWidgetDependency::registration(
42
+ wp_unslash($_POST['tabbed-reg-username']), // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
43
+ $_POST['tabbed-reg-password'], // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash
44
+ wp_unslash($_POST['tabbed-reg-email']) // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
45
  );
46
  }
47
  }
133
  }
134
  ?>
135
  <input type="hidden" name="is-pp-tab-widget" value="true">
136
+ <input type="text" name="tabbed-login-name" value="<?php echo esc_attr(ppress_var($_POST, 'tabbed-login-name', '')); ?>" placeholder="<?php echo $login_placeholder; ?>" required/>
137
  </li>
138
  <li>
139
+ <input name="tabbed-login-password" value="<?php echo esc_attr(ppress_var($_POST, 'tabbed-login-password', '')); ?>" type="password" placeholder="<?php echo esc_html__('Password', 'wp-user-avatar'); ?>" required/>
140
  </li>
141
  <li>
142
  <input data-pp-submit-label="<?= $login_btn_label ?>" data-pp-processing-label="<?= $processing_label ?>" name="tabbed_login_submit" type="submit" value="<?= $login_btn_label ?>" class="tb-button"/>
153
  <ul class="tab-widget" style="list-style: none">
154
  <li>
155
  <input type="hidden" name="is-pp-tab-widget" value="true">
156
+ <input type="text" name="tabbed-reg-username" placeholder="<?php echo esc_html__('Username', 'wp-user-avatar'); ?>" value="<?php echo esc_attr(ppress_var($_POST, 'tabbed-reg-username', '')); ?>" required/>
157
  </li>
158
  <li>
159
+ <input type="email" name="tabbed-reg-email" placeholder="<?php echo esc_html__('Email', 'wp-user-avatar'); ?>" value="<?php echo esc_attr(ppress_var($_POST, 'tabbed-reg-email', '')); ?>" required/>
160
  </li>
161
  <li>
162
+ <input type="password" name="tabbed-reg-password" placeholder="<?php echo esc_html__('Password', 'wp-user-avatar'); ?>" value="<?php echo esc_attr(ppress_var($_POST, 'tabbed-reg-password', '')); ?>" required/>
163
  </li>
164
  <li>
165
  <input data-pp-submit-label="<?= $signup_btn_label ?>" data-pp-processing-label="<?= $processing_label ?>" name="tabbed_reg_submit" type="submit" value="<?= $signup_btn_label ?>" class="tb-button"/>
178
  <form data-pp-form-submit="passwordreset" method="post" action="<?php echo esc_url($_SERVER['REQUEST_URI']); ?>">
179
  <ul class="tab-widget" style="list-style: none">
180
  <li>
181
+ <input name="tabbed-user-login" value="<?php echo esc_attr(ppress_var($_POST, 'tabbed-user-login', '')); ?>" type="text" placeholder="<?php echo esc_html__('Username or E-mail:', 'wp-user-avatar'); ?>" required/>
182
  <input type="hidden" name="is-pp-tab-widget" value="true">
183
  </li>
184
  <li>
src/Widgets/TabbedWidgetDependency.php CHANGED
@@ -57,7 +57,6 @@ class TabbedWidgetDependency
57
  * @param string $username
58
  * @param string $password
59
  * @param string $email
60
- * @param string $auto_login_after_reg
61
  *
62
  * @return \WP_Error|string
63
  */
57
  * @param string $username
58
  * @param string $password
59
  * @param string $email
 
60
  *
61
  * @return \WP_Error|string
62
  */
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit2f973ffc2ef552a485c3cf0b833fe636::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit0fdb422a45e4c3c2b0634d6336d12939::getLoader();
vendor/composer/InstalledVersions.php CHANGED
@@ -29,7 +29,7 @@ private static $installed = array (
29
  'aliases' =>
30
  array (
31
  ),
32
- 'reference' => '69935227c7d3839dcde9598dc7e3b5e793e43454',
33
  'name' => '__root__',
34
  ),
35
  'versions' =>
@@ -41,7 +41,7 @@ private static $installed = array (
41
  'aliases' =>
42
  array (
43
  ),
44
- 'reference' => '69935227c7d3839dcde9598dc7e3b5e793e43454',
45
  ),
46
  'collizo4sky/persist-admin-notices-dismissal' =>
47
  array (
29
  'aliases' =>
30
  array (
31
  ),
32
+ 'reference' => 'f347da73db260d9e46ea435d42e3288edd3f2249',
33
  'name' => '__root__',
34
  ),
35
  'versions' =>
41
  'aliases' =>
42
  array (
43
  ),
44
+ 'reference' => 'f347da73db260d9e46ea435d42e3288edd3f2249',
45
  ),
46
  'collizo4sky/persist-admin-notices-dismissal' =>
47
  array (
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit2f973ffc2ef552a485c3cf0b833fe636
6
  {
7
  private static $loader;
8
 
@@ -24,15 +24,15 @@ class ComposerAutoloaderInit2f973ffc2ef552a485c3cf0b833fe636
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
- spl_autoload_register(array('ComposerAutoloaderInit2f973ffc2ef552a485c3cf0b833fe636', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
29
- spl_autoload_unregister(array('ComposerAutoloaderInit2f973ffc2ef552a485c3cf0b833fe636', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
  require __DIR__ . '/autoload_static.php';
34
 
35
- call_user_func(\Composer\Autoload\ComposerStaticInit2f973ffc2ef552a485c3cf0b833fe636::getInitializer($loader));
36
  } else {
37
  $map = require __DIR__ . '/autoload_namespaces.php';
38
  foreach ($map as $namespace => $path) {
@@ -53,19 +53,19 @@ class ComposerAutoloaderInit2f973ffc2ef552a485c3cf0b833fe636
53
  $loader->register(true);
54
 
55
  if ($useStaticLoader) {
56
- $includeFiles = Composer\Autoload\ComposerStaticInit2f973ffc2ef552a485c3cf0b833fe636::$files;
57
  } else {
58
  $includeFiles = require __DIR__ . '/autoload_files.php';
59
  }
60
  foreach ($includeFiles as $fileIdentifier => $file) {
61
- composerRequire2f973ffc2ef552a485c3cf0b833fe636($fileIdentifier, $file);
62
  }
63
 
64
  return $loader;
65
  }
66
  }
67
 
68
- function composerRequire2f973ffc2ef552a485c3cf0b833fe636($fileIdentifier, $file)
69
  {
70
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
71
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit0fdb422a45e4c3c2b0634d6336d12939
6
  {
7
  private static $loader;
8
 
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
+ spl_autoload_register(array('ComposerAutoloaderInit0fdb422a45e4c3c2b0634d6336d12939', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
29
+ spl_autoload_unregister(array('ComposerAutoloaderInit0fdb422a45e4c3c2b0634d6336d12939', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
  require __DIR__ . '/autoload_static.php';
34
 
35
+ call_user_func(\Composer\Autoload\ComposerStaticInit0fdb422a45e4c3c2b0634d6336d12939::getInitializer($loader));
36
  } else {
37
  $map = require __DIR__ . '/autoload_namespaces.php';
38
  foreach ($map as $namespace => $path) {
53
  $loader->register(true);
54
 
55
  if ($useStaticLoader) {
56
+ $includeFiles = Composer\Autoload\ComposerStaticInit0fdb422a45e4c3c2b0634d6336d12939::$files;
57
  } else {
58
  $includeFiles = require __DIR__ . '/autoload_files.php';
59
  }
60
  foreach ($includeFiles as $fileIdentifier => $file) {
61
+ composerRequire0fdb422a45e4c3c2b0634d6336d12939($fileIdentifier, $file);
62
  }
63
 
64
  return $loader;
65
  }
66
  }
67
 
68
+ function composerRequire0fdb422a45e4c3c2b0634d6336d12939($fileIdentifier, $file)
69
  {
70
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
71
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit2f973ffc2ef552a485c3cf0b833fe636
8
  {
9
  public static $files = array (
10
  'fda73876e8be17735f680f484cec1679' => __DIR__ . '/../..' . '/src/Functions/custom-settings-api.php',
@@ -286,9 +286,9 @@ class ComposerStaticInit2f973ffc2ef552a485c3cf0b833fe636
286
  public static function getInitializer(ClassLoader $loader)
287
  {
288
  return \Closure::bind(function () use ($loader) {
289
- $loader->prefixLengthsPsr4 = ComposerStaticInit2f973ffc2ef552a485c3cf0b833fe636::$prefixLengthsPsr4;
290
- $loader->prefixDirsPsr4 = ComposerStaticInit2f973ffc2ef552a485c3cf0b833fe636::$prefixDirsPsr4;
291
- $loader->classMap = ComposerStaticInit2f973ffc2ef552a485c3cf0b833fe636::$classMap;
292
 
293
  }, null, ClassLoader::class);
294
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit0fdb422a45e4c3c2b0634d6336d12939
8
  {
9
  public static $files = array (
10
  'fda73876e8be17735f680f484cec1679' => __DIR__ . '/../..' . '/src/Functions/custom-settings-api.php',
286
  public static function getInitializer(ClassLoader $loader)
287
  {
288
  return \Closure::bind(function () use ($loader) {
289
+ $loader->prefixLengthsPsr4 = ComposerStaticInit0fdb422a45e4c3c2b0634d6336d12939::$prefixLengthsPsr4;
290
+ $loader->prefixDirsPsr4 = ComposerStaticInit0fdb422a45e4c3c2b0634d6336d12939::$prefixDirsPsr4;
291
+ $loader->classMap = ComposerStaticInit0fdb422a45e4c3c2b0634d6336d12939::$classMap;
292
 
293
  }, null, ClassLoader::class);
294
  }
vendor/composer/installed.php CHANGED
@@ -6,7 +6,7 @@
6
  'aliases' =>
7
  array (
8
  ),
9
- 'reference' => '69935227c7d3839dcde9598dc7e3b5e793e43454',
10
  'name' => '__root__',
11
  ),
12
  'versions' =>
@@ -18,7 +18,7 @@
18
  'aliases' =>
19
  array (
20
  ),
21
- 'reference' => '69935227c7d3839dcde9598dc7e3b5e793e43454',
22
  ),
23
  'collizo4sky/persist-admin-notices-dismissal' =>
24
  array (
6
  'aliases' =>
7
  array (
8
  ),
9
+ 'reference' => 'f347da73db260d9e46ea435d42e3288edd3f2249',
10
  'name' => '__root__',
11
  ),
12
  'versions' =>
18
  'aliases' =>
19
  array (
20
  ),
21
+ 'reference' => 'f347da73db260d9e46ea435d42e3288edd3f2249',
22
  ),
23
  'collizo4sky/persist-admin-notices-dismissal' =>
24
  array (
wp-user-avatar.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: ProfilePress
4
  * Plugin URI: https://profilepress.net
5
  * Description: The modern WordPress membership and user profile plugin.
6
- * Version: 3.1.10
7
  * Author: ProfilePress Team
8
  * Author URI: https://profilepress.net
9
  * Text Domain: wp-user-avatar
@@ -14,7 +14,7 @@
14
  defined('ABSPATH') or die("No script kiddies please!");
15
 
16
  define('PROFILEPRESS_SYSTEM_FILE_PATH', __FILE__);
17
- define('PPRESS_VERSION_NUMBER', '3.1.10');
18
 
19
  require __DIR__ . '/vendor/autoload.php';
20
 
3
  * Plugin Name: ProfilePress
4
  * Plugin URI: https://profilepress.net
5
  * Description: The modern WordPress membership and user profile plugin.
6
+ * Version: 3.1.11
7
  * Author: ProfilePress Team
8
  * Author URI: https://profilepress.net
9
  * Text Domain: wp-user-avatar
14
  defined('ABSPATH') or die("No script kiddies please!");
15
 
16
  define('PROFILEPRESS_SYSTEM_FILE_PATH', __FILE__);
17
+ define('PPRESS_VERSION_NUMBER', '3.1.11');
18
 
19
  require __DIR__ . '/vendor/autoload.php';
20