/** * 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; } } } }
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')); } } }
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; } } } }
/** * 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; }
/** * 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) . '" />'; }
/** * 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; } } }
/** * @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; }
/** * 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"; }
/** * 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; }