/** * Redirects a user to defined login page with return redirect. * * While a specific URL can be passed as an argument, the default will * redirect the user back to the original page using wpmem_current_url(). * * @since 3.0.2 * @since 3.1.1 Moved to API. * @since 3.1.3 Added $redirect_to argument. * * @param string $redirect_to URL to redirect to (default: false). */ function wpmem_redirect_to_login($redirect_to = false) { if (!is_user_logged_in()) { $redirect_to = $redirect_to ? $redirect_to : wpmem_current_url(); wp_redirect(wpmem_login_url($redirect_to)); exit; } return; }
/** * Log in/out shortcode [wpmem_loginout]. * * @since 3.1.1 * * @param array $atts * @param string $content * @param string $tag * @return string $content */ function wpmem_sc_loginout($atts, $content, $tag) { $defaults = array('login_redirect_to' => isset($atts['login_redirect_to']) ? $atts['login_redirect_to'] : wpmem_current_url(), 'logout_redirect_to' => isset($atts['logout_redirect_to']) ? $atts['logout_redirect_to'] : wpmem_current_url(), 'login_text' => isset($atts['login_text']) ? $atts['login_text'] : __('log in', 'wp-members'), 'logout_text' => isset($atts['logout_text']) ? $atts['logout_text'] : __('log out', 'wp-members')); $args = wp_parse_args($atts, $defaults); $redirect_to = is_user_logged_in() ? $args['logout_redirect_to'] : $args['login_redirect_to']; $text = is_user_logged_in() ? $args['logout_text'] : $args['login_text']; if (is_user_logged_in()) { /** This filter is defined in /inc/dialogs.php */ $link = apply_filters('wpmem_logout_link', add_query_arg('a', 'logout')); } else { $link = wpmem_login_url($args['login_redirect_to']); } $link = sprintf('<a href="%s">%s</a>', $link, $text); return do_shortcode($link); }