我有以下问题:
我使用观察者"controller_action_predispatch_checkout_onepage_saveBilling"来获取计费部分中的自定义下拉列表的值,用户可以使用该下拉列表选择客户组,但只有当他在结帐阶段创建帐户时才可以。
现在我想用"sales_order_place_after"观察者来设置用户选择的客户组,但是我不明白如何将group_custom_id值从第一个观察者传递到第二个观察者。
-
使用
将两个观察器注册为单例<type>singleton</type>
在你的
config.xml
(或省略它,因为它是默认类型) -
将数据作为属性存储在观察者类本身
class My_Module_Model_Observer { protected $_myDropdownValue; public function onSaveBilling(Varien_Event_Observer $observer) { // ... $this->_myDropdownValue = ...; } public function onPlaceOrder(Varien_Event_Observer $observer) { //access value with $this->_myDropdownValue; } }
记得KISS。将值存储在一个变量中,也许是在你的观察者类中,因为观察者通常是单例的,并且单例在页面被服务之前不会消失。