You can try to create an observer in a module, preferrable your own module in the local code pool:
<!-- app/code/local/Mymodule/etc/config.xml -->
...
<global>
<events>
...
<sales_model_service_quote_submit_after><sales_order_place_after>
<observers>
<clear_session>
<class>Mymodule_Model_Observer</class>
<method>clearCheckoutSession</method>
</clear_session>
</observers>
</sales_model_service_quote_submit_after>sales_order_place_after>
</events>
</global>
...
Don't know how this works? See here:
Once you declare the observer, build it out:
<?php
// app/code/local/Mymodule/Model/Observer.php
class Mymodule_Model_Observer
extends Varien_Event_Observer
{
public function clearCheckoutSession()
{
Mage::getSingleton('core/session')->clear(); // Or whatever you want to clear
}
}
You'll want to customize this to your needs, obviously. And put some verification checks in there as well.
Something to note is thatEDIT: As per laketuna's suggestion, I changed the target event we observe in the config XML,to sales_model_service_quote_submit_aftersales_order_place_after
, is dispatched out of Mage_Sales_Model_Service_Quote::submitOrder
-as it is triggered afterseems to be the order has completed. But, there are other events in there which might fit your need (eg: checkout_type_onepage_save_order
)most reliable one to observe.