删除magento中的客户地址

时间:2013-03-11 15:07:58

标签: magento

我需要以编程方式删除客户地址,但我没有找到执行此操作的功能。

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

我已经按照上面的说明使用了地址集合,我只是想通过id删除它们。 奇怪的是,我没有找到示例,而是使用API​​。 有人可以用这个手牌吗?

2 个答案:

答案 0 :(得分:5)

查看Mage_Customer_AddressController控制器类和deleteAction()方法。基本上你只需要通过它的id加载地址:

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

然后将其删除:

$address->delete();

delete()是您可以针对所有模型运​​行的标准方法(请参阅Mage_Core_Model_Abstract),您还可以设置_isDeleted标记并调用具有相同标记的save()结果

答案 1 :(得分:4)

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

我发现从用户帐户中删除地址的唯一方法是将受保护的$ _isDeleted标志更改为true:

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

希望为任何能够绊倒同样Magento行为的人节省一些时间。