Как перезагрузить страницу с одной страницей? - PullRequest
0 голосов
/ 04 мая 2020

Мне нужно выдать сообщение об ошибке, если введенный пин-код платежного адреса не совпадает с указанным. Я написал наблюдателю, чтобы сделать то же самое. Но сообщение об ошибке не будет отображаться, пока страница не будет обновлена ​​/ перезагружена. Я попробовал некоторые методы, чтобы перезагрузить одностраничную проверку (упомянутую в коде), но ни один из этих методов, кажется, не работает для меня. Как мне этого добиться? Вот мой код наблюдателя:

public function customerAddressSa‌​veBefore(Varien_Event_Observer $observer){
    ...

    $addressId = Mage::app() ->getRequest()->getPost("billing_address_id");
    $address=Mage::getModel('customer/address')->load($addressId);
    if(in_array($address->getPostcode(),$pincodes)){
        Mage::log("Pincode verfied", null, 'system.log', true);
    }
    else{
        Mage::log("Invalid Pincode", null, 'system.log', true);
        Mage::getSingleton('core/session')->addError('Sorry cannot deliver in this pincode. Please specify another address');

 ///----The  following are the methods i tried---//
        // method 1
        Mage::app()->getResponse()->setRedirect('checkout/onepage/');

        // method 2
        // $response = $observer->getResponse();
        // $request = $observer->getRequest();
        // $response->setRedirect(Mage::getUrl('checkout/onepage'),301);
        // Mage::getSingleton('checkout/session')->setNoCartRedirect(true);

        // method 3
        // // $observer->getRequest()->setParam('return_url','http://localhost/koottzz/checkout/onepage/');
        Mage::log("Invalid Pincode redirect", null, 'system.log', true);
        exit;

    }    
 }

Если кто-то может помочь, это будет здорово. Любая помощь будет оценена.

...