From c92345b630211263ade1235de5ef027d2f6a7973 Mon Sep 17 00:00:00 2001 From: Akolzin Dmitry Date: Wed, 5 Sep 2018 11:36:33 +0300 Subject: [PATCH] v3.3.4 --- CHANGELOG.md | 3 +++ VERSION | 2 +- src/include/class-wc-retailcrm-history.php | 30 +++++++++++++++------- src/readme.txt | 6 +++++ src/retailcrm.php | 2 +- src/uninstall.php | 2 +- 6 files changed, 33 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2dfba6..20623aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 2018-08-30 v3.3.4 +* Исправлен баг с занулением количества товара в заказе WC + ## 2018-08-30 v3.3.3 * Добавлены кнопки для перехода в настройки плагина и для генерации каталога в админ-панели wordpress * Добавлена передача статуса оплаты на v5 diff --git a/VERSION b/VERSION index 3f09e91..2c6109e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.3.3 \ No newline at end of file +3.3.4 \ No newline at end of file diff --git a/src/include/class-wc-retailcrm-history.php b/src/include/class-wc-retailcrm-history.php index c2f33e9..164fe13 100644 --- a/src/include/class-wc-retailcrm-history.php +++ b/src/include/class-wc-retailcrm-history.php @@ -330,15 +330,7 @@ if ( ! class_exists( 'WC_Retailcrm_History' ) ) : } if ($offer_id == $item['offer']['externalId']) { - if (isset($item['delete']) && $item['delete'] == true) { - wc_delete_order_item($order_item_id); - } else { - $order_item->set_quantity($item['quantity']); - $product = wc_get_product($item['offer']['externalId']); - $order_item->set_total($product->get_price() * $item['quantity']); - $data_store = $order_item->get_data_store(); - $data_store->update($order_item); - } + $this->deleteOrUpdateOrderItem($item, $order_item, $order_item_id); } } } @@ -414,6 +406,26 @@ if ( ! class_exists( 'WC_Retailcrm_History' ) ) : return $wc_order->get_id(); } + /** + * @param $item + * @param $order_item + * @param $order_item_id + */ + private function deleteOrUpdateOrderItem($item, $order_item, $order_item_id) + { + if (isset($item['delete']) && $item['delete'] == true) { + wc_delete_order_item($order_item_id); + } else { + if (isset($item['quantity']) && $item['quantity']) { + $order_item->set_quantity($item['quantity']); + $product = wc_get_product($item['offer']['externalId']); + $order_item->set_total($product->get_price() * $item['quantity']); + $data_store = $order_item->get_data_store(); + $data_store->update($order_item); + } + } + } + /** * Create order in WC * diff --git a/src/readme.txt b/src/readme.txt index 3e87bff..8e96f95 100644 --- a/src/readme.txt +++ b/src/readme.txt @@ -45,6 +45,9 @@ API-ключ должен быть для отдельного магазина 2. В появившихся списках справочников настройте соответствие способов доставки и оплаты, а так же статусов заказов. Отметьте галочку "Выгружать остатки", если хотите выгружать остатки из Retailcrm в магазин (подробнее смотрите в описании). == Changelog == += 3.3.4 = +* Улучшена обработка истории заказов + = 3.3.3 = * Добавлены кнопки для перехода в настройки плагина и для генерации каталога в админ-панели wordpress * Улучшена механика передачи данных оплаты заказа @@ -145,6 +148,9 @@ API-ключ должен быть для отдельного магазина == Upgrade Notice == += 3.3.4 = +Улучшена обработка истории заказов + = 3.3.3 = Добавлены кнопки для перехода в настройки плагина и для генерации каталога в админ-панели wordpress Улучшена механика передачи данных оплаты заказа diff --git a/src/retailcrm.php b/src/retailcrm.php index 3be2453..e8e4e6c 100644 --- a/src/retailcrm.php +++ b/src/retailcrm.php @@ -1,6 +1,6 @@