oont-contents/plugins/woocommerce-square/includes/Framework/Addresses/Address.php
2025-02-08 15:10:23 +01:00

282 lines
4.6 KiB
PHP

<?php
/**
* WooCommerce Plugin Framework
*
* This source file is subject to the GNU General Public License v3.0
* that is bundled with this package in the file license.txt.
* It is also available through the world-wide-web at this URL:
* http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@skyverge.com so we can send you a copy immediately.
*
* @since 3.0.0
* @author WooCommerce / SkyVerge
* @copyright Copyright (c) 2013-2019, SkyVerge, Inc.
* @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
*
* Modified by WooCommerce on 01 December 2021.
*/
namespace WooCommerce\Square\Framework\Addresses;
defined( 'ABSPATH' ) or exit;
/**
* The base address data class.
*
* This serves as a standard address object to be passed around by plugins whenever dealing with address data, and
* eliminates the need to rely on WooCommerce's address arrays.
*
* @since 3.0.0
*/
class Address {
/** @var string line 1 of the street address */
protected $line_1 = '';
/** @var string line 2 of the street address */
protected $line_2 = '';
/** @var string line 3 of the street address */
protected $line_3 = '';
/** @var string address locality (city) */
protected $locality = '';
/** @var string address region (state) */
protected $region = '';
/** @var string address country */
protected $country = '';
/** @var string address postcode */
protected $postcode = '';
/** Getter methods ************************************************************************************************/
/**
* Gets line 1 of the street address.
*
* @since 3.0.0
*
* @return string
*/
public function get_line_1() {
return $this->line_1;
}
/**
* Gets line 2 of the street address.
*
* @since 3.0.0
*
* @return string
*/
public function get_line_2() {
return $this->line_2;
}
/**
* Gets line 3 of the street address.
*
* @since 3.0.0
*
* @return string
*/
public function get_line_3() {
return $this->line_3;
}
/**
* Gets the locality or city.
*
* @since 3.0.0
*
* @return string
*/
public function get_locality() {
return $this->locality;
}
/**
* Gets the region or state.
*
* @since 3.0.0
*
* @return string
*/
public function get_region() {
return $this->region;
}
/**
* Gets the country.
*
* @since 3.0.0
*
* @return string
*/
public function get_country() {
return $this->country;
}
/**
* Gets the postcode.
*
* @since 3.0.0
*
* @return string
*/
public function get_postcode() {
return $this->postcode;
}
/**
* Gets the hash representation of this address.
*
* @see Address::get_hash_data()
*
* @since 3.0.0
*
* @return string
*/
public function get_hash() {
return md5( wp_json_encode( $this->get_hash_data() ) );
}
/**
* Gets the data used to generate a hash for the address.
*
* @since 3.0.0
*
* @return string[]
*/
protected function get_hash_data() {
return array(
$this->get_line_1(),
$this->get_line_2(),
$this->get_line_3(),
$this->get_locality(),
$this->get_region(),
$this->get_country(),
$this->get_postcode(),
);
}
/** Setter methods ************************************************************************************************/
/**
* Sets line 1 of the street address.
*
* @since 3.0.0
*
* @param string $value line 1 value
*/
public function set_line_1( $value ) {
$this->line_1 = $value;
}
/**
* Sets line 2 of the street address.
*
* @since 3.0.0
*
* @param string $value line 2 value
*/
public function set_line_2( $value ) {
$this->line_2 = $value;
}
/**
* Gets line 3 of the street address.
*
* @since 3.0.0
*
* @param string $value line 3 value
*/
public function set_line_3( $value ) {
$this->line_3 = $value;
}
/**
* Gets the locality or city.
*
* @since 3.0.0
*
* @param string $value locality value
*/
public function set_locality( $value ) {
$this->locality = $value;
}
/**
* Gets the region or state.
*
* @since 3.0.0
*
* @param string $value region value
*/
public function set_region( $value ) {
$this->region = $value;
}
/**
* Sets the country.
*
* @since 3.0.0
*
* @param string $value country value
*/
public function set_country( $value ) {
$this->country = $value;
}
/**
* Sets the postcode.
*
* @since 3.0.0
*
* @param string $value postcode value
*/
public function set_postcode( $value ) {
$this->postcode = $value;
}
}