Redirecionar usuário para a última página visitada no WordPress

  • Autor Autor cinewow
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
cinewow

cinewow

1
Iota
Diseñador
Verificación en dos pasos activada
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.
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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:
 
Voltar
Topo