Current File : /home/inlingua/www/crm/ninexb_oldddd/wp-content/plugins/userswp/includes/helpers/permalinks.php |
<?php
/**
* Gets the UsersWP page permalink based on page type.
*
* @since 1.0.0
* @package userswp
* @param string $page_type Page type.
* @return string Page permalink.
*/
function uwp_get_page_link($page_type) {
$page = new UsersWP_Pages();
return $page->get_page_link($page_type);
}
/**
* Builds the profile page url based on the tab and sub tab given
* yoursite.com/profile/username
* yoursite.com/profile/username/tab
* yoursite.com/profile/username/tab/subtab
*
* @since 1.0.0
* @package userswp
* @param int $user_id User ID.
* @param string|bool $tab Optional. Main tab
* @param string|bool $subtab Optional. Sub tab.
* @return string Built profile page link.
*/
function uwp_build_profile_tab_url($user_id, $tab = false, $subtab = false) {
$page = new UsersWP_Pages();
return $page->build_profile_tab_url($user_id, $tab, $subtab);
}
/**
* Returns the page link for register page.
*
* @since 1.0.0
* @package userswp
*
* @return array|bool|mixed Page link.
*/
function uwp_get_register_page_url() {
$register_url = uwp_get_page_link('register');
if (isset($_REQUEST['redirect_to']) && !empty($_REQUEST['redirect_to'])) {
$redirect_to = esc_url($_REQUEST['redirect_to']);
$register_url = add_query_arg('redirect_to', $redirect_to, $register_url);
}
return $register_url;
}
/**
* Returns the page link for login page.
*
* @since 1.0.0
* @package userswp
*
* @return array|bool|mixed Page link.
*/
function uwp_get_login_page_url() {
$login_url = uwp_get_page_link('login');
if (isset($_REQUEST['redirect_to']) && !empty($_REQUEST['redirect_to'])) {
$redirect_to = esc_url($_REQUEST['redirect_to']);
$login_url = add_query_arg('redirect_to', $redirect_to, $login_url);
}
return $login_url;
}
/**
* Returns the page link for forgot password page.
*
* @since 1.0.0
* @package userswp
*
* @return array|bool|mixed Page link.
*/
function uwp_get_forgot_page_url() {
return uwp_get_page_link('forgot');
}
/**
* Returns the page link for change password page.
*
* @since 1.0.0
* @package userswp
*
* @return array|bool|mixed Page link.
*/
function uwp_get_change_page_url() {
return uwp_get_page_url_data('change_page');
}
/**
* Returns the page link for reset password page.
*
* @since 1.0.0
* @package userswp
*
* @return array|bool|mixed Page link.
*/
function uwp_get_reset_page_url() {
return uwp_get_page_url_data('reset_page');
}
/**
* Returns the page link for account page.
*
* @since 1.0.0
* @package userswp
*
* @return array|bool|mixed Page link.
*/
function uwp_get_account_page_url() {
return uwp_get_page_url_data('account_page');
}
/**
* Returns the page link for profile page.
*
* @since 1.0.0
* @package userswp
*
* @return array|bool|mixed Page link.
*/
function uwp_get_profile_page_url() {
return uwp_get_page_url_data('profile_page');
}
/**
* Returns the page link for users page.
*
* @since 1.0.0
* @package userswp
*
* @return array|bool|mixed Page link.
*/
function uwp_get_users_page_url() {
return uwp_get_page_url_data('users_page');
}
/**
* Returns the page info like page title, slug and link.
* If output type is "link", then only the link is returned.
*
* @since 1.0.0
* @package userswp
*
* @param string $page_type Page type.
* @param string $output_type Link or Array?
*
* @return array|bool|mixed Page info or link.
*/
function uwp_get_page_url_data($page_type, $output_type = 'link') {
$install_type = uwp_get_installation_type();
$page_data = array();
switch ($install_type) {
case "single":
$page_data = uwp_get_page_url_page_data($page_data, $page_type);
break;
case "multi_na_all":
$page_data = uwp_get_page_url_page_data($page_data, $page_type);
break;
case "multi_na_site_id":
if (defined('UWP_ROOT_PAGES')) {
$blog_id = UWP_ROOT_PAGES;
} else {
$blog_id = (int) get_network()->site_id;
}
$current_blog_id = get_current_blog_id();
if (!is_int($blog_id)) {
$page_data = array();
} else {
if ($blog_id == $current_blog_id) {
$page_data = uwp_get_page_url_page_data($page_data, $page_type);
} else {
// Switch to the new blog.
switch_to_blog( $blog_id );
$page_data = uwp_get_page_url_page_data($page_data, $page_type);
// Restore original blog.
restore_current_blog();
}
}
break;
case "multi_na_default":
$is_main_site = is_main_site();
if ($is_main_site) {
$page_data = uwp_get_page_url_page_data($page_data, $page_type);
} else {
$main_blog_id = (int) get_network()->site_id;
// Switch to the new blog.
switch_to_blog( $main_blog_id );
$page_data = uwp_get_page_url_page_data($page_data, $page_type);
// Restore original blog.
restore_current_blog();
}
break;
case "multi_not_na":
$page_data = uwp_get_page_url_page_data($page_data, $page_type);
break;
default:
$page_data = array();
}
if ($output_type == 'link') {
if (empty($page_data)) {
return false;
} else {
return $page_data['link'];
}
} else {
return $page_data;
}
}
/**
* Returns the page info like page title, slug and link.
*
* @since 1.0.0
* @package userswp
*
* @param array $page_data Page data array.
* @param string $page_type Page type.
*
* @return array Page data array.
*/
function uwp_get_page_url_page_data($page_data, $page_type) {
$page_id = uwp_get_page_id($page_type, false);
if ($page_id) {
$page = get_post($page_id);
$page_data = array(
'name' => $page->post_title,
'slug' => $page->post_name,
'link' => get_permalink( $page->ID ),
);
}
return apply_filters('uwp_page_url_data', $page_data);
}
add_action('init', 'uwp_process_activation_link');
/**
* Handles the activation request coming via email activation link.
*
* @since 1.0.0
* @package userswp
*
* @return void
*/
function uwp_process_activation_link() {
if (isset($_GET['uwp_activate']) && $_GET['uwp_activate'] == 'yes') {
if(!defined('DONOTCACHEPAGE')){
define( 'DONOTCACHEPAGE', true );
}
$key = strip_tags(esc_sql($_GET['key']));
$login = strip_tags(esc_sql($_GET['login']));
$login_page = uwp_get_page_id('login_page', false);
$user = get_user_by('login', $login);
if (!$user){
$redirect_to = add_query_arg(array('uwp_err' => 'act_wrong'), get_permalink($login_page));
wp_redirect($redirect_to);
exit();
}
clean_user_cache($user);
$result = check_password_reset_key($key, $login);
if (is_wp_error($result)) {
if ($login_page) {
$redirect_to = add_query_arg(array('uwp_err' => 'act_wrong'), get_permalink($login_page));
wp_safe_redirect($redirect_to);
exit();
}
} else {
if (!$result) {
if ($login_page) {
$redirect_to = add_query_arg(array('uwp_err' => 'act_error'), get_permalink($login_page));
wp_safe_redirect($redirect_to);
exit();
}
} else {
if ($login_page) {
$user_data = get_user_by('login', $login);
update_user_meta( $user_data->ID, 'uwp_mod', '0' );
$redirect_to = add_query_arg(array('uwp_err' => 'act_success'), get_permalink($login_page));
do_action('uwp_email_activation_success', $user_data->ID);
wp_safe_redirect($redirect_to);
exit();
}
}
}
}
}
add_action('template_redirect', 'uwp_process_new_email_activation_link');
/**
* Handles the new email activation request coming via email activation link.
*
* @since 1.0.0
* @package userswp
*
* @return void
*/
function uwp_process_new_email_activation_link() {
if (isset($_GET['uwp_new_email']) && $_GET['uwp_new_email'] == 'yes') {
if(!defined('DONOTCACHEPAGE')){
define( 'DONOTCACHEPAGE', true );
}
$key = strip_tags(esc_sql($_GET['key']));
$login = strip_tags(esc_sql($_GET['login']));
$account_page = uwp_get_page_id('account_page', false);
$user = get_user_by('login', $login);
if (!$user){
return;
}
if ( ! is_user_logged_in()) {
$login_page = uwp_get_page_id( 'login_page', false );
$redirect_to = add_query_arg(array('redirect_to' => urlencode(uwp_current_page_url())), get_permalink($login_page));
wp_safe_redirect($redirect_to);
exit();
}
clean_user_cache($user);
$hash = get_user_meta($user->ID, 'uwp_update_email_hash', true);
if ( $user && isset($hash) && hash_equals( $hash['hash'], $key ) && ! empty( $hash['newemail'] ) ) {
$args = array(
'ID' => $user->ID,
'user_email' => $hash['newemail'],
);
$user_id = wp_update_user( $args );
delete_user_meta($user_id, 'uwp_update_email_hash', true);
$redirect_to = add_query_arg(array('uwp_err' => 'act_email_success'), get_permalink($account_page));
do_action('uwp_new_email_activation_success', $user->ID);
wp_safe_redirect($redirect_to);
exit();
}
}
}
function uwp_current_page_url() {
$pageURL = 'http';
if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) == 'on')) {
$pageURL .= "s";
}
$pageURL .= "://";
/*
* Since we are assigning the URI from the server variables, we first need
* to determine if we are running on apache or IIS. If PHP_SELF and REQUEST_URI
* are present, we will assume we are running on apache.
*/
if (!empty($_SERVER['PHP_SELF']) && !empty($_SERVER['REQUEST_URI'])) {
// To build the entire URI we need to prepend the protocol, and the http host
// to the URI string.
$pageURL .= $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
} else {
/*
* Since we do not have REQUEST_URI to work with, we will assume we are
* running on IIS and will therefore need to work some magic with the SCRIPT_NAME and
* QUERY_STRING environment variables.
*
* IIS uses the SCRIPT_NAME variable instead of a REQUEST_URI variable... thanks, MS
*/
$pageURL .= $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'];
// If the query string exists append it to the URI string
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) {
$pageURL .= '?' . $_SERVER['QUERY_STRING'];
}
}
/**
* Filter the current page URL returned by function uwp_current_page_url().
*
* @since 1.4.1
*
* @param string $pageURL The URL of the current page.
*/
return apply_filters( 'uwp_current_page_url', $pageURL );
}