当前位置: 首页>>代码示例>>PHP>>正文


PHP Mage_Customer_Model_Customer::hasDataChanges方法代码示例

本文整理汇总了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');
 }
开发者ID:,项目名称:,代码行数:44,代码来源:

示例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);
 }
开发者ID:,项目名称:,代码行数:43,代码来源:


注:本文中的Mage_Customer_Model_Customer::hasDataChanges方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。