Esempio n. 1
0
 /**
  * Load customer by email
  *
  * @param \Magento\Customer\Model\Customer $customer
  * @param string $email
  * @return $this
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 public function loadByEmail(\Magento\Customer\Model\Customer $customer, $email)
 {
     $adapter = $this->_getReadAdapter();
     $bind = ['customer_email' => $email];
     $select = $adapter->select()->from($this->getEntityTable(), [$this->getEntityIdField()])->where('email = :customer_email');
     if ($customer->getSharingConfig()->isWebsiteScope()) {
         if (!$customer->hasData('website_id')) {
             throw new \Magento\Framework\Exception\LocalizedException(__('Customer website ID must be specified when using the website scope'));
         }
         $bind['website_id'] = (int) $customer->getWebsiteId();
         $select->where('website_id = :website_id');
     }
     $customerId = $adapter->fetchOne($select, $bind);
     if ($customerId) {
         $this->load($customer, $customerId);
     } else {
         $customer->setData([]);
     }
     return $this;
 }
 /**
  * get customer last quote id
  *
  */
 public function getCustomerLastQuoteId(\Magento\Customer\Model\Customer $customer)
 {
     $storeIds = $this->_storeManager->getWebsite($customer->getWebsiteId())->getStoreIds();
     $collection = $this->_quoteCollection->create()->addFieldToFilter('customer_id', $customer->getId())->addFieldToFilter('store_id', array('in' => $storeIds))->setPageSize(1)->setOrder('entity_id');
     if ($collection->count()) {
         return $collection->getFirstItem();
     } else {
         return false;
     }
 }
 /**
  * Replace existing customer model with a new one.
  *
  * @param Customer $customer
  * @return $this
  */
 public function push(Customer $customer)
 {
     $this->customerRegistryById[$customer->getId()] = $customer;
     $emailKey = $this->getEmailKey($customer->getEmail(), $customer->getWebsiteId());
     $this->customerRegistryByEmail[$emailKey] = $customer;
     return $this;
 }
 /**
  * Get customer last quote id.
  *
  * @param \Magento\Customer\Model\Customer $customer
  *
  * @return bool|mixed
  */
 public function getCustomerLastQuoteId(\Magento\Customer\Model\Customer $customer)
 {
     $storeIds = $this->storeManager->getWebsite($customer->getWebsiteId())->getStoreIds();
     $collection = $this->quoteCollection->create()->addFieldToFilter('customer_id', $customer->getId())->addFieldToFilter('store_id', ['in' => $storeIds])->setPageSize(1)->setOrder('entity_id');
     if ($collection->getSize()) {
         //@codingStandardsIgnoreStart
         return $collection->getFirstItem();
         //@codingStandardsIgnoreEnd
     } else {
         return false;
     }
 }