Tengo una página personalizada en magento.Mi condición es la de que «si el usuario no está loggedin así que antes de guardar los cambios estoy redirigir usuario a la página de inicio de sesión, quiero redirigir al usuario en mi página personalizada después de la tala.».
Estoy usando el siguiente código no es redirigir a mí en mi página personalizada después de la tala.

Mage::app('default');
if( !Mage::getSingleton( 'customer/session' )->isLoggedIn() ){                  
    $session = Mage::getSingleton( 'customer/session' );
    $session->setBeforeAuthUrl('http://'.$_SERVER['HTTP_HOST'].'/custom.html');
    header("Location: /customer/account/login");    
}

su redirigir a mí en la página de inicio de sesión. si yo uso el siguiente código en lugar de header no lo puedo redirigir a mí a la página de inicio de sesión.

Mage::app()->getResponse()->setRedirect(Mage::getUrl("customer/account/login")); 

O

Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('customer/account'));

1) yo estoy en el mismo dominio.

2) «Sistema» > «Configuración» > «Cliente de Configuración» en la sección «Opciones de inicio de Sesión» -> «Redirigir al Cliente a Cuenta de Panel de control después de iniciar sesión» está ajustado a No.

Quiero establecer la dirección url de retorno antes de redirigir a la página de inicio de sesión. así que después de la sesión en la que se redirige al usuario a la dirección url de retorno de la página. & Mi página personalizada está fuera de magento.

Aquí es mi costumbre código de la página.

$mageFilename = 'app/Mage.php';
require_once( $mageFilename );
umask(0);
Mage::app();
if( !Mage::getSingleton( 'customer/session' )->isLoggedIn() ){                  
    $session = Mage::getSingleton( 'customer/session' );
    $session->setBeforeAuthUrl('http://'.$_SERVER['HTTP_HOST'].'/full-custom.php?sid=8');
    header("Location: /customer/account/login");
    //Mage::app()->getResponse()->setRedirect(Mage::getUrl("customer/account/login"));  
    //Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('customer/account'));  
}

Por favor ayuda!!

InformationsquelleAutor Shahid Ahmed | 2012-10-10

