public function CodeOrdeStatus(Varien_Event_Observer $observer)
{
$order = $observer->getEvent()->getPayment()->getOrder();
$order=Mage::getModel('sales/order')->load($order->getEntityId());
$order->setState(Mage_Sales_Model_Order::STATE_CANCELED, true);
$order->setStatus("canceled");
$order->save();
Mage::log($order->getState(),true,'cancelorder.log');
}
i want to update the my custom layout file inside this event
<checkout_cart_index>
<reference name="content">
<block type="orderscancel/index" name="orderscancel_index" template="orderscancel/cart.phtml"/>
</reference>
</checkout_cart_index>
I tried
Mage::app()->getLayout()->getUpdate()->addUpdate('Mage::app()->getLayout()->getUpdate()->addUpdate('<reference name="head">
<action method="addJs">
<js>path/to/rahul.js</js>
</action>
</reference>
</default>');
Mage::app()->getLayout()->generateXml();
I have used the event sales_order_payment_cancel in config.xml
<events>
<sales_order_payment_cancel>
<observers>
<change_order_status>
<class>Ipp_Orderscancel_Model_Observer</class>
<method>CodeOrdeStatus</method>
</change_order_status>
</observers>
</sales_order_payment_cancel>
</events>
But it didn’t worked, please help me.
Thanks
Best Answer
You're on the wrong path here. To manipulate the layout programmatically, you don't need to write XML.
This XML code
translates to this PHP code:
(provided that
loadLayout()
has been called before, so that the "head" block already exists, but is not rendered yet)