PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.0.21
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.0.21
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 1.0.22 All 173 releases
userswp / includes / helpers / permalinks.php

permalinks.php in UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP 1.0.21, at includes/helpers/permalinks.php

422 lines 11.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Gets the UsersWP page permalink based on page type.
4 *
5 * @since 1.0.0
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 * @param string $page_type Page type.
105 * @return string Page permalink.
106 */
107 function uwp_get_page_link($page_type) {
108 $page = new UsersWP_Pages();
109 return $page->get_page_link($page_type);
110 }
111
112 /**
113 * Builds the profile page url based on the tab and sub tab given
114 * yoursite.com/profile/username
115 * yoursite.com/profile/username/tab
116 * yoursite.com/profile/username/tab/subtab
117 *
118 * @since 1.0.0
119 * @package userswp
120 * @param int $user_id User ID.
121 * @param string|bool $tab Optional. Main tab
122 * @param string|bool $subtab Optional. Sub tab.
123 * @return string Built profile page link.
124 */
125 function uwp_build_profile_tab_url($user_id, $tab = false, $subtab = false) {
126 $page = new UsersWP_Pages();
127 return $page->build_profile_tab_url($user_id, $tab, $subtab);
128 }
129
130 /**
131 * Returns the page link for register page.
132 *
133 * @since 1.0.0
134 * @package userswp
135 *
136 * @return array|bool|mixed Page link.
137 */
138 function uwp_get_register_page_url() {
139 $register_url = uwp_get_page_link('register');
140 if (isset($_REQUEST['redirect_to']) && !empty($_REQUEST['redirect_to'])) {
141 $redirect_to = esc_url($_REQUEST['redirect_to']);
142 $register_url = add_query_arg('redirect_to', $redirect_to, $register_url);
143 }
144 return $register_url;
145 }
146
147 /**
148 * Returns the page link for login page.
149 *
150 * @since 1.0.0
151 * @package userswp
152 *
153 * @return array|bool|mixed Page link.
154 */
155 function uwp_get_login_page_url() {
156 $login_url = uwp_get_page_link('login');
157 if (isset($_REQUEST['redirect_to']) && !empty($_REQUEST['redirect_to'])) {
158 $redirect_to = esc_url($_REQUEST['redirect_to']);
159 $login_url = add_query_arg('redirect_to', $redirect_to, $login_url);
160 }
161 return $login_url;
162 }
163
164 /**
165 * Returns the page link for forgot password page.
166 *
167 * @since 1.0.0
168 * @package userswp
169 *
170 * @return array|bool|mixed Page link.
171 */
172 function uwp_get_forgot_page_url() {
173 return uwp_get_page_link('forgot');
174 }
175
176 /**
177 * Returns the page link for change password page.
178 *
179 * @since 1.0.0
180 * @package userswp
181 *
182 * @return array|bool|mixed Page link.
183 */
184 function uwp_get_change_page_url() {
185 return uwp_get_page_url_data('change_page');
186 }
187
188 /**
189 * Returns the page link for reset password page.
190 *
191 * @since 1.0.0
192 * @package userswp
193 *
194 * @return array|bool|mixed Page link.
195 */
196 function uwp_get_reset_page_url() {
197 return uwp_get_page_url_data('reset_page');
198 }
199
200 /**
201 * Returns the page link for account page.
202 *
203 * @since 1.0.0
204 * @package userswp
205 *
206 * @return array|bool|mixed Page link.
207 */
208 function uwp_get_account_page_url() {
209 return uwp_get_page_url_data('account_page');
210 }
211
212 /**
213 * Returns the page link for profile page.
214 *
215 * @since 1.0.0
216 * @package userswp
217 *
218 * @return array|bool|mixed Page link.
219 */
220 function uwp_get_profile_page_url() {
221 return uwp_get_page_url_data('profile_page');
222 }
223
224 /**
225 * Returns the page link for users page.
226 *
227 * @since 1.0.0
228 * @package userswp
229 *
230 * @return array|bool|mixed Page link.
231 */
232 function uwp_get_users_page_url() {
233 return uwp_get_page_url_data('users_page');
234 }
235
236 /**
237 * Returns the page info like page title, slug and link.
238 * If output type is "link", then only the link is returned.
239 *
240 * @since 1.0.0
241 * @package userswp
242 *
243 * @param string $page_type Page type.
244 * @param string $output_type Link or Array?
245 *
246 * @return array|bool|mixed Page info or link.
247 */
248 function uwp_get_page_url_data($page_type, $output_type = 'link') {
249
250 $install_type = uwp_get_installation_type();
251
252 $page_data = array();
253 switch ($install_type) {
254 case "single":
255 $page_data = uwp_get_page_url_page_data($page_data, $page_type);
256 break;
257 case "multi_na_all":
258 $page_data = uwp_get_page_url_page_data($page_data, $page_type);
259 break;
260 case "multi_na_site_id":
261 if (defined('UWP_ROOT_PAGES')) {
262 $blog_id = UWP_ROOT_PAGES;
263 } else {
264 $blog_id = (int) get_network()->site_id;
265 }
266 $current_blog_id = get_current_blog_id();
267 if (!is_int($blog_id)) {
268 $page_data = array();
269 } else {
270 if ($blog_id == $current_blog_id) {
271 $page_data = uwp_get_page_url_page_data($page_data, $page_type);
272 } else {
273 // Switch to the new blog.
274 switch_to_blog( $blog_id );
275 $page_data = uwp_get_page_url_page_data($page_data, $page_type);
276 // Restore original blog.
277 restore_current_blog();
278 }
279 }
280 break;
281 case "multi_na_default":
282 $is_main_site = is_main_site();
283 if ($is_main_site) {
284 $page_data = uwp_get_page_url_page_data($page_data, $page_type);
285 } else {
286 $main_blog_id = (int) get_network()->site_id;
287 // Switch to the new blog.
288 switch_to_blog( $main_blog_id );
289 $page_data = uwp_get_page_url_page_data($page_data, $page_type);
290 // Restore original blog.
291 restore_current_blog();
292 }
293 break;
294 case "multi_not_na":
295 $page_data = uwp_get_page_url_page_data($page_data, $page_type);
296 break;
297 default:
298 $page_data = array();
299
300 }
301
302 if ($output_type == 'link') {
303 if (empty($page_data)) {
304 return false;
305 } else {
306 return $page_data['link'];
307 }
308 } else {
309 return $page_data;
310 }
311 }
312
313 /**
314 * Returns the page info like page title, slug and link.
315 *
316 * @since 1.0.0
317 * @package userswp
318 *
319 * @param string $page_data Page data array.
320 * @param string $page_type Page type.
321 *
322 * @return array Page data array.
323 */
324 function uwp_get_page_url_page_data($page_data, $page_type) {
325 $page_id = uwp_get_page_id($page_type, false);
326 if ($page_id) {
327 $page = get_post($page_id);
328 $page_data = array(
329 'name' => $page->post_title,
330 'slug' => $page->post_name,
331 'link' => get_permalink( $page->ID ),
332 );
333 }
334 return $page_data;
335 }
336
337
338 add_action('init', 'uwp_process_activation_link');
339
340 /**
341 * Handles the activation request coming via email activation link.
342 *
343 * @since 1.0.0
344 * @package userswp
345 *
346 * @return void
347 */
348 function uwp_process_activation_link() {
349 if (isset($_GET['uwp_activate']) && $_GET['uwp_activate'] == 'yes') {
350 $key = strip_tags(esc_sql($_GET['key']));
351 $login = strip_tags(esc_sql($_GET['login']));
352 $login_page = uwp_get_page_id('login_page', false);
353 $result = uwp_check_activation_key($key, $login);
354
355 if (is_wp_error($result)) {
356 if ($login_page) {
357 $redirect_to = add_query_arg(array('uwp_err' => 'act_wrong'), get_permalink($login_page));
358 wp_redirect($redirect_to);
359 exit();
360 }
361 } else {
362 if (!$result) {
363 if ($login_page) {
364 $redirect_to = add_query_arg(array('uwp_err' => 'act_error'), get_permalink($login_page));
365 wp_redirect($redirect_to);
366 exit();
367 }
368 } else {
369 if ($login_page) {
370 $user_data = get_user_by('login', $login);
371 update_user_meta( $user_data->ID, 'uwp_mod', '0' );
372 $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);
375 exit();
376 }
377 }
378 }
379 }
380 }
381
382 function uwp_current_page_url() {
383 $pageURL = 'http';
384 if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) == 'on')) {
385 $pageURL .= "s";
386 }
387 $pageURL .= "://";
388
389 /*
390 * Since we are assigning the URI from the server variables, we first need
391 * to determine if we are running on apache or IIS. If PHP_SELF and REQUEST_URI
392 * are present, we will assume we are running on apache.
393 */
394 if (!empty($_SERVER['PHP_SELF']) && !empty($_SERVER['REQUEST_URI'])) {
395 // To build the entire URI we need to prepend the protocol, and the http host
396 // to the URI string.
397 $pageURL .= $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
398 } else {
399 /*
400 * Since we do not have REQUEST_URI to work with, we will assume we are
401 * running on IIS and will therefore need to work some magic with the SCRIPT_NAME and
402 * QUERY_STRING environment variables.
403 *
404 * IIS uses the SCRIPT_NAME variable instead of a REQUEST_URI variable... thanks, MS
405 */
406 $pageURL .= $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'];
407
408 // If the query string exists append it to the URI string
409 if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) {
410 $pageURL .= '?' . $_SERVER['QUERY_STRING'];
411 }
412 }
413
414 /**
415 * Filter the current page URL returned by function uwp_current_page_url().
416 *
417 * @since 1.4.1
418 *
419 * @param string $pageURL The URL of the current page.
420 */
421 return apply_filters( 'uwp_current_page_url', $pageURL );
422 }