You are here

trait AddressTrait in Ubercart 8.4

Defines a trait implementing \Drupal\uc_store\AddressInterface.

Hierarchy

File

uc_store/src/AddressTrait.php, line 8

Namespace

Drupal\uc_store
View source
trait AddressTrait {

  /**
   * The unique address identifier.
   *
   * @var string
   */
  protected $id;

  /**
   * The human-readable nickname of the location.
   *
   * @var string
   */
  protected $label;

  /**
   * Given name.
   *
   * @var string
   */
  public $first_name = '';

  /**
   * Surname.
   *
   * @var string
   */
  public $last_name = '';

  /**
   * Company or organization.
   *
   * @var string
   */
  public $company = '';

  /**
   * First line of street address.
   *
   * @var string
   */
  public $street1 = '';

  /**
   * Second line of street address.
   *
   * @var string
   */
  public $street2 = '';

  /**
   * City name.
   *
   * @var string
   */
  public $city = '';

  /**
   * State, provence, or region id.
   *
   * @var string
   */
  public $zone = '';

  /**
   * Postal code.
   *
   * @var string
   */
  public $postal_code = '';

  /**
   * ISO 3166-1 2-character numeric country code.
   *
   * @var string
   */
  public $country = '';

  /**
   * Telephone number.
   *
   * @var string
   */
  public $phone = '';

  /**
   * Email address.
   *
   * @var string
   */
  public $email = '';

  /**
   * {@inheritdoc}
   */
  public function setId($id) {
    $this->id = $id;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function setLabel($label) {
    $this->label = $label;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getFirstName() {
    return $this->first_name;
  }

  /**
   * {@inheritdoc}
   */
  public function setFirstName($first_name) {
    $this->first_name = $first_name;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getLastName() {
    return $this->last_name;
  }

  /**
   * {@inheritdoc}
   */
  public function setLastName($last_name) {
    $this->last_name = $last_name;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getCompany() {
    return $this->company;
  }

  /**
   * {@inheritdoc}
   */
  public function setCompany($company) {
    $this->company = $company;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getStreet1() {
    return $this->street1;
  }

  /**
   * {@inheritdoc}
   */
  public function setStreet1($street1) {
    $this->street1 = $street1;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getStreet2() {
    return $this->street2;
  }

  /**
   * {@inheritdoc}
   */
  public function setStreet2($street2) {
    $this->street2 = $street2;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getCity() {
    return $this->city;
  }

  /**
   * {@inheritdoc}
   */
  public function setCity($city) {
    $this->city = $city;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getZone() {
    return $this->zone;
  }

  /**
   * {@inheritdoc}
   */
  public function setZone($zone) {
    $this->zone = $zone;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getPostalCode() {
    return $this->postal_code;
  }

  /**
   * {@inheritdoc}
   */
  public function setPostalCode($postal_code) {
    $this->postal_code = $postal_code;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getCountry() {
    return $this->country;
  }

  /**
   * {@inheritdoc}
   */
  public function setCountry($country) {
    $this->country = $country;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getPhone() {
    return $this->phone;
  }

  /**
   * {@inheritdoc}
   */
  public function setPhone($phone) {
    $this->phone = $phone;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function getEmail() {
    return $this->email;
  }

  /**
   * {@inheritdoc}
   */
  public function setEmail($email) {
    $this->email = $email;
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function isSamePhysicalLocation(AddressInterface $address) {
    $physicalProperty = [
      'street1',
      'street2',
      'city',
      'zone',
      'country',
      'postal_code',
    ];
    foreach ($physicalProperty as $property) {

      // Canonicalize properties before comparing.
      if (Address::makeCanonical($this->{$property}) != Address::makeCanonical($address->{$property})) {
        return FALSE;
      }
    }
    return TRUE;
  }

  /**
   * {@inheritdoc}
   */
  public static function makeCanonical($string = '') {

    // Remove all whitespace.
    $string = preg_replace('/\\s+/', '', $string);

    // Make all characters upper case.
    $string = mb_strtoupper($string);
    return $string;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AddressTrait::$city public property City name.
AddressTrait::$company public property Company or organization.
AddressTrait::$country public property ISO 3166-1 2-character numeric country code.
AddressTrait::$email public property Email address.
AddressTrait::$first_name public property Given name.
AddressTrait::$id protected property The unique address identifier.
AddressTrait::$label protected property The human-readable nickname of the location.
AddressTrait::$last_name public property Surname.
AddressTrait::$phone public property Telephone number.
AddressTrait::$postal_code public property Postal code.
AddressTrait::$street1 public property First line of street address.
AddressTrait::$street2 public property Second line of street address.
AddressTrait::$zone public property State, provence, or region id.
AddressTrait::getCity public function
AddressTrait::getCompany public function
AddressTrait::getCountry public function
AddressTrait::getEmail public function
AddressTrait::getFirstName public function
AddressTrait::getLastName public function
AddressTrait::getPhone public function
AddressTrait::getPostalCode public function
AddressTrait::getStreet1 public function
AddressTrait::getStreet2 public function
AddressTrait::getZone public function
AddressTrait::isSamePhysicalLocation public function
AddressTrait::makeCanonical public static function
AddressTrait::setCity public function
AddressTrait::setCompany public function
AddressTrait::setCountry public function
AddressTrait::setEmail public function
AddressTrait::setFirstName public function
AddressTrait::setId public function
AddressTrait::setLabel public function
AddressTrait::setLastName public function
AddressTrait::setPhone public function
AddressTrait::setPostalCode public function
AddressTrait::setStreet1 public function
AddressTrait::setStreet2 public function
AddressTrait::setZone public function