From d9c31e88717c5be345c0c9b0e4569be15945f805 Mon Sep 17 00:00:00 2001 From: Dima Uryvskiy Date: Tue, 22 Dec 2020 11:58:35 +0300 Subject: [PATCH] Add validate method for address --- .../class-wc-retailcrm-abstracts-address.php | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/include/abstracts/class-wc-retailcrm-abstracts-address.php b/src/include/abstracts/class-wc-retailcrm-abstracts-address.php index a2a7b0f..b1c1b72 100644 --- a/src/include/abstracts/class-wc-retailcrm-abstracts-address.php +++ b/src/include/abstracts/class-wc-retailcrm-abstracts-address.php @@ -81,6 +81,27 @@ abstract class WC_Retailcrm_Abstracts_Address extends WC_Retailcrm_Abstracts_Dat return $this; } + /** + * Validate address + * + * @param array $address + * + * @return bool + */ + public function validateAddress($address) + { + if (empty($address['country']) || + empty($address['state']) || + empty($address['postcode']) || + empty($address['city']) || + empty($address['address_1']) + ) { + return false; + } + + return true; + } + /** * Returns address from order. Respects fallback_to_billing parameter. * @@ -91,7 +112,7 @@ abstract class WC_Retailcrm_Abstracts_Address extends WC_Retailcrm_Abstracts_Dat protected function getOrderAddress($order) { $orderAddress = $order->get_address($this->address_type); - $checkEmptyArray = array_filter($orderAddress); + $checkEmptyArray = $this->validateAddress($orderAddress) ? array_filter($orderAddress) : array(); if (empty($checkEmptyArray) && $this->address_type === self::ADDRESS_TYPE_BILLING && $this->fallback_to_shipping) { $orderAddress = $order->get_address(self::ADDRESS_TYPE_SHIPPING);