PluginProbe ʕ •ᴥ•ʔ
WooCommerce Square / 3.8.1
WooCommerce Square v3.8.1
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
149 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) 2021-2022, WooCommerce.
16 * @copyright Copyright (c) 2013-2019, SkyVerge, Inc.
17 * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
18 *
19 * Modified by WooCommerce on 01 December 2021.
20 */
21
22 namespace WooCommerce\Square\Framework\Addresses;
23 use WooCommerce\Square\Framework\Compatibility\Order_Compatibility;
24
25 defined( 'ABSPATH' ) or exit;
26
27 /**
28 * The customer address data class.
29 *
30 * Adds customer-specific data to a base address, as used for a billing or shipping address that can include first
31 * and last name.
32 *
33 * @see Address
34 *
35 * @since 3.0.0
36 */
37 class Customer_Address extends Address {
38
39
40 /** @var string customer first name */
41 protected $first_name = '';
42
43 /** @var string customer last name */
44 protected $last_name = '';
45
46
47 /** Getter Methods ************************************************************************************************/
48
49
50 /**
51 * Gets the customer first name.
52 *
53 * @since 3.0.0
54 *
55 * @return string
56 */
57 public function get_first_name() {
58
59 return $this->first_name;
60 }
61
62
63 /**
64 * Gets the customer first name.
65 *
66 * @since 3.0.0
67 *
68 * @return string
69 */
70 public function get_last_name() {
71
72 return $this->last_name;
73 }
74
75
76 /**
77 * Gets the data used to generate a hash for the address.
78 *
79 * @see Address::get_hash_data()
80 *
81 * @since 3.0.0
82 *
83 * @return string[]
84 */
85 protected function get_hash_data() {
86
87 // add the first & last name to data used to generate the hash
88 $data = array_merge(
89 array(
90 $this->get_first_name(),
91 $this->get_last_name(),
92 ),
93 parent::get_hash_data()
94 );
95
96 return $data;
97 }
98
99
100 /** Setter Methods ************************************************************************************************/
101
102
103 /**
104 * Sets the customer first name.
105 *
106 * @since 3.0.0
107 *
108 * @param string $value first name value
109 */
110 public function set_first_name( $value ) {
111
112 $this->first_name = $value;
113 }
114
115
116 /**
117 * Sets the customer last name.
118 *
119 * @since 3.0.0
120 *
121 * @param string $value first name value
122 */
123 public function set_last_name( $value ) {
124
125 $this->last_name = $value;
126 }
127
128
129 /**
130 * Sets the full address based on a WooCommerce order.
131 *
132 * @since 3.0.0
133 *
134 * @param \WC_Order $order WooCommerce order object
135 * @param string $type address type, like billing or shipping
136 */
137 public function set_from_order( \WC_Order $order, $type = 'billing' ) {
138
139 $this->set_first_name( Order_Compatibility::get_prop( $order, "{$type}_first_name" ) );
140 $this->set_last_name( Order_Compatibility::get_prop( $order, "{$type}_last_name" ) );
141 $this->set_line_1( Order_Compatibility::get_prop( $order, "{$type}_address_1" ) );
142 $this->set_line_2( Order_Compatibility::get_prop( $order, "{$type}_address_2" ) );
143 $this->set_locality( Order_Compatibility::get_prop( $order, "{$type}_city" ) );
144 $this->set_region( Order_Compatibility::get_prop( $order, "{$type}_state" ) );
145 $this->set_country( Order_Compatibility::get_prop( $order, "{$type}_country" ) );
146 $this->set_postcode( Order_Compatibility::get_prop( $order, "{$type}_postcode" ) );
147 }
148 }
149