Magento 1.9: Как перенаправить пользовательскую страницу после регистрации, а затем домашнюю страницу


Как перенаправить пользовательскую страницу после регистрации в Magento 1.9.2.4. На моей пользовательской странице, имеющей форму, если я отправлю эту форму, она перейдет на домашнюю страницу

У меня есть verify.phtml

             <?php 

               $isuserVerified = Mage::helper('test/Data')->isUserVerified(Mage::getSingleton('customer/session')->getId());
              if($isuserVerified == 'false'): ?>
        <div class="verify_mobile">
            <?php /*?><div class="notverify_yet">
       <?php echo $this->__('*Please verify your mobile with OTP code.'); ?>

<label class="verify">
    <?php echo $this->__("Please Enter verification codes"); ?>
</label>
<input type="text" id="code" name="code" placeholder="Enter verification code" class="verify" />
<input type="button"  id="verify_mobile" value="Verify Mobile" class="button verify" />
<?php if(Mage::helper('test/Data')->canResendOTP())
    { ?>
<a href="#" id="resend_mobile_code" class="verify resendcode">Resend Code</a>
<?php } ?>

                    <script type="text/javascript">
                 jQuery(document).ready(function(e) {

    jQuery('#verify_mobile').click(function(e) {
        var code = jQuery("#code").val();
        if(code !== ""){
            jQuery.ajax({
                method:"POST",
                url:'<?php echo Mage::getBaseUrl().'test/index/checkMobileVerificationCode' ?>',
                data:{code:code}, 
                success: function(data) {

                    if(data !== "false"){
                        jQuery(".verify_mobile").css('display','none');
                        showMessage('Thanks for Verification', "success");
                    }
                    else
                    {
                      showMessage('Please Enter Valid Code!', "error"); 
                    }
                },
                error: function() {
                    alert('Error occured');
                }
            });
        }
    }); 

    jQuery('#resend_mobile_code').click(function(e) {
        var code = jQuery("#code").val();

        jQuery.ajax({
            method:"POST",
            url:'<?php echo Mage::getBaseUrl().'test/index/resendMobileCode' ?>',
            success: function(data) {

                showMessage(data, "success");
            },
            error: function() {
                showMessage('Something went wrong', "error");
            }
        });
    }); 

    function showMessage(txt, type) {
        var html = '<ul class="messages"><li class="'+type+'-msg"><ul><li><span>' + txt + '</span></li></ul></li></ul>';
        jQuery('ul.messages').remove();
        jQuery('.page-title').after(html);
    }

});

Я хочу позвонить на эту страницу (подтвердить otp) после успешной регистрации, и после успешной проверки otp она перейдет на домашнюю страницу.

Я попытался создать пользовательский модуль наблюдатель

         <?php
class Tst_Custommodule_Model_Observer {
    public function myredirection(Varien_Event_Observer $observer) {
    //echo "fsdffds";exit;
    $AccountController = $observer->getEvent()->getAccountController();

    $Customer = $observer->getEvent()->getCustomer();

     $response1 = Mage::app()->getResponse(); // observers have event args

        $url = 'numberverify';
        $response1->setRedirect($url);
        Mage::app()->getFrontController()->sendResponse();

    return;
  }
} 

Но он получает ошибку не может спасти клиента

Author: Vivek Kumar, 2017-11-10

2 answers

Вы можете использовать следующий код в своем наблюдателе, который будет наблюдать событие customer_register_success

 Mage::app()->getResponse()->setRedirect('frontname/controller/action');
 Mage::app()->getResponse()->sendResponse();

Для перенаправления обратно на домашнюю страницу вы можете использовать следующий код в контроллере отправки вашей формы;

$this->_redirect("/");
 1
Author: Vivek Kumar, 2017-11-10 07:41:34

Если я правильно вас понял, при успешной регистрации клиента вы хотите, чтобы ваш клиент был перенаправлен на страницу с шаблоном verify.phtml. Когда проверка пройдет успешно, вы хотите, чтобы они были перенаправлены на домашнюю страницу.

Для этого, я думаю, вам следует выполнить следующие действия:

  1. переопределить действие пользователя по созданию контроллера учетной записи, некоторую информацию можно найти здесь
  2. В действии контроллера вам необходимо установить перенаправление на ваш контроллер клиентского модуля, который загрузит макет, содержащий блок с вашим шаблоном verify.phtml

Я думаю, что пункт 2 может вас смутить. Поэтому позвольте мне объяснить немного подробнее.

Прежде всего вам нужен свой собственный модуль с контроллером. в этом контроллере вы загрузите и отобразите макет с шаблоном. Обратитесь к этому

Теперь в том же модуле вы можете переопределить контроллер клиента с помощью действия создать. И там после того, как клиент будет создан, вы можно перенаправить на ваш контроллер , выполнив что-то вроде

$this->_redirect('имя интерфейса модуля/имя контроллера/имя действия');

Вы можете найти более подробную информацию о перенаправлении на наш пользовательский контроллер модуля.

При проверке успешности отправки формы, которую вы выполняете с помощью ajax, вы можете легко перенаправить на свою домашнюю страницу.

Я надеюсь, что мой ответ выше даст вам некоторые рекомендации для продвижения вперед. Если это поможет вам, пожалуйста, примите и проголосуйте за ответ.

Счастливого кодирования!!

 0
Author: aton1004, 2017-11-10 11:35:16