本文整理汇总了PHP中Mage_Customer_Model_Customer::hasDataChanges方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Customer_Model_Customer::hasDataChanges方法的具体用法?PHP Mage_Customer_Model_Customer::hasDataChanges怎么用?PHP Mage_Customer_Model_Customer::hasDataChanges使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Customer_Model_Customer
的用法示例。
在下文中一共展示了Mage_Customer_Model_Customer::hasDataChanges方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testPrepareCustomerAddressForSave
/**
* @param array $addressData
* @param Mage_Customer_Model_Address|null $newAddress
* @param Mage_Customer_Model_Address|null $existingAddress
* @param array $addressCollection
* @param bool $dataChanged
* @param bool $expectedDataChange
* @dataProvider addressesDataProvider
*/
public function testPrepareCustomerAddressForSave(array $addressData, $newAddress, $existingAddress, array $addressCollection, $dataChanged, $expectedDataChange)
{
$this->_customer->setDataChanges($dataChanged);
$this->_customer->expects($this->any())->method('getId')->will($this->returnValue(1));
$this->_customer->expects($this->once())->method('getAddressesCollection')->will($this->returnValue($addressCollection));
if ($newAddress) {
// Check that customer_id is set for new addresses
$newAddress->expects($this->once())->method('setCustomerId')->with(1);
// Check that new address is added to customer address collection
$this->_customer->expects($this->once())->method('addAddress');
// Check that new address is not deleted
$newAddress->expects($this->never())->method('setData')->with('_deleted', true);
}
// Check that address loaded from customer address collection
if ($existingAddress && $addressData) {
$this->_customer->expects($this->once())->method('getAddressItemById')->with($existingAddress->getId())->will($this->returnValue($existingAddress));
}
// Check that new data is added
$hasExistingAddress = false;
foreach ($addressData as $data) {
if (array_key_exists('entity_id', $addressData)) {
unset($data['entity_id']);
$existingAddress->expects($this->once())->method('addData')->with($data);
$hasExistingAddress = true;
} elseif ($newAddress) {
$newAddress->expects($this->once())->method('addData')->with($data);
}
}
// Check that addresses is deleted
if (in_array($existingAddress, $addressCollection) && !$hasExistingAddress) {
$existingAddress->expects($this->atLeastOnce())->method('setData')->with('_deleted', true);
}
$this->assertInstanceOf('Mage_Customer_Model_Customer', $this->_service->update(1, array(), $addressData), 'Incorrect instance returned');
$this->assertEquals($expectedDataChange, $this->_customer->hasDataChanges(), 'Customer change data status is incorrect');
}
示例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);
}