25% off ProSNIPC25OFF

Redirect Users to the Previous Page After Login

Sends users back to the page they were visiting before the login form, falling back to the default WordPress redirect when no referer exists.

PHPby SnipCraft
php
<?php
if ( ! function_exists( 'scseed_login_redirect_to_referer' ) ) {
    function scseed_login_redirect_to_referer( $redirect_to, $request, $user ) {
        if ( is_wp_error( $user ) || ! is_a( $user, 'WP_User' ) ) {
            return $redirect_to;
        }
        // Admins should still go to the dashboard by default.
        if ( current_user_can( 'manage_options' ) ) {
            return $redirect_to;
        }
        $referer = wp_get_referer();
        if ( $referer &&
             strpos( $referer, 'wp-login.php' ) === false &&
             strpos( $referer, 'wp-admin' ) === false ) {
            return $referer;
        }
        return $redirect_to;
    }
    add_filter( 'login_redirect', 'scseed_login_redirect_to_referer', 10, 3 );
}
#login#redirect#registration#users#ux