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 / Gateway / API / Requests / Customers.php
woocommerce-square / includes / Gateway / API / Requests Last commit date
Card.php 11 months ago Customers.php 3 years ago Gift_Card.php 2 years ago Gift_Card_Activities.php 2 years ago Orders.php 4 months ago Payments.php 11 months ago Refunds.php 3 years ago Transactions.php 11 months ago
Customers.php
117 lines
1 <?php
2 /**
3 * WooCommerce Square
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@woocommerce.com so we can send you a copy immediately.
12 *
13 * DISCLAIMER
14 *
15 * Do not edit or add to this file if you wish to upgrade WooCommerce Square to newer
16 * versions in the future. If you wish to customize WooCommerce Square for your
17 * needs please refer to https://docs.woocommerce.com/document/woocommerce-square/
18 *
19 * @author WooCommerce
20 * @copyright Copyright: (c) 2019, Automattic, Inc.
21 * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
22 */
23
24 namespace WooCommerce\Square\Gateway\API\Requests;
25
26 use WooCommerce\Square\API;
27
28 defined( 'ABSPATH' ) || exit;
29
30 /**
31 * The customers API request class.
32 *
33 * @since 2.0.0
34 */
35 class Customers extends API\Requests\Customers {
36
37
38 /**
39 * Sets the data for creating a new customer.
40 *
41 * @since 2.0.0
42 *
43 * @param \WC_Order $order order object
44 */
45 public function set_create_customer_data( \WC_Order $order ) {
46
47 $this->square_api_method = 'createCustomer';
48
49 // set the customer email as the WP user email, if available
50 try {
51
52 if ( ! $order->get_user_id() ) {
53 throw new \Exception( 'No user account' );
54 }
55
56 $customer = new \WC_Customer( $order->get_user_id() );
57
58 $email = $customer->get_email();
59
60 } catch ( \Exception $exception ) { // otherwise, use the order billing email
61
62 $email = $order->get_billing_email();
63 }
64
65 $customer_request = new \Square\Models\CreateCustomerRequest();
66 $customer_request->setGivenName( $order->get_billing_first_name() );
67 $customer_request->setFamilyName( $order->get_billing_last_name() );
68 $customer_request->setCompanyName( $order->get_billing_company() );
69 $customer_request->setEmailAddress( $email );
70 $customer_request->setPhoneNumber( $order->get_billing_phone() );
71
72 if ( $order->get_user_id() ) {
73 $customer_request->setReferenceId( (string) $order->get_user_id() );
74 }
75
76 $customer_request->setAddress( self::get_address_from_order( $order ) );
77
78 $this->square_request = $customer_request;
79
80 $this->square_api_args = array(
81 $this->square_request,
82 );
83 }
84
85 /**
86 * Gets a billing address model from a WC order.
87 *
88 * @since 2.0.0
89 *
90 * @param \WC_Order $order order object
91 * @return \Square\Models\Address
92 */
93 public static function get_address_from_order( \WC_Order $order ) {
94
95 $address = new \Square\Models\Address();
96 $address->setFirstName( $order->get_billing_first_name() );
97 $address->setLastName( $order->get_billing_last_name() );
98 $address->setAddressLine1( $order->get_billing_address_1() );
99 $address->setAddressLine2( $order->get_billing_address_2() );
100 $address->setLocality( $order->get_billing_city() );
101 $address->setAdministrativeDistrictLevel1( $order->get_billing_state() );
102 if ( ! empty( $order->payment->postcode ) ) {
103 $address->setPostalCode( $order->payment->postcode );
104 } else {
105 $address->setPostalCode( $order->get_billing_postcode() );
106 }
107
108 if ( $order->get_billing_country() ) {
109 $address->setCountry( $order->get_billing_country() );
110 }
111
112 return $address;
113 }
114
115
116 }
117