用户订单完成后,我需要以编程方式删除订购的产品。
一些想法在什么时候我可以解决这个问题?
下订单后,您可以使用 magento 的事件/观察者方法来做某事。
你可以使用这个事件sales_order_place_after
只需创建一个模块来监听 magento 观察者/事件。
在您的 /app/code/local/{namespace}/{yourmodule}/etc/config.xml 中:
<config>
...
<frontend>
...
<events>
<sales_order_place_after>
<observers>
<unique_event_name>
<class>{{modulename}}/observer</class>
<method>your function name</method>
</unique_event_name>
</observers>
</sales_order_place_after>
</events>
...
</frontend>
...
</config>
然后在 /app/code/local/{namespace}/{yourmodule}/Model/Observer.php 创建一个 Observer 类
class <namespace>_<modulename>_Model_Observer
{
public function your function name(Varien_Event_Observer $obs)
{
$items = $observer->getEvent()->getOrder()->getAllItems(); // you can get order item and then put delete function
}
}
这是如何设置观察者的链接(您需要为此创建自己的模块)。
您要监听的事件是sales_order_place_after
,当您为其声明观察者时,您的代码将在任何订单下达后被调用。
您可以将此代码添加到您的观察者
删除产品在 magento 中使用以下代码。
此代码将有助于删除产品
<?php
Mage::register("isSecureArea", 1);
$product_id = 2; //use your own product id
try{
Mage::getModel("catalog/product")->load( $product_id )->delete();
}catch(Exception $e){
echo "Delete failed";
}
?>