There are several ways to apply redirection to the login process. Which method you use depends on your specific setup and what your intended outcome is. There are four primary possibilities, and these are listed below.
- Login using the WP-Members login form shortcode
- Login using the WP-Members login form widget
- Login using any WP-Members login form (shortcode, widget, or those automatically generated in place of blocked content)
- Any login form
Login using the WP-Members login form shortcode
The WP-Members login form shortcode accepts a redirect_to attribute you can use to redirect all logins via that form. It is used as follows:
[wpmem_form login redirect_to=https://mysite.com/my-page]
This redirect will affect ONLY that particular form. In most cases, that’s the only recommended redirect. When the login form is displayed automatically in place of blocked content, the user will end up logged in on the page they were trying to view, so usually the only page you may want to redirect will be a login page using the shortcode form.
Login using the WP-Members login form widget
Like the login form shortcode, the login form widget has a redirect setting. You can set this in the widget settings.
Note that this redirect will affect ALL logins via the widget, regardless of the page the user is on.
Login redirect using wpmem_login_redirect
The wpmem_login_redirect filter hook allows you to apply redirection programmatically. In it’s most basic sense, this will redirect all logins through any WP-Members form.
Here’s a basic example:
add_filter( 'wpmem_login_redirect', 'my_login_redirect', 10, 2 ); function my_login_redirect( $redirect_to, $user_id ) { // This will redirect to https://yourdomain.com/your-page/ return home_url( '/your-page/' ); }
You can make this more complex depending on your needs and your skills with PHP.
Login redirect using WP’s login_redirect
The plugin respects WP’s login_redirect filter hook, which is used very much the same way as the wpmem_login_redirect. The difference is that WP’s hook will affect all logins, WP-Members’ will affect only those going through a WP-Members form.
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 ); function my_login_redirect( $redirect_to, $requested_redirect_to, $user ) { $redirect_to = home_url( '/your-page/' ); return $redirect_to; }
Don’t redirect just because you “can.”
Just because you “can” redirect a user on login, doesn’t mean you “should.” Use good sense to build a better user experience.
Don’t redirect the user unless you have a good reason. In doing support and troubleshooting, I run into a lot of sites with a very confusing user experience. Make sure you think things through from the perspective of your users. For example, if you put in a redirect for all logins to go to a members page, but the user is logging in on a page of blocked content, you’ve just redirected him away from the page he was trying to access. That’s annoying for the user.
Not sure what to do with the code examples?
You’re not a “coder” and don’t know what to do? Don’t worry! Code
Snippets are the basic building blocks of WordPress customization, and once you know the basics, they are
simple to use.
Here are some articles to get you started: