Redireccionar usuario a última página visitada en Wordpress

  • Autor Autor cinewow
  • Fecha de inicio Fecha de inicio
C

cinewow

1
Iota
Diseñador
Verificación en dos pasos activada
Verificado por Whatsapp
Suscripción a IA
Hola comunidad.
bueno resulta que llevo ya como 1 mes, buscando esta famosa funcion, pero nada no la encuentro aun que si noto que hay webs en wordpress que tienen esto, quisiera saber si alguien sabe la forma para que cuando un usuario inicie sesion en una web wordpress, lo lleve a la ultima entrada que visito.
de ante mano les agradezco, un saludo enorme. :encouragement:


nota: preferiblemente sin plugin.
 
bueno antes que nada, el boton de login tiene que estar en cada post para que funcione!
editas functions.php del theme y agregas al final:
PHP:
function my_login_redirect( $redirect_to, $request, $user ) {
	//is there a user to check?
	global $user;
	if ( isset( $user->roles ) && is_array( $user->roles ) ) {
		//check for admins
		if ( in_array( 'administrator', $user->roles ) ) {
			// redirect them to the default place
			return $redirect_to;
		} else {
			return $_POST['user_extra'];
		}
	} else {
		return $redirect_to;
	}
}

add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );

function myplugin_add_login_fields() {
	$url = $_SERVER['HTTP_REFERER'];

	if($url == "") $url = site_url();
    	//Get and set any values already sent
    	$user_extra = ( isset( $_POST['user_extra'] ) ) ? $_POST['user_extra'] : $_SERVER['HTTP_REFERER'];
    	echo '<input type="hidden" name="user_extra" id="user_extra" class="input" value="'.esc_attr(stripslashes($user_extra)).'" size="25" />';
}
add_action( 'login_form', 'myplugin_add_login_fields' );

Logrado con:
1- https://codex.wordpress.org/Plugin_API/Action_Reference/login_form
2- https://codex.wordpress.org/Plugin_API/Filter_Reference/login_redirect
 
yo me meto en ajustes luego en lectura y hay veras las opciones, suerte.
 
Hola cicklow, gracias por tu respuesta. amigo cuando te refieres a que el boton de login debe estar en cada uno de los post, yo puedo colocar solo <a href="/wp-login.php">Iniciar Sesión</a> o como deberia hacer? saludos y muchisimas gracias.
bueno antes que nada, el boton de login tiene que estar en cada post para que funcione!
editas functions.php del theme y agregas al final:
PHP:
function my_login_redirect( $redirect_to, $request, $user ) {
	//is there a user to check?
	global $user;
	if ( isset( $user->roles ) && is_array( $user->roles ) ) {
		//check for admins
		if ( in_array( 'administrator', $user->roles ) ) {
			// redirect them to the default place
			return $redirect_to;
		} else {
			return $_POST['user_extra'];
		}
	} else {
		return $redirect_to;
	}
}

add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );

function myplugin_add_login_fields() {
	$url = $_SERVER['HTTP_REFERER'];

	if($url == "") $url = site_url();
    	//Get and set any values already sent
    	$user_extra = ( isset( $_POST['user_extra'] ) ) ? $_POST['user_extra'] : $_SERVER['HTTP_REFERER'];
    	echo '<input type="hidden" name="user_extra" id="user_extra" class="input" value="'.esc_attr(stripslashes($user_extra)).'" size="25" />';
}
add_action( 'login_form', 'myplugin_add_login_fields' );

Logrado con:
1- https://codex.wordpress.org/Plugin_API/Action_Reference/login_form
2- https://codex.wordpress.org/Plugin_API/Filter_Reference/login_redirect
 
Hola cicklow, gracias por tu respuesta. amigo cuando te refieres a que el boton de login debe estar en cada uno de los post, yo puedo colocar solo <a href="/wp-login.php">Iniciar Sesión</a> o como deberia hacer? saludos y muchisimas gracias.

sisi con eso suficiente 🙂 ya que se redirecciona al post que estuvo viendo antes! (a menos que seas admin, ahi va al panel de admin)
 
si sos admin, te redirecciona al panel de amin... te puse eso... tienes que usar una cuenta normal... (y cierra la session de admin tmb)

jajajaaj expectacular, gracias amigo. un saludo mi hermano (y):encouragement:
 
Atrás
Arriba