diff --git a/CHANGELOG.md b/CHANGELOG.md index aff065c..1564cee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2019-03-06 3.4.5 +* Исправлен баг с добавлением скидки при уменьшении количества товара +* Перенесена инициализация формы настроек после инициализации всех плагинов + ## 2019-02-25 3.4.4 * Добавлена генерация уникального id к externalId отправляемой оплаты @@ -93,4 +97,4 @@ * Выгрузка изменений из RetailCRM осуществляется по sinceId ## 2018-02-02 v2.0.5 -* Исправлен неверный подсчет скидки на товары \ No newline at end of file +* Исправлен неверный подсчет скидки на товары diff --git a/VERSION b/VERSION index 5141b61..4f5e697 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.4.4 \ No newline at end of file +3.4.5 diff --git a/src/include/class-wc-retailcrm-base.php b/src/include/class-wc-retailcrm-base.php index e45c5c3..1c59f8a 100644 --- a/src/include/class-wc-retailcrm-base.php +++ b/src/include/class-wc-retailcrm-base.php @@ -40,12 +40,10 @@ if (!class_exists('WC_Retailcrm_Base')) { $this->apiClient = $this->getApiClient(); } else { $this->apiClient = $retailcrm; + $this->init_settings_fields(); } self::$option_key = $this->get_option_key(); - // Load the settings. - $this->init_form_fields(); - $this->init_settings(); // Actions. add_action('woocommerce_update_options_integration_' . $this->id, array($this, 'process_admin_options')); @@ -68,10 +66,30 @@ if (!class_exists('WC_Retailcrm_Base')) { add_action('wp_print_scripts', array($this, 'initialize_daemon_collector'), 99); add_action('wp_print_footer_scripts', array($this, 'send_analytics'), 99); + if (isset($_GET['page']) && $_GET['page'] == 'wc-settings' + && isset($_GET['tab']) && $_GET['tab'] == 'integration' + ) { + add_action('init', array($this, 'init_settings_fields'), 99); + } + // Deactivate hook add_action('retailcrm_deactivate', array($this, 'deactivate')); } + /** + * Init settings fields + */ + public function init_settings_fields() + { + $this->init_form_fields(); + $this->init_settings(); + } + + /** + * @param $settings + * + * @return array + */ public function api_sanitized($settings) { if (isset($settings['sync']) && $settings['sync'] == 'yes') { diff --git a/src/include/class-wc-retailcrm-history.php b/src/include/class-wc-retailcrm-history.php index fcb0710..21649be 100644 --- a/src/include/class-wc-retailcrm-history.php +++ b/src/include/class-wc-retailcrm-history.php @@ -430,6 +430,7 @@ if ( ! class_exists( 'WC_Retailcrm_History' ) ) : $order_item->set_quantity($item['quantity']); $product = wc_get_product($item['offer']['externalId']); $order_item->set_total($product->get_price() * $item['quantity']); + $order_item->set_subtotal($product->get_price()); $data_store = $order_item->get_data_store(); $data_store->update($order_item); } diff --git a/src/readme.txt b/src/readme.txt index 8ecbc00..d0d88e2 100644 --- a/src/readme.txt +++ b/src/readme.txt @@ -45,6 +45,10 @@ API-ключ должен быть для отдельного магазина 2. В появившихся списках справочников настройте соответствие способов доставки и оплаты, а так же статусов заказов. Отметьте галочку "Выгружать остатки", если хотите выгружать остатки из Retailcrm в магазин (подробнее смотрите в описании). == Changelog == + += 3.4.5 = +* Исправлен баг с добавлением скидки при уменьшении количества товара в retailCRM + = 3.4.4 = * Добавлена генерация уникального id к внешнему id отправляемой оплаты при использовании 5 версии api diff --git a/src/retailcrm.php b/src/retailcrm.php index a37603c..8d69c3e 100644 --- a/src/retailcrm.php +++ b/src/retailcrm.php @@ -1,8 +1,8 @@