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 +69 -106 1.0.211.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) {
@@ -137,9 +40,9 @@
137 40 */
138 41 function uwp_get_register_page_url() {
139 42 $register_url = uwp_get_page_link('register');
140 43 if (isset($_REQUEST['redirect_to']) && !empty($_REQUEST['redirect_to'])) {
141 - $redirect_to = esc_url($_REQUEST['redirect_to']);
44 + $redirect_to = rawurlencode( $_REQUEST['redirect_to'] );
142 45 $register_url = add_query_arg('redirect_to', $redirect_to, $register_url);
143 46 }
144 47 return $register_url;
145 48 }
@@ -315,9 +218,9 @@
315 218 *
316 219 * @since 1.0.0
317 220 * @package userswp
318 221 *
319 - * @param string $page_data Page data array.
222 + * @param array $page_data Page data array.
320 223 * @param string $page_type Page type.
321 224 *
322 225 * @return array Page data array.
323 226 */
@@ -330,12 +233,11 @@
330 233 'slug' => $page->post_name,
331 234 'link' => get_permalink( $page->ID ),
332 235 );
333 236 }
334 - return $page_data;
237 + return apply_filters('uwp_page_url_data', $page_data);
335 238 }
336 239
337 -
338 240 add_action('init', 'uwp_process_activation_link');
339 241
340 242 /**
341 243 * Handles the activation request coming via email activation link.
@@ -346,17 +248,29 @@
346 248 * @return void
347 249 */
348 250 function uwp_process_activation_link() {
349 251 if (isset($_GET['uwp_activate']) && $_GET['uwp_activate'] == 'yes') {
252 + if(!defined('DONOTCACHEPAGE')){
253 + define( 'DONOTCACHEPAGE', true );
254 + }
350 255 $key = strip_tags(esc_sql($_GET['key']));
351 256 $login = strip_tags(esc_sql($_GET['login']));
352 257 $login_page = uwp_get_page_id('login_page', false);
353 - $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 + }
354 264
265 + clean_user_cache($user);
266 +
267 + $result = check_password_reset_key($key, $login);
268 +
355 269 if (is_wp_error($result)) {
356 270 if ($login_page) {
357 271 $redirect_to = add_query_arg(array('uwp_err' => 'act_wrong'), get_permalink($login_page));
358 - wp_redirect($redirect_to);
272 + wp_safe_redirect($redirect_to);
359 273 exit();
360 274 }
361 275 } else {
362 276 if (!$result) {
@@ -361,9 +275,9 @@
361 275 } else {
362 276 if (!$result) {
363 277 if ($login_page) {
364 278 $redirect_to = add_query_arg(array('uwp_err' => 'act_error'), get_permalink($login_page));
365 - wp_redirect($redirect_to);
279 + wp_safe_redirect($redirect_to);
366 280 exit();
367 281 }
368 282 } else {
369 283 if ($login_page) {
@@ -369,15 +283,64 @@
369 283 if ($login_page) {
370 284 $user_data = get_user_by('login', $login);
371 285 update_user_meta( $user_data->ID, 'uwp_mod', '0' );
372 286 $redirect_to = add_query_arg(array('uwp_err' => 'act_success'), get_permalink($login_page));
373 - do_action('uwp_email_activation_success', $user_data->ID, $key);
374 - wp_redirect($redirect_to);
287 + do_action('uwp_email_activation_success', $user_data->ID);
288 + wp_safe_redirect($redirect_to);
375 289 exit();
376 290 }
377 291 }
378 292 }
379 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 + }
380 343 }
381 344
382 345 function uwp_current_page_url() {
383 346 $pageURL = 'http';