【发布时间】:2018-03-23 11:32:13
【问题描述】:
我目前正在开发模块,女巫必须编写自定义数据来订购和报价。此数据是从一步/结帐传递的。我通过编辑模板在运输方式部分添加了复选框。
到目前为止,我已经为订单和报价创建了属性,安装脚本女巫显示在表格中:
$installer = $this;
$installer->startSetup();
$installer->addAttribute('order', 'stoque', array(
'type' =>'int',
'label' => 'Que to service station',
'global' => 1,
'visible' => 1,
'required' => 0,
'user_defined' => 1,
'searchable' => 0,
'filterable' => 0,
'comparable' => 0,
'visible_on_front' => 1,
'visible_in_advanced_search' => 0,
'unique' => 0,
'is_configurable' => 0,
'position' => 1,
));
$installer->addAttribute('quote', 'stoque', array(
'type' =>'int',
'label' => 'Que to service station',
'global' => 1,
'visible' => 1,
'required' => 0,
'user_defined' => 1,
'searchable' => 0,
'filterable' => 0,
'comparable' => 0,
'visible_on_front' => 1,
'visible_in_advanced_search' => 0,
'unique' => 0,
'is_configurable' => 0,
'position' => 1,
));
$installer->endSetup();
这里是 config.xml 全局部分
<models>
<modulename>
<class>Vendor_Module_Model</class>
</modulename>
</models>
<fieldsets>
<sales_convert_quote>
<attributename><to_order>*</to_order></attributename>
</sales_convert_quote>
<sales_convert_order>
<attributename><to_quote>*</to_quote></attributename>
</sales_convert_order>
</fieldsets>
<modulename_write>
<connection>
<use>core_write</use>
</connection>
</modulename_write>
<modulename_read>
<connection>
<use>core_read</use>
</connection>
</modulename_read>
<resources>
<modulename_setup>
<setup>
<module>Vendor_Module</module>
<class>Mage_Sales_Model_Mysql4_Setup</class>
</setup>
</modulename_setup>
</resources>
<events>
<checkout_controller_onepage_save_shipping_method>
<observers>
<modulename_observer>
<class>modulename/observer</class>
<method>setStoqueVal</method>
</modulename_observer>
</observers>
</checkout_controller_onepage_save_shipping_method>
<checkout_type_onepage_save_order>
<observers>
<modulename_observer_order>
<class>modulename/observer</class>
<method>saveDataToOrder</method>
</modulename_observer_order>
</observers>
</checkout_type_onepage_save_order>
</events>
</global>
这是观察者类:
protected $_stoQue;
public function setStoqueVal($observer){
$fieldVal = Mage::app()->getFrontController()->getRequest()->getParam('stoque');
if($fieldVal){
$this->_stoQue = true;
}else{
$this->_stoQue = false;
}
}
public function saveDataToOrder($observer) {
var_dump($this->_stoQue);
die;
}
HTML:
<input type="checkbox" name="stoque" class="stoque-checkbox">
您可以看到我尝试更改$ this-> _ stoque值。它在 setStoqueVal 方法中发生了更改,但是当我尝试在 saveDataToOrder 方法中获取此值时,即使在 config.xml 中设置了单例,它也会返回 NULL。 到目前为止,我已经尝试通过寄存器传递它,但仍然没有用。
非常感谢您的帮助。
【问题讨论】:
标签: magento-1.9 observers