public function testCompareDifferentAddresses() { $addressA = new Address(); $addressA->setFirstName('Sam')->setLastName('Pratt')->setAddress1('Address1')->setAddress2('Address2')->setCity('London')->setCompanyName('Expressly')->setZip('W2 6LG')->setPhonePosition(0)->setAlias('shipping')->setStateProvince('England')->setCountry('GBR'); $addressB = new Address(); $addressB->setFirstName('Bob')->setLastName('TheBuilder')->setCompanyName('Builder Inc'); $this->assertFalse(Address::compare($addressA, $addressB)); }
private function retrieveUserByEmail($emailAddr) { try { $user = get_user_by('email', $emailAddr); if ($user) { $customer = new Customer(); $customer->setFirstName($user->first_name)->setLastName($user->last_name); $email = new Email(); $email->setEmail($emailAddr)->setAlias('primary'); $customer->addEmail($email); $user_id =& $user->ID; $countryCodeProvider = $this->app['country_code.provider']; $createAddress = function ($prefix) use($user_id, $countryCodeProvider, $customer) { $address = new Address(); $address->setFirstName(get_user_meta($user_id, $prefix . '_first_name', true))->setLastName(get_user_meta($user_id, $prefix . '_last_name', true))->setAddress1(get_user_meta($user_id, $prefix . '_address_1', true))->setAddress2(get_user_meta($user_id, $prefix . '_address_2', true))->setCity(get_user_meta($user_id, $prefix . '_city', true))->setZip(get_user_meta($user_id, $prefix . '_postcode', true)); $iso3 = $countryCodeProvider->getIso3(get_user_meta($user_id, $prefix . '_country', true)); $address->setCountry($iso3); $address->setStateProvince(get_user_meta($user_id, $prefix . '_state', true)); $phoneNumber = get_user_meta($user_id, $prefix . '_phone', true); if (!empty($phoneNumber)) { $phone = new Phone(); $phone->setType(Phone::PHONE_TYPE_HOME)->setNumber((string) $phoneNumber); $customer->addPhone($phone); $address->setPhonePosition((int) $customer->getPhoneIndex($phone)); } return $address; }; $billingAddress = $createAddress('billing'); $shippingAddress = $createAddress('shipping'); if (Address::compare($billingAddress, $shippingAddress)) { $customer->addAddress($billingAddress, true, Address::ADDRESS_BOTH); } else { $customer->addAddress($billingAddress, true, Address::ADDRESS_BILLING); $customer->addAddress($shippingAddress, true, Address::ADDRESS_SHIPPING); } $merchant = $this->app['merchant.provider']->getMerchant(); $response = new CustomerMigratePresenter($merchant, $customer, $emailAddr, $user->ID); wp_send_json($response->toArray()); } } catch (\Exception $e) { $this->app['logger']->error(ExceptionFormatter::format($e)); wp_send_json(array()); } }