diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..10d458ee --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,7 @@ +## 2018-02-19 v.2.0.6 +* Исправлено возникновение Warning на PHP 7.2 при генерации каталога товаров +* Добавлена настройка выгрузки заказов из RetailCRM с определенными способами оформления +* Выгрузка изменений из RetailCRM осуществляется по sinceId + +## 2018-02-02 v.2.0.5 +* Исправлен неверный подсчет скидки на товары \ No newline at end of file diff --git a/woo-retailcrm/include/class-wc-retailcrm-base.php b/woo-retailcrm/include/class-wc-retailcrm-base.php index d43a1dd1..95b00f38 100644 --- a/woo-retailcrm/include/class-wc-retailcrm-base.php +++ b/woo-retailcrm/include/class-wc-retailcrm-base.php @@ -103,12 +103,47 @@ public function init_form_fields() { if ($this->get_option( 'api_url' ) != '' && $this->get_option( 'api_key' ) != '') { if (isset($_GET['page']) && $_GET['page'] == 'wc-settings' && isset($_GET['tab']) && $_GET['tab'] == 'integration') { + add_action('admin_print_footer_scripts', array($this, 'show_blocks'), 99); + $retailcrm = new WC_Retailcrm_Proxy( $this->get_option( 'api_url' ), $this->get_option( 'api_key' ), $this->get_option( 'api_version') ); + /** + * Order methods options + */ + $order_methods_option = array(); + $order_methods_list = $retailcrm->orderMethodsList(); + + if ($order_methods_list->isSuccessful()) { + foreach ($order_methods_list['orderMethods'] as $order_method) { + if ($order_method['active'] == false) { + continue; + } + + $order_methods_option[$order_method['code']] = $order_method['name']; + } + + $this->form_fields[] = array( + 'title' => __( 'Способы оформления заказа', 'woocommerce' ), + 'type' => 'heading', + 'description' => '', + 'id' => 'order_methods_options' + ); + + $this->form_fields['order_methods'] = array( + 'label' => __( ' ', 'textdomain' ), + 'title' => 'Способы оформления заказа, доступные для выгрузки из RetailCRM', + 'class' => '', + 'type' => 'multiselect', + 'description' => 'Выберите способы оформления для заказов, которые будут выгружаться из RetailCRM на сайт', + 'options' => $order_methods_option, + 'select_buttons' => true + ); + } + /** * Shipping options */ @@ -124,7 +159,7 @@ public function init_form_fields() { $this->form_fields[] = array( 'title' => __( 'Способы доставки', 'woocommerce' ), - 'type' => 'title', + 'type' => 'heading', 'description' => '', 'id' => 'shipping_options' ); @@ -159,7 +194,7 @@ public function init_form_fields() { $this->form_fields[] = array( 'title' => __( 'Способы оплаты', 'woocommerce' ), - 'type' => 'title', + 'type' => 'heading', 'description' => '', 'id' => 'payment_options' ); @@ -196,7 +231,7 @@ public function init_form_fields() { $this->form_fields[] = array( 'title' => __( 'Статусы', 'woocommerce' ), - 'type' => 'title', + 'type' => 'heading', 'description' => '', 'id' => 'statuses_options' ); @@ -219,7 +254,7 @@ public function init_form_fields() { */ $this->form_fields[] = array( 'title' => __( 'Настройки выгрузки остатков', 'woocommerce' ), - 'type' => 'title', + 'type' => 'heading', 'description' => '', 'id' => 'invent_options' ); @@ -240,7 +275,7 @@ public function init_form_fields() { if (!isset($options['uploads'])) { $this->form_fields[] = array( 'title' => __( 'Выгрузка клиентов и заказов', 'woocommerce' ), - 'type' => 'title', + 'type' => 'heading', 'description' => '', 'id' => 'upload_options' ); @@ -277,6 +312,14 @@ public function init_form_fields() { } } + /** + * Generate html button + * + * @param string $key + * @param array $data + * + * @return string + */ public function generate_button_html( $key, $data ) { $field = $this->plugin_id . $this->id . '_' . $key; $defaults = array( @@ -309,6 +352,44 @@ public function generate_button_html( $key, $data ) { return ob_get_clean(); } + /** + * Generate html title block settings + * + * @param string $key + * @param array $data + * + * @return string + */ + public function generate_heading_html($key, $data) { + $field_key = $this->get_field_key( $key ); + $defaults = array( + 'title' => '', + 'class' => '', + ); + + $data = wp_parse_args( $data, $defaults ); + + ob_start(); + ?> + +