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;
}
}
Но он получает ошибку не может спасти клиента
2 answers
Вы можете использовать следующий код в своем наблюдателе, который будет наблюдать событие customer_register_success
Mage::app()->getResponse()->setRedirect('frontname/controller/action');
Mage::app()->getResponse()->sendResponse();
Для перенаправления обратно на домашнюю страницу вы можете использовать следующий код в контроллере отправки вашей формы;
$this->_redirect("/");
Если я правильно вас понял, при успешной регистрации клиента вы хотите, чтобы ваш клиент был перенаправлен на страницу с шаблоном verify.phtml. Когда проверка пройдет успешно, вы хотите, чтобы они были перенаправлены на домашнюю страницу.
Для этого, я думаю, вам следует выполнить следующие действия:
- переопределить действие пользователя по созданию контроллера учетной записи, некоторую информацию можно найти здесь
- В действии контроллера вам необходимо установить перенаправление на ваш контроллер клиентского модуля, который загрузит макет, содержащий блок с вашим шаблоном verify.phtml
Я думаю, что пункт 2 может вас смутить. Поэтому позвольте мне объяснить немного подробнее.
Прежде всего вам нужен свой собственный модуль с контроллером. в этом контроллере вы загрузите и отобразите макет с шаблоном. Обратитесь к этому
Теперь в том же модуле вы можете переопределить контроллер клиента с помощью действия создать. И там после того, как клиент будет создан, вы можно перенаправить на ваш контроллер , выполнив что-то вроде
$this->_redirect('имя интерфейса модуля/имя контроллера/имя действия');
Вы можете найти более подробную информацию о перенаправлении на наш пользовательский контроллер модуля.
При проверке успешности отправки формы, которую вы выполняете с помощью ajax, вы можете легко перенаправить на свою домашнюю страницу.
Я надеюсь, что мой ответ выше даст вам некоторые рекомендации для продвижения вперед. Если это поможет вам, пожалуйста, примите и проголосуйте за ответ.
Счастливого кодирования!!