2013-03-11 133 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