How Can I Redirect to Custom Page Instead of WP Dashboard
-
Wordpress 5.7.2
BBPress 2.6.6Any help would be greatly appreciated!! I am at my wits end trying to figure this out….
I would like to get people automatically redirected to a page inside the forum instead of the WP dashboard, but it is not working. Here is what I have done so far:
1. After they are accepted into the program, they are sent to our register page: https://arianegoodwin.com/curiosity-cocktails-register-here/
2. I did figure out redirect code for after they register so they see this page:
(this is the code snippet I used for this):
// Redirect Registration Page
function my_registration_page_redirect()
{
global $pagenow;// Standard Registration Redirect
if ( (strtolower($pagenow) == ‘wp-login.php’) && (strtolower($_GET[‘action’]) == ‘register’) ) {
wp_redirect( home_url(‘/register/’) );
}// Redirection after successful registration
if ( (strtolower($pagenow) == ‘wp-login.php’) && (strtolower($_GET[‘checkemail’]) == ‘registered’) ) {
wp_redirect( home_url(‘/forums/log-in/’) );
}
}add_filter( ‘init’, ‘my_registration_page_redirect’ );
3. After they click on the link in their email to create their password, they are getting sent to the WP Dashboard and I need them to go to this page instead:
I have tried using Peters Login Redirect and that has not worked. I have also tried using this code inside the Snippets, which isn’t working either:
// Send new users to a special page
function redirectOnFirstLogin( $custom_redirect_to, $redirect_to, $requested_redirect_to, $user )
{
// URL to redirect to
$redirect_url = ‘https://arianegoodwin.com/forums/curiosity-cocktails-topic-map/’;
// How many times to redirect the user
$num_redirects = 1;
// If implementing this on an existing site, this is here so that existing users don’t suddenly get the “first login” treatment
// On a new site, you might remove this setting and the associated check
// Alternative approach: run a script to assign the “already redirected” property to all existing users
// Alternative approach: use a date-based check so that all registered users before a certain date are ignored
// 172800 seconds = 48 hours
$message_period = 172800;/*
Cookie-based solution: captures users who registered within the last n hours
The reason to set it as “last n hours” is so that if a user clears their cookies or logs in with a different browser,
they don’t get this same redirect treatment long after they’re already a registered user
*/
/*$key_name = ‘redirect_on_first_login_’ . $user->ID;
if( strtotime( $user->user_registered ) > ( time() – $message_period )
&& ( !isset( $_COOKIE[$key_name] ) || intval( $_COOKIE[$key_name] ) < $num_redirects )
)
{
if( isset( $_COOKIE[$key_name] ) )
{
$num_redirects = intval( $_COOKIE[$key_name] ) + 1;
}
setcookie( $key_name, $num_redirects, time() + $message_period, COOKIEPATH, COOKIE_DOMAIN );
return $redirect_url;
}
*/
/*
User meta value-based solution, stored in the database
*/
$key_name = ‘redirect_on_first_login’;
// Third parameter ensures that the result is a string
$current_redirect_value = get_user_meta( $user->ID, $key_name, true );
if( strtotime( $user->user_registered ) > ( time() – $message_period )
&& ( ” == $current_redirect_value || intval( $current_redirect_value ) < $num_redirects )
)
{
if( ” != $current_redirect_value )
{
$num_redirects = intval( $current_redirect_value ) + 1;
}
update_user_meta( $user->ID, $key_name, $num_redirects );
return $redirect_url;
}
else
{
return $custom_redirect_to;
}
}add_filter( ‘rul_before_user’, ‘redirectOnFirstLogin’, 10, 4 );
- You must be logged in to reply to this topic.