고객이이 주소보다 처음으로 주소를 입력하면 및 배송 주소로 청구됩니다. 그러나 데이터베이스에는 하나의 항목 만 있습니다. 따라서 고객이 나중에 청구 주소가 변경된 것보다 기존 주소를 수정하여 배송지 주소를 변경하려는 경우에도 마찬가지입니다. 이를 방지하려면 데이터베이스에 청구서 수신 주소 용과 배송지 주소 용의 두 개의 항목이 필요합니다. 따라서고객 주소를 복제하는 방법은 무엇입니까?
이벤트 customer_address_save_after
을 사용하여 이벤트 청구서를 작성하여 기본 청구서 수신 주소의 항목이 기본 발송 주소의 항목과 동일한 지 확인합니다. 그렇다면이 주소의 사본이 새로운 배송지 주소로 저장됩니다. 글쎄, 적어도이 아이디어,
public function customerAddressSaveAfter($observer)
{
$session = Mage::getSingleton('customer/session');
if ($session->getCustomer()->getDefaultBilling() ==
$session->getCustomer()->getDefaultShipping())
{
$address = $observer->getCustomerAddress();
$address->unsAddressId()
->unsAddressType();
Mage::getModel('customer/address')
->setData($address->getData())
->setIsDefaultShipping('1')
->setSaveInAddressBook('1')
->save();
}
return $this;
}
는했지만 코드를 실행하면 메모리가 소진 될 때까지 무한 루프가 발생할 것으로 보인다. 내가 도대체 뭘 잘못하고있는 겁니까?
난 당신이 걱정 이유를 모르겠어요. Magento는 이미 여러 개의 주소를 저장할 수 있습니다. – pspahn