PluginProbe ʕ •ᴥ•ʔ
WooCommerce Square / 5.4.2
WooCommerce Square v5.4.2
5.4.2 5.4.1 5.4.0 trunk 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.6.0 2.7.0 2.8.0 2.9.0 2.9.1 3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.2.0 3.3.0 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.7.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 4.0.0 4.1.0 4.2.0 4.2.1 4.2.2 4.2.3 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.4.2 4.5.0 4.5.1 4.5.2 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.9.0 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.6 4.9.7 4.9.8 4.9.9 5.0.0 5.0.1 5.1.0 5.1.1 5.1.2 5.2.0 5.3.0 5.3.1 5.3.2 5.3.3
woocommerce-square / includes / Framework / Addresses / Customer_Address.php
woocommerce-square / includes / Framework / Addresses Last commit date
Address.php 3 years ago Customer_Address.php 3 years ago
Customer_Address.php
148 lines
1 <?php
2 /**
3 * WooCommerce Plugin Framework
4 *
5 * This source file is subject to the GNU General Public License v3.0
6 * that is bundled with this package in the file license.txt.
7 * It is also available through the world-wide-web at this URL:
8 * http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
9 * If you did not receive a copy of the license and are unable to
10 * obtain it through the world-wide-web, please send an email
11 * to license@skyverge.com so we can send you a copy immediately.
12 *
13 * @since 3.0.0
14 * @author WooCommerce / SkyVerge
15 * @copyright Copyright (c) 2013-2019, SkyVerge, Inc.
16 * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
17 *
18 * Modified by WooCommerce on 01 December 2021.
19 */
20
21 namespace WooCommerce\Square\Framework\Addresses;
22 use WooCommerce\Square\Framework\Compatibility\Order_Compatibility;
23
24 defined( 'ABSPATH' ) or exit;
25
26 /**
27 * The customer address data class.
28 *
29 * Adds customer-specific data to a base address, as used for a billing or shipping address that can include first
30 * and last name.
31 *
32 * @see Address
33 *
34 * @since 3.0.0
35 */
36 class Customer_Address extends Address {
37
38
39 /** @var string customer first name */
40 protected $first_name = '';
41
42 /** @var string customer last name */
43 protected $last_name = '';
44
45
46 /** Getter Methods ************************************************************************************************/
47
48
49 /**
50 * Gets the customer first name.
51 *
52 * @since 3.0.0
53 *
54 * @return string
55 */
56 public function get_first_name() {
57
58 return $this->first_name;
59 }
60
61
62 /**
63 * Gets the customer first name.
64 *
65 * @since 3.0.0
66 *
67 * @return string
68 */
69 public function get_last_name() {
70
71 return $this->last_name;
72 }
73
74
75 /**
76 * Gets the data used to generate a hash for the address.
77 *
78 * @see Address::get_hash_data()
79 *
80 * @since 3.0.0
81 *
82 * @return string[]
83 */
84 protected function get_hash_data() {
85
86 // add the first & last name to data used to generate the hash
87 $data = array_merge(
88 array(
89 $this->get_first_name(),
90 $this->get_last_name(),
91 ),
92 parent::get_hash_data()
93 );
94
95 return $data;
96 }
97
98
99 /** Setter Methods ************************************************************************************************/
100
101
102 /**
103 * Sets the customer first name.
104 *
105 * @since 3.0.0
106 *
107 * @param string $value first name value
108 */
109 public function set_first_name( $value ) {
110
111 $this->first_name = $value;
112 }
113
114
115 /**
116 * Sets the customer last name.
117 *
118 * @since 3.0.0
119 *
120 * @param string $value first name value
121 */
122 public function set_last_name( $value ) {
123
124 $this->last_name = $value;
125 }
126
127
128 /**
129 * Sets the full address based on a WooCommerce order.
130 *
131 * @since 3.0.0
132 *
133 * @param \WC_Order $order WooCommerce order object
134 * @param string $type address type, like billing or shipping
135 */
136 public function set_from_order( \WC_Order $order, $type = 'billing' ) {
137
138 $this->set_first_name( Order_Compatibility::get_prop( $order, "{$type}_first_name" ) );
139 $this->set_last_name( Order_Compatibility::get_prop( $order, "{$type}_last_name" ) );
140 $this->set_line_1( Order_Compatibility::get_prop( $order, "{$type}_address_1" ) );
141 $this->set_line_2( Order_Compatibility::get_prop( $order, "{$type}_address_2" ) );
142 $this->set_locality( Order_Compatibility::get_prop( $order, "{$type}_city" ) );
143 $this->set_region( Order_Compatibility::get_prop( $order, "{$type}_state" ) );
144 $this->set_country( Order_Compatibility::get_prop( $order, "{$type}_country" ) );
145 $this->set_postcode( Order_Compatibility::get_prop( $order, "{$type}_postcode" ) );
146 }
147 }
148