Exemplo n.º 1
0
 /**
  * Redirects login page to profile if user is logged in
  *
  * Callback for "template_redirect" hook
  *
  * @since 6.0
  * @access public
  */
 public function template_redirect()
 {
     $theme_my_login = Theme_My_Login::get_object();
     if (Theme_My_Login::is_tml_page()) {
         switch ($theme_my_login->request_action) {
             case 'profile':
                 // Redirect to login page if not logged in
                 if (!is_user_logged_in()) {
                     $redirect_to = Theme_My_Login::get_page_link('login', 'reauth=1');
                     wp_redirect($redirect_to);
                     exit;
                 }
                 break;
             case 'logout':
                 // Allow logout action
                 break;
             case 'register':
                 // Allow register action if multisite
                 if (is_multisite()) {
                     break;
                 }
             default:
                 // Redirect to profile for any other action if logged in
                 if (is_user_logged_in()) {
                     $redirect_to = Theme_My_Login::get_page_link('profile');
                     wp_redirect($redirect_to);
                     exit;
                 }
         }
     }
 }
Exemplo n.º 2
0
 function kleo_maintenance_mode()
 {
     $logo_path = apply_filters('kleo_logo', sq_option_url('logo'));
     $logo_img = '<img src="' . $logo_path . '" alt="maintenance" style="margin: 0 auto; display: block;" />';
     if (sq_option('maintenance_mode', 0) == 1) {
         /* Theme My Login compatibility */
         if (class_exists('Theme_My_Login') && Theme_My_Login::is_tml_page('login')) {
             return;
         }
         if (!current_user_can('edit_themes') || !is_user_logged_in()) {
             wp_die($logo_img . '<div style="text-align:center">' . sq_option('maintenance_msg', '') . '</div>', get_bloginfo('name'));
         }
     }
 }
Exemplo n.º 3
0
function pmpro_login_head()
{
    $login_redirect = apply_filters("pmpro_login_redirect", true);
    if ((pmpro_is_login_page() || is_page("login") || class_exists("Theme_My_Login") && defined('Theme_My_Login::version') && version_compare(Theme_My_Login::version, "6.3") >= 0 && (Theme_My_Login::is_tml_page("register") || Theme_My_Login::is_tml_page("login"))) && $login_redirect) {
        //redirect registration page to levels page
        if (isset($_REQUEST['action']) && $_REQUEST['action'] == "register" || isset($_REQUEST['registration']) && $_REQUEST['registration'] == "disabled" || !is_admin() && class_exists("Theme_My_Login") && defined('Theme_My_Login::version') && version_compare(Theme_My_Login::version, "6.3") >= 0 && Theme_My_Login::is_tml_page("register")) {
            //redirect to levels page unless filter is set.
            $link = apply_filters("pmpro_register_redirect", pmpro_url("levels"));
            if (!empty($link)) {
                wp_redirect($link);
                exit;
            } else {
                return;
            }
            //don't redirect if pmpro_register_redirect filter returns false or a blank URL
        }
        //if theme my login is installed, redirect all logins to the login page
        if (pmpro_is_plugin_active("theme-my-login/theme-my-login.php")) {
            //check for the login page id and redirect there if we're not there already
            global $post;
            if (!empty($GLOBALS['theme_my_login']) && is_array($GLOBALS['theme_my_login']->options)) {
                //an older version of TML stores it this way
                if ($GLOBALS['theme_my_login']->options['page_id'] !== $post->ID) {
                    //redirect to the real login page
                    $link = get_permalink($GLOBALS['theme_my_login']->options['page_id']);
                    if ($_SERVER['QUERY_STRING']) {
                        $link .= "?" . $_SERVER['QUERY_STRING'];
                    }
                    wp_redirect($link);
                    exit;
                }
            } elseif (!empty($GLOBALS['theme_my_login']->options)) {
                //another older version of TML stores it this way
                if ($GLOBALS['theme_my_login']->options->options['page_id'] !== $post->ID) {
                    //redirect to the real login page
                    $link = get_permalink($GLOBALS['theme_my_login']->options->options['page_id']);
                    if ($_SERVER['QUERY_STRING']) {
                        $link .= "?" . $_SERVER['QUERY_STRING'];
                    }
                    wp_redirect($link);
                    exit;
                }
            } elseif (class_exists("Theme_My_Login") && defined('Theme_My_Login::version') && version_compare(Theme_My_Login::version, "6.3") >= 0) {
                //TML > 6.3
                $link = Theme_My_Login::get_page_link("login");
                if (!empty($link)) {
                    //redirect if !is_page(), i.e. we're on wp-login.php
                    if (!Theme_My_Login::is_tml_page()) {
                        wp_redirect($link);
                        exit;
                    }
                }
            }
            //make sure users are only getting to the profile when logged in
            global $current_user;
            if (!empty($_REQUEST['action']) && $_REQUEST['action'] == "profile" && !$current_user->ID) {
                $link = get_permalink($GLOBALS['theme_my_login']->options->options['page_id']);
                wp_redirect($link);
                exit;
            }
        }
    }
}
Exemplo n.º 4
0
 /**
  * Adds CSS class to TML pages
  *
  * @since 6.3
  * @access public
  *
  * @param object $menu_item Nav menu item
  * @return object Nav menu item
  */
 public function wp_setup_nav_menu_item($menu_item)
 {
     if ('tml_page' == $menu_item->object && Theme_My_Login::is_tml_page('', $menu_item->object_id)) {
         if (!is_user_logged_in()) {
             $menu_item->classes[] = 'tml_ajax_link';
         }
     }
     return $menu_item;
 }
