0

我开发了一个自定义结帐模块并且工作正常。在第一次结帐时,当我输入新的账单和送货地址时,它们被设置为默认账单和送货地址,这很好。现在,我有一个要求,每当输入新的送货地址时,这应该成为默认送货地址。不知何故,我无法完成这项工作。我尝试了以下方法:

$shipdata 是一个包含新地址详细信息的数组。

$shipAddress = $this->getQuote()->getShippingAddress();
$shipAddress->addData($shipdata);
$shipAddress->setIsDefaultShipping(true);

if($this->getQuote()->getDefaultShipping()) {
   $this->getQuote()->setData('default_shipping', '');
   $this->getQuote()->addAddress($shipAddress);
}
$this->getQuote()->collectTotals();
$this->getQuote()->save();

我还尝试在 $shipdata 中添加以下内容

$shipdata['default_shipping'] = 1;

但也没有帮助。有人可以在这方面提供帮助吗?

4

2 回答 2

0

在发布到下一页的表单中,只需包含一个隐藏的输入

于 2013-03-18T12:50:54.890 回答
0

您可以尝试在“customer_address_save_before”事件上使用观察者。在那里设置 isDefaultShipping 标志将起作用。我唯一不知道的是检查您是否在结帐过程中。

于 2012-03-26T15:21:21.547 回答