6 Comentarios

  1. 3

    De intentar el siguiente código para la redirección de

    if( !Mage::getSingleton( 'customer/session' )->isLoggedIn() )
    {                  
        $this->_redirect('page_url'); 
    }

    en Magento _redirect es propiedad de la redirección de página. aplicar personalizado url de la página en lugar de utilizar page_url.

    • Quiero establecer la dirección url de retorno antes de redirigir a la página de inicio de sesión. así que después de la sesión en la que se redirige al usuario a la dirección url de retorno de la página. & Mi página personalizada está fuera de magento.
    • compruebe la AccountController.php archivo en la siguiente ruta de acceso de la aplicación/código/core/Mago/Cliente/controllers/. Y comprobar la _loginPostRedirect función para establecer su redirección de url para el cliente después de inicio de sesión .
    • Esta respuesta no responde a la pregunta.
    • Debo utilizar este código en el archivo PHTML ?¿Por qué no específicas acerca de su respuesta? Usted debe escribir un 100% de respuesta.
  2. 5

    He tenido un problema similar, y he utilizado diferentes de la solución.
    En mi escenario de Magento redirige el usuario a la última página, fue mientras se registra la última vez.

    Al principio era confuso porque, incluso después de ajustar Admin > Sistema > Configuración > el Cliente Configuración > Opciones de inicio de Sesión > Redirigir al Cliente a Cuenta de Panel de control después de iniciar sesión en a NO yo todavía estaba siendo redirigido a panel de control.

    Finalmente me di cuenta de que eso fue en mi caso exactamente la última página estaba en después de salir recientemente.

    De todos modos, quería Magento para siempre redirigir usuario después de iniciar sesión, a la última página que actualmente estaba en.

    Yo quería evitar la instalación de cualquier extensiones, o la creación adicional de la extensión de mi propia (y esto incluye la reescritura de AccountController). Así que simplemente resuelto por la local sobrescribir de Magento/Customer/Model/Session.php donde he añadido $this->unsBeforeAuthUrl(); en el método de inicio de sesión (después del éxito de la autenticación).

    public function login($username, $password)
    {
        /** @var $customer Mage_Customer_Model_Customer */
        $customer = Mage::getModel('customer/customer')
            ->setWebsiteId(Mage::app()->getStore()->getWebsiteId());
    
        if ($customer->authenticate($username, $password)) {
            $this->unsBeforeAuthUrl();  //<-- my addition
            $this->setCustomerAsLoggedIn($customer);
            $this->renewSession();
            return true;
        }
        return false;
    }

    Gracias a esto, ahora cada vez que el usuario se registra before_auth_url se borra, que las fuerzas de magento para redirigir usuario a la dirección url almacenada en referer parámetro.

    Y he tenido que añadir referer parámetro para mi mini.de inicio de sesión.phtml forma. Que se hace así.

    Primero en la parte superior de la plantilla de atención al cliente//la forma/el mini.de inicio de sesión.phtml puedo añadir:

    <?php
        $params = Mage::helper('customer')->getLoginUrlParams();
        $ref = isset($params[Mage_Customer_Helper_Data::REFERER_QUERY_PARAM_NAME])?$params[Mage_Customer_Helper_Data::REFERER_QUERY_PARAM_NAME]:false;
    ?>

    Y, a continuación, en algún lugar dentro de la añado:

    <?php if ($ref): ?>
    <input type="hidden" name="<?php echo Mage_Customer_Helper_Data::REFERER_QUERY_PARAM_NAME ?>" value="<?php echo $ref ?>"/>
    <?php endif; ?>

    Ahora funciona de la manera que desee (al menos por ahora, he creado este de hoy). Voy a tratar de agregar algunos comentarios cuando me encuentro con algunos problemas con esta solución.

    No estoy seguro de si su solución perfecta (ya que requiere de la adición de este referer de seguimiento) – tal vez Magento almacena internamente última dirección url en algún otro lugar, y podía leer desde la sesión.

    • Esta es la misma situación que yo estaba buscando para redireccionar después de inicio de sesión…ojalá hubiera encontrado este hace horas. Su respuesta fue una gran ayuda, gracias!
    • Feliz de ayudar :). Años desde entonces, todavía funciona como se esperaba (ahora en 1.9.2.4). Nunca he encontrado ningún problema con ella.
  3. 2

    primero:

    ir a admin > Sistema > Configuración > el cliente configuración > Opciones de inicio de Sesión > No para «Redirigir al Cliente a Cuenta de Panel de control después de iniciar sesión en»

    A continuación:

    abierto \app\code\core\Mage\Customer\controllers\AccountController.php

    mirar alrededor de la línea # 187. Mage::helper('customer')->getAccountUrl() es la redirección de la url del panel de control del cliente. El cambio esta a la url deseada.

    es decir, se puede cambiar:

    $session->setBeforeAuthUrl(Mage::helper('customer')->getAccountUrl());

    A

    $session->setBeforeAuthUrl(Mage::getBaseUrl());

    Que va a redirigir a sus clientes a la página de inicio después de iniciar sesión correctamente

    • Por favor no modificar el código del núcleo. Copia el archivo a app/code/local/Mage/Customer/controllers/AccountController.php si usted necesita para reemplazar el núcleo de la funcionalidad.
    • Con esta solución, el Usuario será redireccionado a la página de inicio después de inicio de sesión durante el proceso de compra de la página.
    • No modifique nunca el núcleo! Y evitar copiar los archivos locales. En su lugar, hacer una limpieza de reescritura, poner en práctica su propio controlador o el uso de un postdispatch evento
    • Me gustó su solución para setBeforeAuthUrl, pero yo lo he utilizado con customer_login observador. Usted no debe cambiar el núcleo. Crear un módulo, y el uso de observadores de este.
  4. 1

    Redirección después de la sesión, la Sesión y la Inscripción es muy común tema en magento. Por favor, encontrar el código de abajo, que le puede ayudar.

    public function customerLogin()    
    {    
        $_session = Mage::getSingleton('customer/session');    
        $_session->setBeforeAuthUrl(CustomUrl);    
    }

    «Customurl» es una dirección url a la que desea redirigir después de la Sesión.

    Si quieres la solución completa para la costumbre de redirección de url para su sitio web de comercio electrónico después de la sesión, la Sesión y Registro. Personalizado de la Redirección de la extensión puede ayudar. Haga clic en el enlace para obtener la extensión. http://www.magentocommerce.com/magento-connect/custom-redirection.html

  5. 0

    Básicamente uso setBeforeAuthUrl

    Estoy usando este código para redirigir a sitios de referencia

    <?php Mage::getSingleton('customer/session')->setBeforeAuthUrl($this->getRequest()->getRequestUri());?>

    Por ejemplo, en la costumbre de formulario de inicio de sesión:

    <form method="post" action="<?php echo Mage::helper('customer')->getLoginPostUrl() ?>">
    <?php Mage::getSingleton('customer/session')->setBeforeAuthUrl($this->getRequest()->getRequestUri());?>
    ...
    ...
    ....

    Que respecta a

Dejar respuesta

Please enter your comment!
Please enter your name here