本文整理汇总了PHP中Mage_Customer_Model_Customer::getAddressItemById方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Customer_Model_Customer::getAddressItemById方法的具体用法?PHP Mage_Customer_Model_Customer::getAddressItemById怎么用?PHP Mage_Customer_Model_Customer::getAddressItemById使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Customer_Model_Customer
的用法示例。
在下文中一共展示了Mage_Customer_Model_Customer::getAddressItemById方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _validateCustomerAddress
/**
* Customer address validation.
*
* @param Varien_Object $response
* @param Mage_Customer_Model_Customer $customer
*/
protected function _validateCustomerAddress($response, $customer)
{
$addressesData = $this->getRequest()->getParam('address');
if (is_array($addressesData)) {
/* @var $addressForm Mage_Customer_Model_Form */
$addressForm = Mage::getModel('Mage_Customer_Model_Form');
$addressForm->setFormCode('adminhtml_customer_address')->ignoreInvisible(false);
foreach (array_keys($addressesData) as $index) {
if ($index == '_template_') {
continue;
}
$address = $customer->getAddressItemById($index);
if (!$address) {
$address = Mage::getModel('Mage_Customer_Model_Address');
}
$requestScope = sprintf('address/%s', $index);
$formData = $addressForm->setEntity($address)->extractData($this->getRequest(), $requestScope);
$errors = $addressForm->validateData($formData);
if ($errors !== true) {
foreach ($errors as $error) {
$this->_getSession()->addError($error);
}
$response->setError(1);
}
}
}
}
示例2: _prepareCustomerAddressesForSave
/**
* Save customer addresses.
*
* @param Mage_Customer_Model_Customer $customer
* @param array $addressesData
* @throws Mage_Core_Exception
*/
protected function _prepareCustomerAddressesForSave($customer, array $addressesData)
{
$hasChanges = $customer->hasDataChanges();
$actualAddressesIds = array();
foreach ($addressesData as $addressData) {
$addressId = null;
if (array_key_exists('entity_id', $addressData)) {
$addressId = $addressData['entity_id'];
unset($addressData['entity_id']);
}
if (null !== $addressId) {
$address = $customer->getAddressItemById($addressId);
if (!$address || !$address->getId()) {
throw new Mage_Core_Exception($this->_translateHelper->__('The address with the specified ID not found.'));
}
} else {
$address = $this->_addressFactory->create();
$address->setCustomerId($customer->getId());
// Add customer address into addresses collection
$customer->addAddress($address);
}
$address->addData($addressData);
$hasChanges = $hasChanges || $address->hasDataChanges();
// Set post_index for detect default billing and shipping addresses
$address->setPostIndex($addressId);
$actualAddressesIds[] = $address->getId();
}
/** @var Mage_Customer_Model_Address $address */
foreach ($customer->getAddressesCollection() as $address) {
if (!in_array($address->getId(), $actualAddressesIds)) {
$address->setData('_deleted', true);
$hasChanges = true;
}
}
$customer->setDataChanges($hasChanges);
}