diff --git a/src/include/abstracts/class-wc-retailcrm-abstracts-address.php b/src/include/abstracts/class-wc-retailcrm-abstracts-address.php index b27cdc8..f951aec 100644 --- a/src/include/abstracts/class-wc-retailcrm-abstracts-address.php +++ b/src/include/abstracts/class-wc-retailcrm-abstracts-address.php @@ -27,4 +27,26 @@ abstract class WC_Retailcrm_Abstracts_Address extends WC_Retailcrm_Abstracts_Dat 'text' => '', ); } + + /** + * Returns state name by it's code + * + * @param string $countryCode + * @param string $stateCode + * + * @return string + */ + protected function get_state_name($countryCode, $stateCode) + { + if (preg_match('/^[A-Z\-0-9]{0,5}$/', $stateCode) && !is_null($countryCode)) { + $countriesProvider = new WC_Countries(); + $states = $countriesProvider->get_states($countryCode); + + if (!empty($states) && array_key_exists($stateCode, $states)) { + return (string) $states[$stateCode]; + } + } + + return $stateCode; + } } diff --git a/src/include/class-wc-retailcrm-history.php b/src/include/class-wc-retailcrm-history.php index 900329c..3ad26b3 100644 --- a/src/include/class-wc-retailcrm-history.php +++ b/src/include/class-wc-retailcrm-history.php @@ -628,7 +628,8 @@ if ( ! class_exists( 'WC_Retailcrm_History' ) ) : } if (!empty($arItemsOld)) { - $result = end(array_diff($arItemsNew, $arItemsOld)); + $diff = array_diff($arItemsNew, $arItemsOld); + $result = end($diff); } else { $result = end($arItemsNew); } diff --git a/src/include/customer/class-wc-retailcrm-customer-address.php b/src/include/customer/class-wc-retailcrm-customer-address.php index 621fc72..198f170 100644 --- a/src/include/customer/class-wc-retailcrm-customer-address.php +++ b/src/include/customer/class-wc-retailcrm-customer-address.php @@ -26,7 +26,7 @@ class WC_Retailcrm_Customer_Address extends WC_Retailcrm_Abstracts_Address $data = array( 'index' => $customer->get_billing_postcode(), 'countryIso' => $customer->get_billing_country(), - 'region' => $customer->get_billing_state(), + 'region' => $this->get_state_name($customer->get_billing_country(), $customer->get_billing_state()), 'city' => $customer->get_billing_city(), 'text' => $customer->get_billing_address_1() . ', ' . $customer->get_billing_address_2() ); diff --git a/src/include/order/class-wc-retailcrm-order-address.php b/src/include/order/class-wc-retailcrm-order-address.php index 308d70f..82522d3 100644 --- a/src/include/order/class-wc-retailcrm-order-address.php +++ b/src/include/order/class-wc-retailcrm-order-address.php @@ -26,7 +26,7 @@ class WC_Retailcrm_Order_Address extends WC_Retailcrm_Abstracts_Address $data = array( 'index' => $address['postcode'], 'city' => $address['city'], - 'region' => $address['state'] + 'region' => $this->get_state_name($address['country'], $address['state']) ); $this->set_data_fields($data);