Hi,
I add this condition on the Proceed to Checkout button:
<?php if ($this->isPossibleOnepageCheckout() && Mage::getSingleton('customer/session')->isLoggedIn()):?> <button type="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Proceed to Checkout')) ?>" class="button btn-proceed-checkout btn-checkout<?php if ($this->isDisabled()):?> no-checkout<?php endif; ?>"<?php if ($this->isDisabled()):?> disabled="disabled"<?php endif; ?> onclick="window.location='<?php echo $this->getCheckoutUrl() ?>';"><span><span><?php echo $this->__('Proceed to Checkout') ?></span></span></button> <?php else: ?> <button type="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Proceed to Checkout')) ?>" class="button btn-proceed-checkout btn-checkout<?php if ($this->isDisabled()):?> no-checkout<?php endif; ?>"<?php if ($this->isDisabled()):?> disabled="disabled"<?php endif; ?> onclick="window.location='<?php echo Mage::getUrl('customer/account/login'); ?>';"><span><span><?php echo $this->__('Proceed to Checkout') ?></span></span></button> <?php endif?>
So when a user is not login on my store will be redirected to Login / Register page. I made a custom function to redirect the customers after register to checkout page if the was in Shopping Cart else redirect to My Account. But I don't know what is wrong, because now after register I am redirect only to My Account. So I want to redirect customer after registration to the Checkout page if the customer was in the Shopping Cart else to My Account. This is my function:
public function customerRegistration(Varien_Event_Observer $observer) { if(Mage::getSingleton('core/session')->getIsFromCart() == 1 || Mage::getSingleton('core/session')->getIsFromCheckout() == 1){ Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('onestepcheckout/index')); Mage::app()->getResponse()->sendResponse(); exit; } else { Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('customer/account')); Mage::app()->getResponse()->sendResponse(); exit; } Mage::getSingleton('core/session')->setIsFromCart('0'); Mage::getSingleton('core/session')->setIsFromCheckout('0'); }
and this is my observer in the config.xml
<customer_register_success> <observers> <customerredirect> <class>customerredirect/observer_customer</class> <method>customerRegistration</method> </customerredirect> </observers> </customer_register_success>
Thank you very much
Update:
Someone told me that is a way to do this. To add an event before going to register page, add an event observer after registration is complete and then check what is necessary. But I don't know to do this, maybe someone can help me with this?
New Update:
I found what is the problem: I check if the Last url was shopping cart and then I add some condition, for login when I check the last url is the shopping cart, but in register.phtml when I check if the LastUrl is Shopping cart is false, because there the LastUrl is login, how I can make this check to work on the register.phtml? In fact I need to check back for third Url.
Thank you
Login to Magento Admin --> System --> Configuration --> Sales -->Checkout -->Allow Guest Checkout --> Set to "No"
And you can revert all the above changes. Because Magento will redirect the user to login or register.
Hi,
thank you for your answer but I want to tell you Login to Magento Admin --> System --> Configuration --> Sales -->Checkout -->Allow Guest Checkout --> is Set to "No" already in my store, but my checkout page is not a default Magento. My checkout page need authentication in the checkout one page and I need to remove that authentication. For that I add that condition in the link.phtml on the Proceed to Checkout button, for that I need this code to work. Will be very fine if you can tell me a solution. Thank you.