2013-03-11 138 views
2

我需要以编程方式删除客户地址,但我没有找到这样做的功能。在magento中删除客户地址

$recordedAddresses = array(); 
    foreach ($customer->getAddresses() as $address) 
    { 
     $recordedAddresses = $address->toArray(); 
    } 

我已经拿了地址的集合如上所示,我只是想删除它们的ID。 奇怪的是我没有找到例子,但使用API​​。 有人能给我一只手吗?

回答

5

查看Mage_Customer_AddressController控制器类和deleteAction()方法。基本上所有你需要是它的ID载入地址:

$address = Mage::getModel('customer/address')->load($addressId);

然后将其删除:

$address->delete();

delete()是你可以对所有型号上运行的标准方法(见Mage_Core_Model_Abstract ),您也可以设置_isDeleted标志并呼叫save(),它们将具有相同的结果。

+0

它的工作!干杯! – RaphaelDuraes 2013-03-11 16:21:15

3

不知何故Magento在我的案例中使用$address->delete()后保留空实体。帐户上有空地址,阻止管理员在使用此方法时保存客户表单。

只有我发现真正删除用户帐户中的地址的方法是通过改变保护$ _isDeleted标志设置为true:

$address = Mage::getModel('customer/address')->load($addressId); $address->isDeleted(true);

希望这样可以节省一些时间的人谁都会绊倒uppon相同Magento的行为。

+0

太好了。谢谢。 – saravanavelu 2017-03-11 05:24:52