From e9e2d52c3130495d9fbc90d1a1b5fb7c67990ccd Mon Sep 17 00:00:00 2001
From: Dima Uryvskiy <dima-uryvskiyy@rambler.ru>
Date: Wed, 18 Aug 2021 12:17:06 +0300
Subject: [PATCH] Skip inactive statuses

---
 .../class-wc-retailcrm-abstracts-settings.php | 12 +++++++++++
 tests/test-wc-retailcrm-base.php              | 20 ++++++++++++-------
 2 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/src/include/abstracts/class-wc-retailcrm-abstracts-settings.php b/src/include/abstracts/class-wc-retailcrm-abstracts-settings.php
index d551ffe..81ba5d2 100644
--- a/src/include/abstracts/class-wc-retailcrm-abstracts-settings.php
+++ b/src/include/abstracts/class-wc-retailcrm-abstracts-settings.php
@@ -200,6 +200,10 @@ abstract class WC_Retailcrm_Abstracts_Settings extends WC_Integration
 
                 if (!empty($retailcrm_shipping_list) && $retailcrm_shipping_list->isSuccessful()) {
                     foreach ($retailcrm_shipping_list['deliveryTypes'] as $retailcrm_shipping_type) {
+                        if ($retailcrm_shipping_type['active'] == false) {
+                            continue;
+                        }
+
                         $shipping_option_list[$retailcrm_shipping_type['code']] = $retailcrm_shipping_type['name'];
                     }
 
@@ -235,6 +239,10 @@ abstract class WC_Retailcrm_Abstracts_Settings extends WC_Integration
 
                 if (!empty($retailcrm_payment_list) && $retailcrm_payment_list->isSuccessful()) {
                     foreach ($retailcrm_payment_list['paymentTypes'] as $retailcrm_payment_type) {
+                        if ($retailcrm_payment_type['active'] == false) {
+                            continue;
+                        }
+
                         $payment_option_list[$retailcrm_payment_type['code']] = $retailcrm_payment_type['name'];
                     }
 
@@ -268,6 +276,10 @@ abstract class WC_Retailcrm_Abstracts_Settings extends WC_Integration
 
                 if (!empty($retailcrm_statuses_list) && $retailcrm_statuses_list->isSuccessful()) {
                     foreach ($retailcrm_statuses_list['statuses'] as $retailcrm_status) {
+                        if ($retailcrm_status['active'] == false) {
+                            continue;
+                        }
+
                         $statuses_option_list[$retailcrm_status['code']] = $retailcrm_status['name'];
                     }
 
diff --git a/tests/test-wc-retailcrm-base.php b/tests/test-wc-retailcrm-base.php
index 27d72a9..ab02383 100644
--- a/tests/test-wc-retailcrm-base.php
+++ b/tests/test-wc-retailcrm-base.php
@@ -79,7 +79,7 @@ class WC_Retailcrm_Base_Test extends WC_Retailcrm_Test_Case_Helper
                 array(
                     'name' => 'orderMethod2',
                     'code' => 'orderMethod2',
-                    'active' => true
+                    'active' => false
                 )
             )
         );
@@ -92,11 +92,13 @@ class WC_Retailcrm_Base_Test extends WC_Retailcrm_Test_Case_Helper
             'deliveryTypes' => array(
                 array(
                     'name' => 'delivery1',
-                    'code' => 'delivery1'
+                    'code' => 'delivery1',
+                    'active' => true
                 ),
                 array(
                     'name' => 'delivery2',
-                    'code' => 'delivery2'
+                    'code' => 'delivery2',
+                    'active' => true
                 )
             )
         );
@@ -109,11 +111,13 @@ class WC_Retailcrm_Base_Test extends WC_Retailcrm_Test_Case_Helper
             'paymentTypes' => array(
                 array(
                     'name' => 'payment1',
-                    'code' => 'payment1'
+                    'code' => 'payment1',
+                    'active' => true
                 ),
                 array(
                     'name' => 'payment2',
-                    'code' => 'payment2'
+                    'code' => 'payment2',
+                    'active' => true
                 )
             )
         );
@@ -126,11 +130,13 @@ class WC_Retailcrm_Base_Test extends WC_Retailcrm_Test_Case_Helper
             'statuses' => array(
                 array(
                     'name' => 'status1',
-                    'code' => 'status1'
+                    'code' => 'status1',
+                    'active' => true
                 ),
                 array(
                     'name' => 'status2',
-                    'code' => 'status2'
+                    'code' => 'status2',
+                    'active' => true
                 )
             )
         );