PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.2.74
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.2.74
1.2.74 1.2.73 1.2.72 1.2.71 1.2.70 1.2.69 1.2.68 1.2.67 1.2.66 1.2.65 1.2.64 1.2.63 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 All 174 releases
← All changes | includes/helpers/permalinks.php +81 -108 1.0.131.2.74 View file →
@@ -3,105 +3,8 @@
3 3 * Gets the UsersWP page permalink based on page type.
4 4 *
5 5 * @since 1.0.0
6 6 * @package userswp
7 - * @param string|bool $type Page type.
8 - * @return string Page permalink.
9 - */
10 -function get_uwp_page_permalink($type) {
11 - $page = new UsersWP_Pages();
12 - return $page->get_page_permalink($type);
13 -}
14 -
15 -/**
16 - * Gets the UsersWP register page permalink.
17 - *
18 - * @since 1.0.0
19 - * @package userswp
20 - * @return string Page permalink.
21 - */
22 -function get_uwp_register_permalink() {
23 - $page = new UsersWP_Pages();
24 - return $page->get_register_permalink();
25 -}
26 -
27 -/**
28 - * Gets the UsersWP login page permalink.
29 - *
30 - * @since 1.0.0
31 - * @package userswp
32 - * @return string Page permalink.
33 - */
34 -function get_uwp_login_permalink() {
35 - $page = new UsersWP_Pages();
36 - return $page->get_login_permalink();
37 -}
38 -
39 -/**
40 - * Gets the UsersWP forgot password page permalink.
41 - *
42 - * @since 1.0.0
43 - * @package userswp
44 - * @return string Page permalink.
45 - */
46 -function get_uwp_forgot_permalink() {
47 - $page = new UsersWP_Pages();
48 - return $page->get_forgot_permalink();
49 -}
50 -
51 -/**
52 - * Gets the UsersWP reset password page permalink.
53 - *
54 - * @since 1.0.0
55 - * @package userswp
56 - * @return string Page permalink.
57 - */
58 -function get_uwp_reset_permalink() {
59 - $page = new UsersWP_Pages();
60 - return $page->get_reset_permalink();
61 -}
62 -
63 -/**
64 - * Gets the UsersWP account page permalink.
65 - *
66 - * @since 1.0.0
67 - * @package userswp
68 - * @return string Page permalink.
69 - */
70 -function get_uwp_account_permalink() {
71 - $page = new UsersWP_Pages();
72 - return $page->get_account_permalink();
73 -}
74 -
75 -/**
76 - * Gets the UsersWP profile page permalink.
77 - *
78 - * @since 1.0.0
79 - * @package userswp
80 - * @return string Page permalink.
81 - */
82 -function get_uwp_profile_permalink() {
83 - $page = new UsersWP_Pages();
84 - return $page->get_profile_permalink();
85 -}
86 -
87 -/**
88 - * Gets the UsersWP users page permalink.
89 - *
90 - * @since 1.0.0
91 - * @package userswp
92 - * @return string Page permalink.
93 - */
94 -function get_uwp_users_permalink() {
95 - $page = new UsersWP_Pages();
96 - return $page->get_users_permalink();
97 -}
98 -
99 -/**
100 - * Gets the UsersWP page permalink based on page type.
101 - *
102 - * @since 1.0.0
103 - * @package userswp
104 7 * @param string $page_type Page type.
105 8 * @return string Page permalink.
106 9 */
107 10 function uwp_get_page_link($page_type) {
@@ -135,9 +38,14 @@
135 38 *
136 39 * @return array|bool|mixed Page link.
137 40 */
138 41 function uwp_get_register_page_url() {
139 - return uwp_get_page_url_data('register_page');
42 + $register_url = uwp_get_page_link('register');
43 + if (isset($_REQUEST['redirect_to']) && !empty($_REQUEST['redirect_to'])) {
44 + $redirect_to = rawurlencode( $_REQUEST['redirect_to'] );
45 + $register_url = add_query_arg('redirect_to', $redirect_to, $register_url);
46 + }
47 + return $register_url;
140 48 }
141 49
142 50 /**
143 51 * Returns the page link for login page.
@@ -147,9 +55,14 @@
147 55 *
148 56 * @return array|bool|mixed Page link.
149 57 */
150 58 function uwp_get_login_page_url() {
151 - return uwp_get_page_url_data('login_page');
59 + $login_url = uwp_get_page_link('login');
60 + if (isset($_REQUEST['redirect_to']) && !empty($_REQUEST['redirect_to'])) {
61 + $redirect_to = esc_url($_REQUEST['redirect_to']);
62 + $login_url = add_query_arg('redirect_to', $redirect_to, $login_url);
63 + }
64 + return $login_url;
152 65 }
153 66
154 67 /**
155 68 * Returns the page link for forgot password page.
@@ -159,9 +72,9 @@
159 72 *
160 73 * @return array|bool|mixed Page link.
161 74 */
162 75 function uwp_get_forgot_page_url() {
163 - return uwp_get_page_url_data('forgot_page');
76 + return uwp_get_page_link('forgot');
164 77 }
165 78
166 79 /**
167 80 * Returns the page link for change password page.
@@ -305,9 +218,9 @@
305 218 *
306 219 * @since 1.0.0
307 220 * @package userswp
308 221 *
309 - * @param string $page_data Page data array.
222 + * @param array $page_data Page data array.
310 223 * @param string $page_type Page type.
311 224 *
312 225 * @return array Page data array.
313 226 */
@@ -320,12 +233,11 @@
320 233 'slug' => $page->post_name,
321 234 'link' => get_permalink( $page->ID ),
322 235 );
323 236 }
324 - return $page_data;
237 + return apply_filters('uwp_page_url_data', $page_data);
325 238 }
326 239
327 -
328 240 add_action('init', 'uwp_process_activation_link');
329 241
330 242 /**
331 243 * Handles the activation request coming via email activation link.
@@ -336,17 +248,29 @@
336 248 * @return void
337 249 */
338 250 function uwp_process_activation_link() {
339 251 if (isset($_GET['uwp_activate']) && $_GET['uwp_activate'] == 'yes') {
252 + if(!defined('DONOTCACHEPAGE')){
253 + define( 'DONOTCACHEPAGE', true );
254 + }
340 255 $key = strip_tags(esc_sql($_GET['key']));
341 256 $login = strip_tags(esc_sql($_GET['login']));
342 257 $login_page = uwp_get_page_id('login_page', false);
343 - $result = uwp_check_activation_key($key, $login);
258 + $user = get_user_by('login', $login);
259 + if (!$user){
260 + $redirect_to = add_query_arg(array('uwp_err' => 'act_wrong'), get_permalink($login_page));
261 + wp_redirect($redirect_to);
262 + exit();
263 + }
344 264
265 + clean_user_cache($user);
266 +
267 + $result = check_password_reset_key($key, $login);
268 +
345 269 if (is_wp_error($result)) {
346 270 if ($login_page) {
347 271 $redirect_to = add_query_arg(array('uwp_err' => 'act_wrong'), get_permalink($login_page));
348 - wp_redirect($redirect_to);
272 + wp_safe_redirect($redirect_to);
349 273 exit();
350 274 }
351 275 } else {
352 276 if (!$result) {
@@ -351,9 +275,9 @@
351 275 } else {
352 276 if (!$result) {
353 277 if ($login_page) {
354 278 $redirect_to = add_query_arg(array('uwp_err' => 'act_error'), get_permalink($login_page));
355 - wp_redirect($redirect_to);
279 + wp_safe_redirect($redirect_to);
356 280 exit();
357 281 }
358 282 } else {
359 283 if ($login_page) {
@@ -359,15 +283,64 @@
359 283 if ($login_page) {
360 284 $user_data = get_user_by('login', $login);
361 285 update_user_meta( $user_data->ID, 'uwp_mod', '0' );
362 286 $redirect_to = add_query_arg(array('uwp_err' => 'act_success'), get_permalink($login_page));
363 - do_action('uwp_email_activation_success', $user_data->ID, $key);
364 - wp_redirect($redirect_to);
287 + do_action('uwp_email_activation_success', $user_data->ID);
288 + wp_safe_redirect($redirect_to);
365 289 exit();
366 290 }
367 291 }
368 292 }
369 293 }
294 +}
295 +
296 +add_action('template_redirect', 'uwp_process_new_email_activation_link');
297 +/**
298 + * Handles the new email activation request coming via email activation link.
299 + *
300 + * @since 1.0.0
301 + * @package userswp
302 + *
303 + * @return void
304 + */
305 +function uwp_process_new_email_activation_link() {
306 + if (isset($_GET['uwp_new_email']) && $_GET['uwp_new_email'] == 'yes') {
307 + if(!defined('DONOTCACHEPAGE')){
308 + define( 'DONOTCACHEPAGE', true );
309 + }
310 + $key = strip_tags(esc_sql($_GET['key']));
311 + $login = strip_tags(esc_sql($_GET['login']));
312 + $account_page = uwp_get_page_id('account_page', false);
313 + $user = get_user_by('login', $login);
314 + if (!$user){
315 + return;
316 + }
317 +
318 + if ( ! is_user_logged_in()) {
319 + $login_page = uwp_get_page_id( 'login_page', false );
320 + $redirect_to = add_query_arg(array('redirect_to' => urlencode(uwp_current_page_url())), get_permalink($login_page));
321 + wp_safe_redirect($redirect_to);
322 + exit();
323 + }
324 +
325 + clean_user_cache($user);
326 +
327 + $hash = get_user_meta($user->ID, 'uwp_update_email_hash', true);
328 +
329 + if ( $user && isset($hash) && hash_equals( $hash['hash'], $key ) && ! empty( $hash['newemail'] ) ) {
330 + $args = array(
331 + 'ID' => $user->ID,
332 + 'user_email' => $hash['newemail'],
333 + );
334 + $user_id = wp_update_user( $args );
335 + delete_user_meta($user_id, 'uwp_update_email_hash', true);
336 +
337 + $redirect_to = add_query_arg(array('uwp_err' => 'act_email_success'), get_permalink($account_page));
338 + do_action('uwp_new_email_activation_success', $user->ID);
339 + wp_safe_redirect($redirect_to);
340 + exit();
341 + }
342 + }
370 343 }
371 344
372 345 function uwp_current_page_url() {
373 346 $pageURL = 'http';