Blank on failed payment

Due to a bug in Magento, when OneStepCheckout tries to send emails about "Failed payment" (standard feature in Magento), the design gets reset to default.

SUGGESTED METHOD

In order to solve this ensure that your site theme package and template fallback settings are correct in system > design and in system > configuration > general > design as the essence of this issue is that during exception your site wont find your template folder used .

If the settings are correct then this will not happen. Eq site templates are under app/design/frontend/base/yourtheme but your site "current package name" is "default" (or some other package) instead of "base" (or other package under which your theme files actually reside).

NOT SUGGESTED BUT ALSO USABLE

In order to solve this on file level (comes with a penalty of not getting payment failed e-mails), please open the following file in a text editor:

  • app/code/local/Idev/OneStepCheckout/Block/Checkout.php

Search for "sendPaymentFailedEmail", and comment that line out, so:

$this->formErrors['unknown_source_error'] = $error;
Mage::logException($e);
Mage::helper('checkout')->sendPaymentFailedEmail($this->getOnepage()->getQuote(), $error);
return;

becomes

$this->formErrors['unknown_source_error'] = $error;
Mage::logException($e);
//Mage::helper('checkout')->sendPaymentFailedEmail($this->getOnepage()->getQuote(), $error);
return;