Exemplo n.º 5
0
 /**
  * Adds "_wp_original_referer" field to login form
  *
  * Callback for "login_form" hook in file "login-form.php", included by method Theme_My_Login_Template::display()
  *
  * @see Theme_My_Login_Template::display()
  * @since 6.0
  * @access public
  */
 public function login_form()
 {
     if (!empty($_REQUEST['redirect_to'])) {
         $referer = wp_unslash($_REQUEST['redirect_to']);
     } elseif (wp_get_original_referer()) {
         $referer = wp_get_original_referer();
     } else {
         $referer = Theme_My_Login::is_tml_page() ? wp_get_referer() : wp_unslash($_SERVER['REQUEST_URI']);
     }
     echo '<input type="hidden" name="_wp_original_http_referer" value="' . esc_attr($referer) . '" />';
 }
Exemplo n.º 6
0
 /**
  * Blocks entire site if user is not logged in and private site is enabled
  *
  * Callback for "template_redirect" hook in the file wp-settings.php
  *
  * @since 6.2
  * @access public
  */
 public function template_redirect()
 {
     if ($this->get_option('private_site')) {
         if (!(is_user_logged_in() || Theme_My_Login::is_tml_page())) {
             $redirect_to = apply_filters('tml_security_private_site_redirect', wp_login_url($_SERVER['REQUEST_URI'], true));
             wp_safe_redirect($redirect_to);
             exit;
         }
     }
 }
Exemplo n.º 7
0
/**
 * @since 2.5.2
 * @return true on Themed My Login - Themed Registration page
 */
function cimy_uef_is_theme_my_login_register_page()
{
    // Theme My Login <= v6.2.x
    if (!empty($GLOBALS['theme_my_login']) && $GLOBALS['theme_my_login']->is_login_page()) {
        return true;
    }
    // Theme My Login >= v6.3.0
    if (function_exists('Theme_My_Login') && Theme_My_Login::is_tml_page('register')) {
        return true;
    }
    return false;
}
Exemplo n.º 8
0
 /**
  * Adds "_wp_original_referer" field to login form
  *
  * Callback for "login_form" hook in file "login-form.php", included by method Theme_My_Login_Template::display()
  *
  * @see Theme_My_Login_Template::display()
  * @since 6.0
  * @access public
  */
 public function login_form()
 {
     echo wp_original_referer_field(false, Theme_My_Login::is_tml_page() ? 'previous' : 'current') . "\n";
 }
Exemplo n.º 9
0
 /**
  * Hide Profile link if user is not logged in
  *
  * Callback for "wp_setup_nav_menu_item" hook in wp_setup_nav_menu_item()
  *
  * @see wp_setup_nav_menu_item()
  * @since 6.4
  * @access public
  *
  * @param object $menu_item The menu item
  * @return object The (possibly) modified menu item
  */
 public function wp_setup_nav_menu_item($menu_item)
 {
     if (is_admin()) {
         return $menu_item;
     }
     if ('page' != $menu_item->object) {
         return $menu_item;
     }
     // User is not logged in
     if (!is_user_logged_in()) {
         // Hide Profile
         if (Theme_My_Login::is_tml_page('profile', $menu_item->object_id)) {
             $menu_item->_invalid = true;
         }
     }
     return $menu_item;
 }