2
我在此处查看演练:http://www.excellencemagentoblog.com/magento-add-custom-fields-checkout-page。在Magento结账中添加自定义字段以审核订单步骤
我最初被要求打开一个关于自定义字段不保存到表格的问题,当字段被移动到审查顺序步骤而不是引用文章的开票步骤时。所以我正在改写我的问题,因为我尽可能缩小了这个范围。这是我的观察类
class Excellence_Custom_Model_Observer{
public function saveQuoteBefore($evt){
$quote = $evt->getQuote();
$post = Mage::app()->getFrontController()->getRequest()->getPost();
if(isset($post['custom']['sales_person'])){
$var = $post['custom']['sales_person'];
$quote->setSalesPerson($var);
}
}
public function saveQuoteAfter($evt){
$quote = $evt->getQuote();
if($quote->getSalesPerson()){
$var = $quote->getSalesPerson();
if(!empty($var)){
$model = Mage::getModel('custom/custom_quote');
$model->deteleByQuote($quote->getId(),'sales_person');
$model->setQuoteId($quote->getId());
$model->setKey('sales_person');
$model->setValue($var);
$model->save();
}
}
}
public function loadQuoteAfter($evt){
$quote = $evt->getQuote();
$model = Mage::getModel('custom/custom_quote');
$data = $model->getByQuote($quote->getId());
foreach($data as $key => $value){
$quote->setData($key,$value);
}
}
public function saveOrderAfter($evt){
$order = $evt->getOrder();
$quote = $evt->getQuote();
if($quote->getSalesPerson()){
$var = $quote->getSalesPerson();
if(!empty($var)){
$model = Mage::getModel('custom/custom_order');
$model->deleteByOrder($order->getId(),'sales_person');
$model->setOrderId($order->getId());
$model->setKey('sales_person');
$model->setValue($var);
$order->setSalesPerson($var);
$model->save();
}
}
}
public function loadOrderAfter($evt){
$order = $evt->getOrder();
$model = Mage::getModel('custom/custom_order');
$data = $model->getByOrder($order->getId());
foreach($data as $key => $value){
$order->setData($key,$value);
}
}
}
通过法师::日志()我能看到saveQuoteBefore()只呼吁计费一步。这就是为什么当我移动领域时,它从未记录。
是否有另一个钩子,我需要保存它在审查顺序步骤?