Redirecionamento para usuários logados em página específica

  • Autor Autor MarceFX
  • 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
MarceFX

MarceFX

Épsilon
Verificación en dos pasos activada
Hola,

Tengo una página concreta a la que solo deberían acceder usuarios no identificado. Estoy intentando averiguar cómo enviar al usuario identificado a otra página si intenta acceder a esta en concret. He estado probando esto, pero no me va:

Inserir CODE, HTML ou PHP:
<?php
if($_SERVER['REQUEST_URI'] != '/directorio-de-la-pagina' || $_SERVER['REQUEST_URI'] != '/otro-directorio-al-que-no-podria-acceder'){

   if(is_user_logged_in()) {
       wp_redirect( 'http://www.mysite.com/landingpage', 301 ); exit;
   }
}

Cuando inserto en functions.php este código, la página no funciona. ¿Alguna idea?

Con ese código la web funciona, pero no hace lo que quiero:

Inserir CODE, HTML ou PHP:
global $wp_query;
$current_page_id = $wp_query->post->ID;

if(is_user_logged_in() && $current_page_id == '376') {
wp_redirect( 'http://marcefx.com', 302 );
}

Gracias!
 
Última edição:
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
En un Theme que desarrolle desde cero tengo este extracto de codigo, lo que hace es que al momento de estar en un post por ejemplo, entras a la opcion "Entrar" y de logueas, despues de loguearte automaticamente te redirecciona a la pagina en la que estavas antes de loguearte.

PHP:
<?php
// Enlaces para Acceder y Salir.
if ( !is_user_logged_in() )
    $menu_principal_enlaces = "<li class=\"register\"><a rel=\"nofollow\" href=\"/wp-login.php?action=register\" title=\"Registro\">Registrarse</a>
<li class=\"login\"><a rel=\"nofollow\" href=\"" . wp_login_url($_SERVER['REQUEST_URI']) ."\" title=\"Acceder\">Entrar</a></ul>";
elseif ( is_user_logged_in() )
    $menu_principal_enlaces = "<li class=\"logout\"><a rel=\"nofollow\" href=\"" . wp_logout_url($_SERVER['REQUEST_URI']) . "\" title=\"Salir\">Desconectarse</a>
<li class=\"panel\"><a rel=\"nofollow\" href=\"/wp-admin/\" title=\"Escritorio\">Panel</a></ul>";

Espero que te sirva igual que a mi. 🙂

----------

Entendi un poco mal, pero ya te entenidi 😛

Seria algo como
PHP:
<?php
if ( $_SERVER['REQUEST_URI'] == '/pagina-en-la-que-se-encuentra' && is_user_logged_in() )
   wp_redirect(); // Lo que quieras.

Colocalo en el header.php antes de todo (Crea una apertura <?php).
 
Última edição:
Gracias compi, aunque lo he resulto hace 10 minutos de una forma más sencilla que se me ocurrió:

Inserir CODE, HTML ou PHP:
add_shortcode('redirigir', 'redirectuser');
function redirectuser() {
	if(is_user_logged_in()) {
	wp_redirect( '/pagina-destino, 302 );
	}
	else {echo "Error";}
	
}

Creo el shortcode 'redirigir', que usa la función redirectuser. Meto el shortcode en la página a la que no quiero que acceda el usuario logeado y ale, funciona 🙂

Saludos
 
Gracias compi, aunque lo he resulto hace 10 minutos de una forma más sencilla que se me ocurrió:

Inserir CODE, HTML ou PHP:
add_shortcode('redirigir', 'redirectuser');
function redirectuser() {
    if(is_user_logged_in()) {
    wp_redirect( '/pagina-destino, 302 );
    }
    else {echo "Error";}
    
}

Creo el shortcode 'redirigir', que usa la función redirectuser. Meto el shortcode en la página a la que no quiero que acceda el usuario logeado y ale, funciona 🙂

Saludos

No estaria mal un wp_die() en lugar de echo error. :d
 
No estaria mal un wp_die() en lugar de echo error. :d

Pero es que entonces no seguiría ejecutándose el código y no cargaría el sitio. Prefiero que muestre error, para que el usuario sepa que algo pasa, pero pueda seguir con el proceso. En caso de que muestre "error", el usuario verá un formulario que no debía ver, pero no es grave.

Saludos!
 
Voltar
Topo