我通过创建以下文件在 magento 中创建了自定义 checkout_cart_save_before
观察者
app/etc/modules/Cart_Override.xml
<?xml version="1.0"?>
<config>
<modules>
<Cart_Override>
<codePool>local</codePool>
<active>true</active>
<depends>
<Mage_Contacts />
</depends>
</Cart_Override>
</modules>
</config>
app/code/local/Cart/Override/etc/config.xml
<?xml version="1.0"?>
<config>
<global>
<models>
<cartoverride>
<class>Cart_Override_Model</class>
</cartoverride>
</models>
<events>
<checkout_cart_save_before>
<observers>
<cart_override_qty_observer>
<type>singleton</type>
<class>Cart_Override_Model_Qtyc_Observer</class>
<method>checkout_cart_save_before</method>
</cart_override_qty_observer>
</observers>
</checkout_cart_save_before>
</events>
</global>
</config>
和app/code/local/Cart/Override/Model/Qtyc/Observer.php
class Cart_Override_Model_Qtyc_Observer extends Varien_Event_Observer
{
public function checkout_cart_save_before($observer)
{
$action = Mage::app()->getFrontController()->getAction();
$product = $observer->getProduct();
echo "<pre>";
print_r($product);
echo "</pre>";
die();
}
}
观察者工作正常,当我单击“添加到购物车”按钮时,它将执行 checkout_cart_save_before
功能。但我无法使用 checkout_cart_save_before
函数内的以下代码从观察者处获取产品值
$product = $observer->getProduct();
我必须添加一些内容才能从 observer
参数获取产品详细信息
?......有什么猜测吗?
最佳答案
看看Mage_Checkout_Model_Cart::save()
事件的发送位置:
Mage::dispatchEvent('checkout_cart_save_before', array('cart'=>$this));
您可以使用 $cart = $observer->getEvent()->getCart();
访问购物车数据以及带有 $cart->getItems()
的报价项目.
关于php - Magento 观察者未查看产品详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23766413/