删除magento中的客户地址

删除magento中的客户地址,magento,Magento,我需要以编程方式删除客户地址,但我没有找到一个函数来执行此操作 $recordedAddresses = array(); foreach ($customer->getAddresses() as $address) { $recordedAddresses = $address->toArray(); } 我已经采取了地址的收集如上所示,我只想删除他们的id。 奇怪的是,我并没有找到使用API的例子。 有人能帮我一下吗?看看Mage

我需要以编程方式删除客户地址,但我没有找到一个函数来执行此操作

 $recordedAddresses = array();
    foreach ($customer->getAddresses() as $address)
     {
        $recordedAddresses = $address->toArray();
     }
我已经采取了地址的收集如上所示,我只想删除他们的id。 奇怪的是,我并没有找到使用API的例子。
有人能帮我一下吗?

看看Mage\u Customer\u AddressController类和deleteAction()方法。基本上,您只需按地址的id加载地址:

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

然后删除它:

$address->delete()


delete()
是可以针对所有模型运行的标准方法(请参见
Mage\u Core\u Model\u Abstract
),您还可以设置
\u isDeleted
标志并调用
save()
,这将产生相同的结果。

在我的情况下,Magento在使用
$address->delete()
后以某种方式保留空实体。帐户上存在空地址,管理员在使用此方法时无法保存客户表单

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

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


希望这能为那些无意中发现相同Magento行为的人节省一些时间

太好了。非常感谢。