Order Export & Order Import for WooCommerce - Version 2.0.9

Version Description

  • Added support for shipping phone number import export
  • Added import export compatibility for WooCommerce PDF Invoices, Packing Slips, Delivery Notes & Shipping Labels plugin by WebToffee
  • Added import export compatibility for Sequential Order Number for WooCommerce plugin by WebToffee
  • WC 5.6 tested OK
Download this release

Release Info

Developer webtoffee
Plugin Icon 128x128 Order Export & Order Import for WooCommerce
Version 2.0.9
Comparing to
See all releases

Code changes from version 2.0.8 to 2.0.9

admin/class-wt-import-export-for-woo-admin.php CHANGED
@@ -113,6 +113,8 @@ class Wt_Import_Export_For_Woo_Admin_Basic {
113
  'settings_success'=>__('Settings updated.'),
114
  'all_fields_mandatory'=>__('All fields are mandatory'),
115
  'settings_error'=>__('Unable to update Settings.'),
 
 
116
  'value_empty'=>__('Value is empty.'),
117
  'error'=>sprintf(__('An unknown error has occurred! Refer to our %stroubleshooting guide%s for assistance.'), '<a href="'.WT_IEW_DEBUG_BASIC_TROUBLESHOOT.'" target="_blank">', '</a>'),
118
  'success'=>__('Success.'),
@@ -237,6 +239,33 @@ class Wt_Import_Export_For_Woo_Admin_Basic {
237
  exit();
238
  }
239
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
240
  /**
241
  Registers modules: admin
242
  */
@@ -301,6 +330,7 @@ class Wt_Import_Export_For_Woo_Admin_Basic {
301
  'order'=>'order-import-export-for-woocommerce',
302
  'coupon'=>'order-import-export-for-woocommerce',
303
  'product'=>'product-import-export-for-woo',
 
304
  'user'=>'users-customers-import-export-for-wp-woocommerce',
305
  );
306
  foreach ($addon_modules_basic as $module_key => $module_path)
113
  'settings_success'=>__('Settings updated.'),
114
  'all_fields_mandatory'=>__('All fields are mandatory'),
115
  'settings_error'=>__('Unable to update Settings.'),
116
+ 'template_del_error'=>__('Unable to delete template'),
117
+ 'template_del_loader'=>__('Deleting template...'),
118
  'value_empty'=>__('Value is empty.'),
119
  'error'=>sprintf(__('An unknown error has occurred! Refer to our %stroubleshooting guide%s for assistance.'), '<a href="'.WT_IEW_DEBUG_BASIC_TROUBLESHOOT.'" target="_blank">', '</a>'),
120
  'success'=>__('Success.'),
239
  exit();
240
  }
241
 
242
+ /**
243
+ * Delete pre-saved temaplates entry from DB - ajax hook
244
+ */
245
+ public function delete_template() {
246
+ $out = array(
247
+ 'status' => false,
248
+ 'msg' => __('Error'),
249
+ );
250
+
251
+ if (Wt_Iew_Sh::check_write_access(WT_IEW_PLUGIN_ID_BASIC)) {
252
+ if (isset($_POST['template_id'])) {
253
+
254
+ global $wpdb;
255
+ $template_id = absint($_POST['template_id']);
256
+ $tb = $wpdb->prefix . Wt_Import_Export_For_Woo_Basic::$template_tb;
257
+ $where = "=%d";
258
+ $where_data = array($template_id);
259
+ $wpdb->query($wpdb->prepare("DELETE FROM $tb WHERE id" . $where, $where_data));
260
+ $out['status'] = true;
261
+ $out['msg'] = __('Template deleted successfully');
262
+ $out['template_id'] = $template_id;
263
+ }
264
+ }
265
+ wp_send_json($out);
266
+
267
+ }
268
+
269
  /**
270
  Registers modules: admin
271
  */
330
  'order'=>'order-import-export-for-woocommerce',
331
  'coupon'=>'order-import-export-for-woocommerce',
332
  'product'=>'product-import-export-for-woo',
333
+ 'product_review'=>'product-import-export-for-woo',
334
  'user'=>'users-customers-import-export-for-wp-woocommerce',
335
  );
336
  foreach ($addon_modules_basic as $module_key => $module_path)
admin/classes/class-csvreader.php CHANGED
@@ -74,8 +74,8 @@ class Wt_Import_Export_For_Woo_Basic_Csvreader
74
  $val=(isset($sample_data_val[$k]) ? $this->format_data_from_csv($sample_data_val[$k], $enc) : '');
75
 
76
  /* removing BOM like non characters */
77
- // $key=preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $key);
78
- $key= wt_removeBomUtf8_basic($key);
79
  if($grouping)
80
  {
81
  if(strrpos($key, ':')!==false)
@@ -158,8 +158,8 @@ class Wt_Import_Export_For_Woo_Basic_Csvreader
158
  }else
159
  {
160
  /* removing BOM like non characters */
161
- // $head_arr[$head_key]=preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $head_val);
162
- $head_arr[$head_key]= wt_removeBomUtf8_basic($head_val);
163
  }
164
  }
165
 
74
  $val=(isset($sample_data_val[$k]) ? $this->format_data_from_csv($sample_data_val[$k], $enc) : '');
75
 
76
  /* removing BOM like non characters */
77
+ $key=preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $key);
78
+ //$key= wt_removeBomUtf8_basic($key);
79
  if($grouping)
80
  {
81
  if(strrpos($key, ':')!==false)
158
  }else
159
  {
160
  /* removing BOM like non characters */
161
+ $head_arr[$head_key]=preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $head_val);
162
+ //$head_arr[$head_key]= wt_removeBomUtf8_basic($head_val);
163
  }
164
  }
165
 
admin/js/wt-import-export-for-woo-admin.js CHANGED
@@ -123,6 +123,48 @@ var wt_iew_settings_form_basic=
123
  });
124
  }
125
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  var wt_drp_menu=
127
  {
128
  Set:function()
@@ -735,4 +777,5 @@ jQuery(document).ready(function(){
735
  wt_iew_file_attacher.Set();
736
  wt_iew_form_toggler.Set();
737
  wt_field_group.Set();
 
738
  });
123
  });
124
  }
125
  }
126
+
127
+ var wt_saved_templates = {
128
+ Set: function()
129
+ {
130
+ jQuery('.wt_ier_delete_template').unbind('click').click(function (e) {
131
+ e.preventDefault();
132
+ if(confirm(wt_iew_basic_params.msgs.sure)){
133
+
134
+ var template_id = jQuery(this).attr('data-id');
135
+
136
+ var data = {
137
+ _wpnonce: wt_iew_basic_params.nonces.main,
138
+ action: 'wt_iew_delete_template',
139
+ template_id: template_id,
140
+ };
141
+ jQuery('tr[data-row-id='+data.template_id+']').html('<td colspan="5">'+wt_iew_basic_params.msgs.template_del_loader+'</td>');
142
+ jQuery.ajax({
143
+ url: wt_iew_basic_params.ajax_url,
144
+ type: 'POST',
145
+ dataType: 'json',
146
+ data: data,
147
+ success: function (data)
148
+ {
149
+ if (data.status == true)
150
+ {
151
+ wt_iew_notify_msg.success(data.msg, true);
152
+ jQuery('tr[data-row-id='+data.template_id+']').remove();
153
+ } else
154
+ {
155
+ wt_iew_notify_msg.error(data.msg, true);
156
+ }
157
+ },
158
+ error: function ()
159
+ {
160
+ wt_iew_notify_msg.error(wt_iew_basic_params.msgs.template_del_error);
161
+ }
162
+ });
163
+ }
164
+ });
165
+ }
166
+ }
167
+
168
  var wt_drp_menu=
169
  {
170
  Set:function()
777
  wt_iew_file_attacher.Set();
778
  wt_iew_form_toggler.Set();
779
  wt_field_group.Set();
780
+ wt_saved_templates.Set();
781
  });
admin/modules/export/assets/js/main.js CHANGED
@@ -674,7 +674,7 @@ var wt_iew_basic_export=(function( $ ) {
674
  {
675
  wt_iew_basic_export.load_pending_steps();
676
  }
677
- });
678
 
679
  $('.wt-iew-export-template-sele').unbind('change').change(function(){
680
  wt_iew_basic_export.selected_template=$(this).val();
@@ -688,17 +688,20 @@ var wt_iew_basic_export=(function( $ ) {
688
  wt_iew_basic_export.load_pending_steps();
689
  }
690
  });
 
691
  }
692
  else if(step=='filter') /* filter page */
693
  {
694
  $('.wc-enhanced-select').select2();
695
  $( document.body ).trigger( 'wc-enhanced-select-init' );
 
696
  }
697
  else if(step=='mapping') /* mapping page */
698
  {
699
  this.enable_sortable();
700
  this.mapping_box_accordian();
701
  this.reg_mapping_field_bulk_action();
 
702
  }
703
  else if(step=='advanced')
704
  {
@@ -752,6 +755,7 @@ var wt_iew_basic_export=(function( $ ) {
752
  $('[name="wt_iew_file_as"]').unbind('change').change(function(){
753
  $('.wt_iew_file_ext_info').html('.'+$(this).val());
754
  });
 
755
  }
756
 
757
  /* common events */
@@ -887,7 +891,13 @@ var wt_iew_basic_export=(function( $ ) {
887
  'data_type': data_type,
888
  'export_method': this.export_method,
889
  };
890
- }
 
 
 
 
 
 
891
  }
892
  return wt_iew_basic_export;
893
 
674
  {
675
  wt_iew_basic_export.load_pending_steps();
676
  }
677
+ });
678
 
679
  $('.wt-iew-export-template-sele').unbind('change').change(function(){
680
  wt_iew_basic_export.selected_template=$(this).val();
688
  wt_iew_basic_export.load_pending_steps();
689
  }
690
  });
691
+ wt_iew_basic_export.warn_on_refresh();
692
  }
693
  else if(step=='filter') /* filter page */
694
  {
695
  $('.wc-enhanced-select').select2();
696
  $( document.body ).trigger( 'wc-enhanced-select-init' );
697
+ wt_iew_basic_export.warn_on_refresh();
698
  }
699
  else if(step=='mapping') /* mapping page */
700
  {
701
  this.enable_sortable();
702
  this.mapping_box_accordian();
703
  this.reg_mapping_field_bulk_action();
704
+ wt_iew_basic_export.warn_on_refresh();
705
  }
706
  else if(step=='advanced')
707
  {
755
  $('[name="wt_iew_file_as"]').unbind('change').change(function(){
756
  $('.wt_iew_file_ext_info').html('.'+$(this).val());
757
  });
758
+ wt_iew_basic_export.warn_on_refresh();
759
  }
760
 
761
  /* common events */
891
  'data_type': data_type,
892
  'export_method': this.export_method,
893
  };
894
+ },
895
+ warn_on_refresh: function () {
896
+ window.onbeforeunload = function (event)
897
+ {
898
+ return confirm("Changes that you made may not be saved.");
899
+ };
900
+ }
901
  }
902
  return wt_iew_basic_export;
903
 
admin/modules/export/export.php CHANGED
@@ -86,7 +86,7 @@ class Wt_Import_Export_For_Woo_Basic_Export
86
  );
87
 
88
  /* advanced plugin settings */
89
- add_filter('wt_iew_advanced_setting_fields_basic', array($this, 'advanced_setting_fields'));
90
 
91
  /* setting default values, this method must be below of advanced setting filter */
92
  $this->get_defaults();
86
  );
87
 
88
  /* advanced plugin settings */
89
+ add_filter('wt_iew_advanced_setting_fields_basic', array($this, 'advanced_setting_fields'), 11);
90
 
91
  /* setting default values, this method must be below of advanced setting filter */
92
  $this->get_defaults();
admin/modules/history/history.php CHANGED
@@ -47,7 +47,7 @@ class Wt_Import_Export_For_Woo_Basic_History
47
  add_filter('wt_iew_admin_menu_basic', array($this, 'add_admin_pages'), 10, 1);
48
 
49
  /* advanced plugin settings */
50
- add_filter('wt_iew_advanced_setting_fields_basic', array($this, 'advanced_setting_fields'), 11);
51
 
52
  /* main ajax hook. The callback function will decide which action is to execute. */
53
  add_action('wp_ajax_iew_history_ajax_basic', array($this, 'ajax_main'), 11);
47
  add_filter('wt_iew_admin_menu_basic', array($this, 'add_admin_pages'), 10, 1);
48
 
49
  /* advanced plugin settings */
50
+ add_filter('wt_iew_advanced_setting_fields_basic', array($this, 'advanced_setting_fields'), 12);
51
 
52
  /* main ajax hook. The callback function will decide which action is to execute. */
53
  add_action('wp_ajax_iew_history_ajax_basic', array($this, 'ajax_main'), 11);
admin/modules/history/views/_history_list.php CHANGED
@@ -105,7 +105,7 @@ if ( ! defined( 'WPINC' ) ) {
105
  <input type="checkbox" name="" class="wt_iew_history_checkbox_main">
106
  <?php _e("No."); ?>
107
  </th>
108
- <th><?php _e("Id"); ?></th>
109
  <th><?php _e("Action type"); ?></th>
110
  <th><?php _e("Post type"); ?></th>
111
  <th><?php _e("Started at"); ?></th>
@@ -178,6 +178,13 @@ if ( ! defined( 'WPINC' ) ) {
178
  <?php
179
  }
180
  }
 
 
 
 
 
 
 
181
  ?>
182
  </td>
183
  </tr>
105
  <input type="checkbox" name="" class="wt_iew_history_checkbox_main">
106
  <?php _e("No."); ?>
107
  </th>
108
+ <th width="50"><?php _e("Id"); ?></th>
109
  <th><?php _e("Action type"); ?></th>
110
  <th><?php _e("Post type"); ?></th>
111
  <th><?php _e("Started at"); ?></th>
178
  <?php
179
  }
180
  }
181
+ if($action_type=='export' && Wt_Import_Export_For_Woo_Admin_Basic::module_exists($action_type))
182
+ {
183
+ $export_download_url=wp_nonce_url(admin_url('admin.php?wt_iew_export_download=true&file='.$history_item['file_name']), WT_IEW_PLUGIN_ID_BASIC);
184
+ ?>
185
+ | <a class="wt_iew_export_download_btn" target="_blank" href="<?php echo $export_download_url;?>"><?php _e('Download');?></a>
186
+ <?php
187
+ }
188
  ?>
189
  </td>
190
  </tr>
admin/modules/import/assets/js/main.js CHANGED
@@ -870,6 +870,7 @@ var wt_iew_basic_import=(function( $ ) {
870
 
871
  /* Auto populate template file. */
872
  wt_iew_dropzone.auto_populate();
 
873
  }
874
  else if(step=='mapping') /* mapping page */
875
  {
@@ -877,10 +878,11 @@ var wt_iew_basic_import=(function( $ ) {
877
  this.mapping_box_accordian();
878
  this.reg_mapping_field_bulk_action();
879
  wt_iew_popover.Set();
 
880
  }
881
  else if(step=='advanced')
882
  {
883
-
884
  }
885
 
886
  /* common events */
@@ -1041,7 +1043,13 @@ var wt_iew_basic_import=(function( $ ) {
1041
  is_object:function(obj)
1042
  {
1043
  return obj !== undefined && obj !== null && obj.constructor == Object;
1044
- }
 
 
 
 
 
 
1045
  }
1046
 
1047
  var mapping_field_editor=
870
 
871
  /* Auto populate template file. */
872
  wt_iew_dropzone.auto_populate();
873
+ wt_iew_basic_import.warn_on_refresh();
874
  }
875
  else if(step=='mapping') /* mapping page */
876
  {
878
  this.mapping_box_accordian();
879
  this.reg_mapping_field_bulk_action();
880
  wt_iew_popover.Set();
881
+ wt_iew_basic_import.warn_on_refresh();
882
  }
883
  else if(step=='advanced')
884
  {
885
+ wt_iew_basic_import.warn_on_refresh();
886
  }
887
 
888
  /* common events */
1043
  is_object:function(obj)
1044
  {
1045
  return obj !== undefined && obj !== null && obj.constructor == Object;
1046
+ },
1047
+ warn_on_refresh: function () {
1048
+ window.onbeforeunload = function (event)
1049
+ {
1050
+ return confirm("Changes that you made may not be saved.");
1051
+ };
1052
+ }
1053
  }
1054
 
1055
  var mapping_field_editor=
admin/modules/import/import.php CHANGED
@@ -105,7 +105,17 @@ class Wt_Import_Export_For_Woo_Basic_Import
105
  */
106
  public function advanced_setting_fields($fields)
107
  {
108
- $fields['enable_import_log']=array(
 
 
 
 
 
 
 
 
 
 
109
  'label'=>__("Generate Import log"),
110
  'type'=>'radio',
111
  'radio_fields'=>array(
@@ -136,6 +146,7 @@ class Wt_Import_Export_For_Woo_Basic_Import
136
  'help_text'=>__('Provide the default count for the records to be imported in a batch.'),
137
  'validation_rule'=>array('type'=>'absint'),
138
  );
 
139
  return $fields;
140
  }
141
 
105
  */
106
  public function advanced_setting_fields($fields)
107
  {
108
+
109
+ $fields['maximum_execution_time'] = array(
110
+ 'label' => __("Maximum execution time"),
111
+ 'type' => 'number',
112
+ 'value' => ini_get('max_execution_time'), /* Default max_execution_time settings value */
113
+ 'field_name' => 'maximum_execution_time',
114
+ 'field_group' => 'advanced_field',
115
+ 'help_text' => __('The maximum execution time, in seconds(eg:- 300, 600, 1800, 3600). If set to zero, no time limit is imposed. Increasing this will reduce the chance of export/import timeouts.'),
116
+ 'validation_rule' => array('type' => 'int'),
117
+ );
118
+ $fields['enable_import_log']=array(
119
  'label'=>__("Generate Import log"),
120
  'type'=>'radio',
121
  'radio_fields'=>array(
146
  'help_text'=>__('Provide the default count for the records to be imported in a batch.'),
147
  'validation_rule'=>array('type'=>'absint'),
148
  );
149
+
150
  return $fields;
151
  }
152
 
admin/modules/order/data/data-order-post-columns.php CHANGED
@@ -4,7 +4,7 @@ if (!defined('ABSPATH')) {
4
  exit;
5
  }
6
 
7
- return apply_filters('hf_csv_order_post_columns', array(
8
  'order_id' => 'ID',
9
  'order_number' => 'Order number',
10
  'order_date' => 'Order date',
@@ -25,7 +25,7 @@ return apply_filters('hf_csv_order_post_columns', array(
25
  'payment_method_title' => 'Payment method title',
26
  'transaction_id' => 'Transaction ID',
27
  'customer_ip_address' => 'Customer IP address',
28
- 'customer_user_agent' => 'Customer user agent',
29
  'shipping_method' => 'Shipping method',
30
  'customer_id' => 'Customer ID',
31
  'customer_user' => 'Customer user',
@@ -44,6 +44,7 @@ return apply_filters('hf_csv_order_post_columns', array(
44
  'shipping_first_name' => 'Shipping first name',
45
  'shipping_last_name' => 'Shipping last name',
46
  'shipping_company' => 'Shipping company',
 
47
  'shipping_address_1' => 'Shipping address 1',
48
  'shipping_address_2' => 'Shipping address 2',
49
  'shipping_postcode' => 'Shipping postcode',
@@ -59,4 +60,14 @@ return apply_filters('hf_csv_order_post_columns', array(
59
  'refund_items' => 'Refund items',
60
  'order_notes' => 'Order notes',
61
  'download_permissions' => 'Download permissions'
62
- ));
 
 
 
 
 
 
 
 
 
 
4
  exit;
5
  }
6
 
7
+ $base_columns = array(
8
  'order_id' => 'ID',
9
  'order_number' => 'Order number',
10
  'order_date' => 'Order date',
25
  'payment_method_title' => 'Payment method title',
26
  'transaction_id' => 'Transaction ID',
27
  'customer_ip_address' => 'Customer IP address',
28
+ 'customer_user_agent' => 'Customer user agent',
29
  'shipping_method' => 'Shipping method',
30
  'customer_id' => 'Customer ID',
31
  'customer_user' => 'Customer user',
44
  'shipping_first_name' => 'Shipping first name',
45
  'shipping_last_name' => 'Shipping last name',
46
  'shipping_company' => 'Shipping company',
47
+ 'shipping_phone' => 'Shipping phone',
48
  'shipping_address_1' => 'Shipping address 1',
49
  'shipping_address_2' => 'Shipping address 2',
50
  'shipping_postcode' => 'Shipping postcode',
60
  'refund_items' => 'Refund items',
61
  'order_notes' => 'Order notes',
62
  'download_permissions' => 'Download permissions'
63
+ );
64
+
65
+ if (!function_exists('is_plugin_active'))
66
+ require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
67
+
68
+ if (is_plugin_active('wt-woocommerce-packing-list/wf-woocommerce-packing-list.php')):
69
+ $base_columns['meta:wf_invoice_number'] = 'WT Invoice number';
70
+ $base_columns['meta:_wf_invoice_date'] = 'WT Invoice date';
71
+ endif;
72
+
73
+ return apply_filters('hf_csv_order_post_columns', $base_columns);
admin/modules/order/data/data-wf-post-subscription-columns.php CHANGED
@@ -50,6 +50,7 @@ if (!defined('ABSPATH')) {
50
  'shipping_state' => 'shipping_state',
51
  'shipping_country' => 'shipping_country',
52
  'shipping_company' => 'shipping_company',
 
53
  'customer_note' => 'customer_note',
54
  'order_items' => 'order_items',
55
  'order_notes' => 'order_notes',
50
  'shipping_state' => 'shipping_state',
51
  'shipping_country' => 'shipping_country',
52
  'shipping_company' => 'shipping_company',
53
+ 'shipping_phone' => 'shipping_phone',
54
  'customer_note' => 'customer_note',
55
  'order_items' => 'order_items',
56
  'order_notes' => 'order_notes',
admin/modules/order/data/data-wf-xml-default-meta.php CHANGED
@@ -16,6 +16,7 @@ return apply_filters('hf_xml_order_default_meta_columns', array(
16
  '_shipping_address_2' => '_shipping_address_2',
17
  '_shipping_city' => '_shipping_city',
18
  '_shipping_company' => '_shipping_company',
 
19
  '_shipping_country' => '_shipping_country',
20
  '_shipping_first_name' => '_shipping_first_name',
21
  '_shipping_last_name' => '_shipping_last_name',
16
  '_shipping_address_2' => '_shipping_address_2',
17
  '_shipping_city' => '_shipping_city',
18
  '_shipping_company' => '_shipping_company',
19
+ '_shipping_phone' => '_shipping_phone',
20
  '_shipping_country' => '_shipping_country',
21
  '_shipping_first_name' => '_shipping_first_name',
22
  '_shipping_last_name' => '_shipping_last_name',
admin/modules/order/data/data/data-wf-reserved-fields-pair.php CHANGED
@@ -1,59 +1,74 @@
1
  <?php
2
 
3
- // Reserved column names
4
- return apply_filters('woocommerce_csv_order_reserved_fields_pair',array(
5
- 'order_id' => array('title'=>'ID ','description'=>'Order ID '),
6
- 'order_number' => array('title'=>'Order number','description'=>'Order Number'),
7
- 'order_date' => array('title'=>'Order date','description'=>'Order Date', 'type' => 'date'),
8
- 'paid_date' => array('title'=>'Paid date','description'=>'Paid Date', 'type' => 'date'),
9
- 'status' => array('title'=>'Status','description'=>'Order Status ( processing , pending ...) '),
10
- 'shipping_total' => array('title'=>'Shipping total','description'=>'Shipping Total amount'),
11
- 'shipping_tax_total' => array('title'=>'Shipping tax total','description'=>'Shipping Tax Total'),
12
- 'fee_total' => array('title'=>'Total fee','description'=>'Total Fee'),
13
- 'fee_tax_total' => array('title'=>'Total tax fee','description'=>'Total Tax Fee'),
14
- 'tax_total' => array('title'=>'Total tax','description'=>'Total Tax'),
15
- 'cart_discount' => array('title'=>'Cart discount','description'=>'Cart Discount'),
16
- 'order_discount' => array('title'=>'Order discount','description'=>'Order Discount'),
17
- 'discount_total' => array('title'=>'Discount total','description'=>'Discount Total'),
18
- 'order_total' => array('title'=>'Order total','description'=>'Order Total'),
 
 
 
19
  //'refunded_total' => array('title'=>'refunded_total','description'=>'refunded_total'),
20
- 'order_currency' => array('title'=>'Order currency','description'=>'Order Currency'),
21
- 'payment_method' => array('title'=>'Payment method','description'=>'Payment Method'),
22
- 'payment_method_title' => array('title'=>'Payment method title','description'=>'Payment Method Title'),
23
- 'transaction_id' => array('title'=>'Transaction ID','description'=>'Payment transaction id'),
24
- 'customer_ip_address' => array('title'=>'Customer IP address','description'=>'Customer ip address'),
25
- 'customer_user_agent' => array('title'=>'Customer user agent','description'=>'Customer user agent'),
26
- 'shipping_method' => array('title'=>'Shipping method','description'=>'Shipping Method'),
27
- 'customer_email' => array('title'=>'Customer email','description'=>'Customer Email ( if not provided order will be created as Guest)'),
28
- 'customer_user' => array('title'=>'Customer user','description'=>'Customer id ( if not provided order will be created as Guest)'),
29
- 'billing_first_name' => array('title'=>'Billing first name','description'=>'billing_first_name'),
30
- 'billing_last_name' => array('title'=>'Billing last name','description'=>'billing_last_name'),
31
- 'billing_company' => array('title'=>'Billing company','description'=>'billing_company'),
32
- 'billing_email' => array('title'=>'Billing email','description'=>'billing_email'),
33
- 'billing_phone' => array('title'=>'Billing phone','description'=>'billing_phone'),
34
- 'billing_address_1' => array('title'=>'Billing address 1','description'=>'billing_address_1'),
35
- 'billing_address_2' => array('title'=>'Billing address 2','description'=>'billing_address_2'),
36
- 'billing_postcode' => array('title'=>'Billing postcode','description'=>'billing_postcode'),
37
- 'billing_city' => array('title'=>'Billing city','description'=>'billing_city'),
38
- 'billing_state' => array('title'=>'Billing state','description'=>'billing_state'),
39
- 'billing_country' => array('title'=>'Billing country','description'=>'billing_country'),
40
- 'shipping_first_name' => array('title'=>'Shipping first name','description'=>'shipping_first_name'),
41
- 'shipping_last_name' => array('title'=>'Shipping last name','description'=>'shipping_last_name'),
42
- 'shipping_company' => array('title'=>'Shipping company','description'=>'shipping_company'),
43
- 'shipping_address_1' => array('title'=>'Shipping address 1','description'=>'shipping_address_1'),
44
- 'shipping_address_2' => array('title'=>'Shipping address 2','description'=>'shipping_address_2'),
45
- 'shipping_postcode' => array('title'=>'Shipping_ ostcode','description'=>'shipping_postcode'),
46
- 'shipping_city' => array('title'=>'Shipping city','description'=>'shipping_city'),
47
- 'shipping_state' => array('title'=>'Shipping state','description'=>'shipping_state'),
48
- 'shipping_country' => array('title'=>'Shipping country','description'=>'shipping_country'),
49
- 'customer_note' => array('title'=>'Customer note','description'=>'customer_note'),
50
- 'wt_import_key' => array('title'=>'wt_impor_key','description'=>'wt_import_key'),
51
- 'shipping_items' => array('title'=>'Shipping items','description'=>'shipping_items'),
52
- 'fee_items' => array('title'=>'Fee items','description'=>'fee_items'),
53
- 'tax_items' => array('title'=>'Tax items','description'=>'tax_items'),
54
- 'coupon_items' => array('title'=>'Coupon items','description'=>'coupons'),
55
- 'refund_items' => array('title'=>'Refund items','description'=>'refund_items'),
56
- 'order_notes' => array('title'=>'Order notes','description'=>'Order notes'),
57
- 'line_item_' => array('title'=>'Line_item_','description'=>'Line Items','field_type'=>'start_with'),
58
- 'download_permissions' => array('title'=>'Downloadable product permissions ','description'=>'Permissions for order items will automatically be granted when the order status changes to processing or completed.'),
59
- ));
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
 
3
+ if (!defined('ABSPATH')) {
4
+ exit;
5
+ }
6
+
7
+ $base_reserved_columns = array(
8
+ 'order_id' => array('title' => 'ID ', 'description' => 'Order ID '),
9
+ 'order_number' => array('title' => 'Order number', 'description' => 'Order Number'),
10
+ 'order_date' => array('title' => 'Order date', 'description' => 'Order Date', 'type' => 'date'),
11
+ 'paid_date' => array('title' => 'Paid date', 'description' => 'Paid Date', 'type' => 'date'),
12
+ 'status' => array('title' => 'Status', 'description' => 'Order Status ( processing , pending ...) '),
13
+ 'shipping_total' => array('title' => 'Shipping total', 'description' => 'Shipping Total amount'),
14
+ 'shipping_tax_total' => array('title' => 'Shipping tax total', 'description' => 'Shipping Tax Total'),
15
+ 'fee_total' => array('title' => 'Total fee', 'description' => 'Total Fee'),
16
+ 'fee_tax_total' => array('title' => 'Total tax fee', 'description' => 'Total Tax Fee'),
17
+ 'tax_total' => array('title' => 'Total tax', 'description' => 'Total Tax'),
18
+ 'cart_discount' => array('title' => 'Cart discount', 'description' => 'Cart Discount'),
19
+ 'order_discount' => array('title' => 'Order discount', 'description' => 'Order Discount'),
20
+ 'discount_total' => array('title' => 'Discount total', 'description' => 'Discount Total'),
21
+ 'order_total' => array('title' => 'Order total', 'description' => 'Order Total'),
22
  //'refunded_total' => array('title'=>'refunded_total','description'=>'refunded_total'),
23
+ 'order_currency' => array('title' => 'Order currency', 'description' => 'Order Currency'),
24
+ 'payment_method' => array('title' => 'Payment method', 'description' => 'Payment Method'),
25
+ 'payment_method_title' => array('title' => 'Payment method title', 'description' => 'Payment Method Title'),
26
+ 'transaction_id' => array('title' => 'Transaction ID', 'description' => 'Payment transaction id'),
27
+ 'customer_ip_address' => array('title' => 'Customer IP address', 'description' => 'Customer ip address'),
28
+ 'customer_user_agent' => array('title' => 'Customer user agent', 'description' => 'Customer user agent'),
29
+ 'shipping_method' => array('title' => 'Shipping method', 'description' => 'Shipping Method'),
30
+ 'customer_email' => array('title' => 'Customer email', 'description' => 'Customer Email ( if not provided order will be created as Guest)'),
31
+ 'customer_user' => array('title' => 'Customer user', 'description' => 'Customer id ( if not provided order will be created as Guest)'),
32
+ 'billing_first_name' => array('title' => 'Billing first name', 'description' => 'billing_first_name'),
33
+ 'billing_last_name' => array('title' => 'Billing last name', 'description' => 'billing_last_name'),
34
+ 'billing_company' => array('title' => 'Billing company', 'description' => 'billing_company'),
35
+ 'billing_email' => array('title' => 'Billing email', 'description' => 'billing_email'),
36
+ 'billing_phone' => array('title' => 'Billing phone', 'description' => 'billing_phone'),
37
+ 'billing_address_1' => array('title' => 'Billing address 1', 'description' => 'billing_address_1'),
38
+ 'billing_address_2' => array('title' => 'Billing address 2', 'description' => 'billing_address_2'),
39
+ 'billing_postcode' => array('title' => 'Billing postcode', 'description' => 'billing_postcode'),
40
+ 'billing_city' => array('title' => 'Billing city', 'description' => 'billing_city'),
41
+ 'billing_state' => array('title' => 'Billing state', 'description' => 'billing_state'),
42
+ 'billing_country' => array('title' => 'Billing country', 'description' => 'billing_country'),
43
+ 'shipping_first_name' => array('title' => 'Shipping first name', 'description' => 'shipping_first_name'),
44
+ 'shipping_last_name' => array('title' => 'Shipping last name', 'description' => 'shipping_last_name'),
45
+ 'shipping_company' => array('title' => 'Shipping company', 'description' => 'shipping_company'),
46
+ 'shipping_phone' => array('title' => 'Shipping phone', 'description' => 'shipping_phone'),
47
+ 'shipping_address_1' => array('title' => 'Shipping address 1', 'description' => 'shipping_address_1'),
48
+ 'shipping_address_2' => array('title' => 'Shipping address 2', 'description' => 'shipping_address_2'),
49
+ 'shipping_postcode' => array('title' => 'Shipping postcode', 'description' => 'shipping_postcode'),
50
+ 'shipping_city' => array('title' => 'Shipping city', 'description' => 'shipping_city'),
51
+ 'shipping_state' => array('title' => 'Shipping state', 'description' => 'shipping_state'),
52
+ 'shipping_country' => array('title' => 'Shipping country', 'description' => 'shipping_country'),
53
+ 'customer_note' => array('title' => 'Customer note', 'description' => 'customer_note'),
54
+ 'wt_import_key' => array('title' => 'wt_impor_key', 'description' => 'wt_import_key'),
55
+ 'shipping_items' => array('title' => 'Shipping items', 'description' => 'shipping_items'),
56
+ 'fee_items' => array('title' => 'Fee items', 'description' => 'fee_items'),
57
+ 'tax_items' => array('title' => 'Tax items', 'description' => 'tax_items'),
58
+ 'coupon_items' => array('title' => 'Coupon items', 'description' => 'coupons'),
59
+ 'refund_items' => array('title' => 'Refund items', 'description' => 'refund_items'),
60
+ 'order_notes' => array('title' => 'Order notes', 'description' => 'Order notes'),
61
+ 'line_item_' => array('title' => 'Line_item_', 'description' => 'Line Items', 'field_type' => 'start_with'),
62
+ 'download_permissions' => array('title' => 'Downloadable product permissions ', 'description' => 'Permissions for order items will automatically be granted when the order status changes to processing or completed.'),
63
+ );
64
+
65
+ if (!function_exists('is_plugin_active'))
66
+ require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
67
+
68
+ if (is_plugin_active('wt-woocommerce-packing-list/wf-woocommerce-packing-list.php')):
69
+ $base_reserved_columns['meta:wf_invoice_number'] = array('title' => 'WT Invoice number ', 'description' => 'WebToffee Invoice number');
70
+ $base_reserved_columns['meta:_wf_invoice_date'] = array('title' => 'WT Invoice date ', 'description' => 'WebToffee Invoice date');
71
+ endif;
72
+
73
+ // Reserved column names
74
+ return apply_filters('woocommerce_csv_order_reserved_fields_pair', $base_reserved_columns);
admin/modules/order/export/export.php CHANGED
@@ -11,6 +11,7 @@ class Wt_Import_Export_For_Woo_Basic_Order_Export {
11
  private $line_items_max_count = 0;
12
  private $export_to_separate_columns = false;
13
  private $line_item_meta;
 
14
 
15
  public function __construct($parent_object) {
16
 
@@ -22,6 +23,9 @@ class Wt_Import_Export_For_Woo_Basic_Order_Export {
22
  $export_columns = $this->parent_module->get_selected_column_names();
23
 
24
  $this->line_item_meta = self::get_all_line_item_metakeys();
 
 
 
25
 
26
  $max_line_items = $this->line_items_max_count;
27
 
@@ -61,6 +65,7 @@ class Wt_Import_Export_For_Woo_Basic_Order_Export {
61
  $start_date = !empty($form_data['filter_form_data']['wt_iew_date_from']) ? $form_data['filter_form_data']['wt_iew_date_from'] . ' 00:00:00' : date('Y-m-d 00:00:00', 0);
62
  $end_date = !empty($form_data['filter_form_data']['wt_iew_date_to']) ? $form_data['filter_form_data']['wt_iew_date_to'] . ' 23:59:59.99' : date('Y-m-d 23:59:59.99', current_time('timestamp'));
63
  $coupons = !empty($form_data['filter_form_data']['wt_iew_coupons']) ? array_filter(explode(',', strtolower($form_data['filter_form_data']['wt_iew_coupons'])),'trim') : array();
 
64
 
65
  $export_limit = !empty($form_data['filter_form_data']['wt_iew_limit']) ? intval($form_data['filter_form_data']['wt_iew_limit']) : 999999999; //user limit
66
  $current_offset = !empty($form_data['filter_form_data']['wt_iew_offset']) ? intval($form_data['filter_form_data']['wt_iew_offset']) : 0; //user offset
@@ -203,6 +208,9 @@ class Wt_Import_Export_For_Woo_Basic_Order_Export {
203
  'compare' => 'NOT EXISTS',
204
  ));
205
  }
 
 
 
206
  $query_args = apply_filters('wt_orderimpexpcsv_export_query_args', $query_args);
207
  $query_args['offset'] = $current_offset; //user given offset
208
  $query_args['posts_per_page'] = $export_limit; //user given limit
@@ -331,6 +339,9 @@ class Wt_Import_Export_For_Woo_Basic_Order_Export {
331
  'compare' => 'NOT EXISTS',
332
  ));
333
  }
 
 
 
334
  $query_args = apply_filters('wt_orderimpexpcsv_export_query_args', $query_args);
335
  $query_args['offset'] = $real_offset;
336
  $query_args['posts_per_page'] = $limit;
@@ -561,6 +572,7 @@ class Wt_Import_Export_For_Woo_Basic_Order_Export {
561
  'shipping_first_name' => $order->shipping_first_name,
562
  'shipping_last_name' => $order->shipping_last_name,
563
  'shipping_company' => $order->shipping_company,
 
564
  'shipping_address_1' => $order->shipping_address_1,
565
  'shipping_address_2' => $order->shipping_address_2,
566
  'shipping_postcode' => $order->shipping_postcode,
@@ -618,6 +630,7 @@ class Wt_Import_Export_For_Woo_Basic_Order_Export {
618
  'shipping_first_name' => $order->get_shipping_first_name(),
619
  'shipping_last_name' => $order->get_shipping_last_name(),
620
  'shipping_company' => $order->get_shipping_company(),
 
621
  'shipping_address_1' => $order->get_shipping_address_1(),
622
  'shipping_address_2' => $order->get_shipping_address_2(),
623
  'shipping_postcode' => $order->get_shipping_postcode(),
@@ -635,7 +648,14 @@ class Wt_Import_Export_For_Woo_Basic_Order_Export {
635
  'download_permissions' => $order->is_download_permitted() ? $order->is_download_permitted() : 0,
636
  );
637
  }
638
-
 
 
 
 
 
 
 
639
  $order_export_data = array();
640
  foreach ($csv_columns as $key => $value) {
641
  if (!$order_data || array_key_exists($key, $order_data)) {
11
  private $line_items_max_count = 0;
12
  private $export_to_separate_columns = false;
13
  private $line_item_meta;
14
+ private $is_wt_invoice_active = false;
15
 
16
  public function __construct($parent_object) {
17
 
23
  $export_columns = $this->parent_module->get_selected_column_names();
24
 
25
  $this->line_item_meta = self::get_all_line_item_metakeys();
26
+ if (is_plugin_active('wt-woocommerce-packing-list/wf-woocommerce-packing-list.php')):
27
+ $this->is_wt_invoice_active = true;
28
+ endif;
29
 
30
  $max_line_items = $this->line_items_max_count;
31
 
65
  $start_date = !empty($form_data['filter_form_data']['wt_iew_date_from']) ? $form_data['filter_form_data']['wt_iew_date_from'] . ' 00:00:00' : date('Y-m-d 00:00:00', 0);
66
  $end_date = !empty($form_data['filter_form_data']['wt_iew_date_to']) ? $form_data['filter_form_data']['wt_iew_date_to'] . ' 23:59:59.99' : date('Y-m-d 23:59:59.99', current_time('timestamp'));
67
  $coupons = !empty($form_data['filter_form_data']['wt_iew_coupons']) ? array_filter(explode(',', strtolower($form_data['filter_form_data']['wt_iew_coupons'])),'trim') : array();
68
+ $orders = !empty($form_data['filter_form_data']['wt_iew_orders']) ? array_filter(explode(',', strtolower($form_data['filter_form_data']['wt_iew_orders'])),'trim') : array();
69
 
70
  $export_limit = !empty($form_data['filter_form_data']['wt_iew_limit']) ? intval($form_data['filter_form_data']['wt_iew_limit']) : 999999999; //user limit
71
  $current_offset = !empty($form_data['filter_form_data']['wt_iew_offset']) ? intval($form_data['filter_form_data']['wt_iew_offset']) : 0; //user offset
208
  'compare' => 'NOT EXISTS',
209
  ));
210
  }
211
+ if(!empty($orders)){
212
+ $query_args['post__in'] = $orders;
213
+ }
214
  $query_args = apply_filters('wt_orderimpexpcsv_export_query_args', $query_args);
215
  $query_args['offset'] = $current_offset; //user given offset
216
  $query_args['posts_per_page'] = $export_limit; //user given limit
339
  'compare' => 'NOT EXISTS',
340
  ));
341
  }
342
+ if(!empty($orders)){
343
+ $query_args['post__in'] = $orders;
344
+ }
345
  $query_args = apply_filters('wt_orderimpexpcsv_export_query_args', $query_args);
346
  $query_args['offset'] = $real_offset;
347
  $query_args['posts_per_page'] = $limit;
572
  'shipping_first_name' => $order->shipping_first_name,
573
  'shipping_last_name' => $order->shipping_last_name,
574
  'shipping_company' => $order->shipping_company,
575
+ 'shipping_phone' => isset($order->shipping_phone) ? $order->shipping_phone : '',
576
  'shipping_address_1' => $order->shipping_address_1,
577
  'shipping_address_2' => $order->shipping_address_2,
578
  'shipping_postcode' => $order->shipping_postcode,
630
  'shipping_first_name' => $order->get_shipping_first_name(),
631
  'shipping_last_name' => $order->get_shipping_last_name(),
632
  'shipping_company' => $order->get_shipping_company(),
633
+ 'shipping_phone' => $order->get_shipping_phone(),
634
  'shipping_address_1' => $order->get_shipping_address_1(),
635
  'shipping_address_2' => $order->get_shipping_address_2(),
636
  'shipping_postcode' => $order->get_shipping_postcode(),
648
  'download_permissions' => $order->is_download_permitted() ? $order->is_download_permitted() : 0,
649
  );
650
  }
651
+
652
+ if ($this->is_wt_invoice_active):
653
+ $invoice_date = get_post_meta($order_data['order_id'], '_wf_invoice_date', true);
654
+ $invoice_number = get_post_meta($order_data['order_id'], 'wf_invoice_number', true);
655
+ $order_data['meta:wf_invoice_number'] = empty($invoice_number) ? '' : $invoice_number;
656
+ $order_data['meta:_wf_invoice_date'] = empty($invoice_date) ? '' : date_i18n(get_option( 'date_format' ), $invoice_date);
657
+ endif;
658
+
659
  $order_export_data = array();
660
  foreach ($csv_columns as $key => $value) {
661
  if (!$order_data || array_key_exists($key, $order_data)) {
admin/modules/order/import/import.php CHANGED
@@ -183,7 +183,7 @@ class Wt_Import_Export_For_Woo_Basic_Order_Import {
183
  $column = strtolower($column);
184
 
185
  if ('order_number' == $column) {
186
- $this->item_data['order_number'] = ($value);
187
  continue;
188
  }
189
 
@@ -309,7 +309,7 @@ class Wt_Import_Export_For_Woo_Basic_Order_Import {
309
  continue;
310
  }
311
  if ('billing_phone' == $column ) {
312
- $this->item_data['billing']['phone'] = ($value);
313
  continue;
314
  }
315
  if ('billing_address_1' == $column ) {
@@ -348,6 +348,10 @@ class Wt_Import_Export_For_Woo_Basic_Order_Import {
348
  $this->item_data['shipping']['company'] = ($value);
349
  continue;
350
  }
 
 
 
 
351
  if ('shipping_address_1' == $column) {
352
  $this->item_data['shipping']['address_1'] = ($value);
353
  continue;
@@ -410,6 +414,16 @@ class Wt_Import_Export_For_Woo_Basic_Order_Import {
410
  $this->item_data['meta_data'][] = array('key'=>'_wt_import_key','value'=>$value);
411
  continue;
412
  }
 
 
 
 
 
 
 
 
 
 
413
  if(strstr($column, 'line_item_')){
414
  $this->item_data['order_items'][] = $this->wt_parse_line_item_field($value,$column);
415
  continue;
@@ -504,8 +518,9 @@ class Wt_Import_Export_For_Woo_Basic_Order_Import {
504
  }
505
 
506
  public function wt_parse_order_number_field($value) {
507
- $order_number_formatted = $data['order_id'];
508
- $order_number = (!empty($data['order_number']) ? $data['order_number'] : ( is_numeric($order_number_formatted) ? $order_number_formatted : 0 ) );
 
509
  if ($order_number_formatted) {
510
  // verify that this order number isn't already in use
511
  $query_args = array(
@@ -529,7 +544,12 @@ class Wt_Import_Export_For_Woo_Basic_Order_Import {
529
  // skip if order ID already exist.
530
  throw new Exception(sprintf('Skipped. %s already exists.', ucfirst($this->parent_module->module_base)) );
531
  }
532
- }
 
 
 
 
 
533
 
534
  }
535
 
@@ -1732,6 +1752,15 @@ class Wt_Import_Export_For_Woo_Basic_Order_Import {
1732
 
1733
 
1734
  $this->set_meta_data($order, $data);
 
 
 
 
 
 
 
 
 
1735
 
1736
  if($this->status_mail == true){
1737
  $order->update_status('wc-' . preg_replace('/^wc-/', '', $status));
@@ -1923,6 +1952,15 @@ class Wt_Import_Export_For_Woo_Basic_Order_Import {
1923
  $add_download_permissions = true;
1924
  }
1925
 
 
 
 
 
 
 
 
 
 
1926
  if('_wt_import_key' == $meta['key']){
1927
  $object->update_meta_data('_wt_import_key', apply_filters('wt_importing_order_reference_key', $meta['value'], $data)); // for future reference, this holds the order number which in the csv.
1928
  continue;
183
  $column = strtolower($column);
184
 
185
  if ('order_number' == $column) {
186
+ $this->item_data['order_number'] = $this->wt_parse_order_number_field($value);
187
  continue;
188
  }
189
 
309
  continue;
310
  }
311
  if ('billing_phone' == $column ) {
312
+ $this->item_data['billing']['phone'] = trim($value,'\'');
313
  continue;
314
  }
315
  if ('billing_address_1' == $column ) {
348
  $this->item_data['shipping']['company'] = ($value);
349
  continue;
350
  }
351
+ if ('shipping_phone' == $column ) {
352
+ $this->item_data['shipping']['phone'] = trim($value,'\'');
353
+ continue;
354
+ }
355
  if ('shipping_address_1' == $column) {
356
  $this->item_data['shipping']['address_1'] = ($value);
357
  continue;
414
  $this->item_data['meta_data'][] = array('key'=>'_wt_import_key','value'=>$value);
415
  continue;
416
  }
417
+
418
+ if ('meta:wf_invoice_number' == $column ) {
419
+ $this->item_data['meta_data'][] = array('key'=>'wf_invoice_number','value'=>$value);
420
+ continue;
421
+ }
422
+ if ('meta:_wf_invoice_date' == $column ) {
423
+ $this->item_data['meta_data'][] = array('key'=>'_wf_invoice_date','value'=> strtotime($value));
424
+ continue;
425
+ }
426
+
427
  if(strstr($column, 'line_item_')){
428
  $this->item_data['order_items'][] = $this->wt_parse_line_item_field($value,$column);
429
  continue;
518
  }
519
 
520
  public function wt_parse_order_number_field($value) {
521
+ $order_number_formatted = $this->order_id;
522
+ $order_number = (!empty($value) ? $value : ( is_numeric($order_number_formatted) ? $order_number_formatted : 0 ) );
523
+
524
  if ($order_number_formatted) {
525
  // verify that this order number isn't already in use
526
  $query_args = array(
544
  // skip if order ID already exist.
545
  throw new Exception(sprintf('Skipped. %s already exists.', ucfirst($this->parent_module->module_base)) );
546
  }
547
+ }
548
+ if ($order_number_formatted)
549
+ $this->item_data['order_number_formatted'] = $order_number_formatted;
550
+
551
+ if (!is_null($order_number))
552
+ return $order_number; // optional order number, for convenience
553
 
554
  }
555
 
1752
 
1753
 
1754
  $this->set_meta_data($order, $data);
1755
+
1756
+ if(isset($data['order_number']))
1757
+ update_post_meta($order_id, '_order_number', $data['order_number']);
1758
+ // was an original order number provided?
1759
+ if (!empty($data['order_number_formatted'])) {
1760
+ //Provide custom order number functionality , also allow 3rd party plugins to provide their own custom order number facilities
1761
+ do_action('woocommerce_set_order_number', $order, $data['order_number'], $data['order_number_formatted']);
1762
+ $order->add_order_note(sprintf(__("Original order #%s", 'wf_order_import_export'), $data['order_number_formatted']));
1763
+ }
1764
 
1765
  if($this->status_mail == true){
1766
  $order->update_status('wc-' . preg_replace('/^wc-/', '', $status));
1952
  $add_download_permissions = true;
1953
  }
1954
 
1955
+ if ('wf_invoice_number' == $meta['key']) {
1956
+ update_post_meta($order_id, 'wf_invoice_number',$meta['value']);
1957
+ continue;
1958
+ }
1959
+ if ('_wf_invoice_date' == $meta['key'] ) {
1960
+ update_post_meta($order_id, '_wf_invoice_date',$meta['value']);
1961
+ continue;
1962
+ }
1963
+
1964
  if('_wt_import_key' == $meta['key']){
1965
  $object->update_meta_data('_wt_import_key', apply_filters('wt_importing_order_reference_key', $meta['value'], $data)); // for future reference, this holds the order number which in the csv.
1966
  continue;
admin/modules/order/order.php CHANGED
@@ -484,6 +484,16 @@ class Wt_Import_Export_For_Woo_Basic_Order {
484
  $fields['offset']['label']=__('Skip first <i>n</i> orders');
485
  $fields['offset']['help_text']=__('Skips specified number of orders from the beginning. e.g. Enter 10 to skip first 10 orders from export.');
486
 
 
 
 
 
 
 
 
 
 
 
487
  $fields['order_status'] = array(
488
  'label' => __('Order status'),
489
  'placeholder' => __('Any status'),
@@ -499,7 +509,7 @@ class Wt_Import_Export_For_Woo_Basic_Order {
499
  'placeholder' => __('Search for a product&hellip;'),
500
  'field_name' => 'products',
501
  'sele_vals' => array(),
502
- 'help_text' => __('Export orders containing specific products. Key-in the specific product names to export orders accordingly.'),
503
  'type' => 'multi_select',
504
  'css_class' => 'wc-product-search',
505
  'validation_rule' => array('type'=>'text_arr')
484
  $fields['offset']['label']=__('Skip first <i>n</i> orders');
485
  $fields['offset']['help_text']=__('Skips specified number of orders from the beginning. e.g. Enter 10 to skip first 10 orders from export.');
486
 
487
+ $fields['orders'] = array(
488
+ 'label' => __('Order IDs'),
489
+ 'placeholder' => __('Enter order IDs separated by ,'),
490
+ 'field_name' => 'orders',
491
+ 'sele_vals' => '',
492
+ 'help_text' => __('Enter order IDs separated by comma to export specific orders.'),
493
+ 'type' => 'text',
494
+ 'css_class' => '',
495
+ );
496
+
497
  $fields['order_status'] = array(
498
  'label' => __('Order status'),
499
  'placeholder' => __('Any status'),
509
  'placeholder' => __('Search for a product&hellip;'),
510
  'field_name' => 'products',
511
  'sele_vals' => array(),
512
+ 'help_text' => __('Export orders containing specific products. Enter the product name or SKU or ID to export orders containing specified products.'),
513
  'type' => 'multi_select',
514
  'css_class' => 'wc-product-search',
515
  'validation_rule' => array('type'=>'text_arr')
admin/views/admin-settings-advanced.php CHANGED
@@ -14,6 +14,9 @@ if ( ! defined( 'WPINC' ) ) {
14
  Wt_Import_Export_For_Woo_Basic_Common_Helper::field_generator($fields, $advanced_settings);
15
  ?>
16
  </table>
 
 
 
17
  <?php
18
  include "admin-settings-save-button.php";
19
  ?>
14
  Wt_Import_Export_For_Woo_Basic_Common_Helper::field_generator($fields, $advanced_settings);
15
  ?>
16
  </table>
17
+ <?php
18
+ include "admin-settings-pre-saved-templates.php";
19
+ ?>
20
  <?php
21
  include "admin-settings-save-button.php";
22
  ?>
admin/views/admin-settings-pre-saved-templates.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if (!defined('WPINC')) {
3
+ die;
4
+ }
5
+
6
+ global $wpdb;
7
+ $tb = $wpdb->prefix . Wt_Import_Export_For_Woo_Basic::$template_tb;
8
+ $val = $wpdb->get_results("SELECT * FROM $tb ORDER BY id DESC", ARRAY_A);
9
+ $pre_saved_templates = ($val ? $val : array());
10
+ if (!empty($pre_saved_templates)):
11
+ ?>
12
+
13
+
14
+ <style>
15
+ .wt_ier_template_list_table {
16
+ width: 50%;
17
+ border-spacing: 0px;
18
+ border-collapse: collapse;
19
+ margin-top: 15px;
20
+ }
21
+ .wt_ier_template_list_table th {
22
+ padding: 5px 5px;
23
+ background: #f9f9f9;
24
+ color: #333;
25
+ text-align: center;
26
+ border: solid 1px #e1e1e1;
27
+ font-weight: bold;
28
+ }
29
+ .wt_ier_template_list_table td {
30
+ padding: 5px 5px;
31
+ background: #fff;
32
+ color: #000;
33
+ text-align: center;
34
+ border: solid 1px #e1e1e1;
35
+ }
36
+ </style>
37
+ <div class="wt-ier-import-export-templates">
38
+ <h3><?php _e('Import export pre-saved templates'); ?></h3>
39
+ <div class="wt_ier_template_list_table_data">
40
+ <table class="wt_ier_template_list_table">
41
+ <thead>
42
+ <tr>
43
+ <th style="width:50px;">#</th>
44
+ <th><?php _e('Name'); ?></th>
45
+ <th><?php _e('Item'); ?></th>
46
+ <th><?php _e('Type'); ?></th>
47
+ <th><?php _e('Action'); ?></th>
48
+ </tr>
49
+ </thead>
50
+ <tbody>
51
+ <?php
52
+ $num = 1;
53
+ foreach ($pre_saved_templates as $key => $value):
54
+ ?>
55
+ <tr data-row-id="<?php echo absint($value['id']); ?>">
56
+ <td><?php echo $num; ?></td>
57
+ <td><?php echo $value['name']; ?></td>
58
+ <td><?php echo $value['item_type']; ?></td>
59
+ <td><?php echo $value['template_type']; ?></td>
60
+ <td><button data-id="<?php echo absint($value['id']); ?>" title="<?php _e('Delete'); ?>" class="button button-secondary wt_ier_delete_template"><span><?php _e('Delete'); ?></span></button></td>
61
+ </tr>
62
+ <?php
63
+ $num++;
64
+ endforeach;
65
+ ?>
66
+ </tbody>
67
+ </table>
68
+ </div>
69
+ </div>
70
+ <?php endif; ?>
admin/views/market.php CHANGED
@@ -8,7 +8,7 @@ if (!defined('ABSPATH')) {
8
  <div class="ier-premium-upgrade">
9
  <div class="wt-ier-sidebar-wrapper wt-ier-p-5">
10
  <img src="<?php echo WT_O_IEW_PLUGIN_URL; ?>assets/images/upgrade/crown.svg" class="wt-ier-sidebar-img">
11
- <h3 class="wt-ier-sidebar-title wt-ier-center"><?php _e('Do not leave any data behind!<br>Upgrade to pro.');?></h3>
12
  <div class="wt-ier-row">
13
  <div class="wt-ier-col-12 wt-ier-col-md-6 wt-ier-border-md-right">
14
  <div class="wt-ier-flex wt-ier-v-center ">
8
  <div class="ier-premium-upgrade">
9
  <div class="wt-ier-sidebar-wrapper wt-ier-p-5">
10
  <img src="<?php echo WT_O_IEW_PLUGIN_URL; ?>assets/images/upgrade/crown.svg" class="wt-ier-sidebar-img">
11
+ <h3 class="wt-ier-sidebar-title wt-ier-center"><?php _e('Migrate all your WooCommerce data in a go!<br>Upgrade to pro.');?></h3>
12
  <div class="wt-ier-row">
13
  <div class="wt-ier-col-12 wt-ier-col-md-6 wt-ier-border-md-right">
14
  <div class="wt-ier-flex wt-ier-v-center ">
includes/class-wt-import-export-for-woo.php CHANGED
@@ -80,7 +80,7 @@ class Wt_Import_Export_For_Woo_Basic {
80
  if ( defined( 'WT_O_IEW_VERSION' ) ) {
81
  $this->version = WT_O_IEW_VERSION;
82
  } else {
83
- $this->version = '2.0.8';
84
  }
85
  $this->plugin_name = 'wt-import-export-for-woo-basic';
86
 
@@ -193,6 +193,7 @@ class Wt_Import_Export_For_Woo_Basic {
193
  {
194
  //ajax hook for saving settings, Includes plugin main settings and settings from module
195
  $this->loader->add_action('wp_ajax_wt_iew_save_settings_basic',$this->plugin_admin,'save_settings');
 
196
 
197
  /* Loading admin modules */
198
  $this->plugin_admin->admin_modules();
80
  if ( defined( 'WT_O_IEW_VERSION' ) ) {
81
  $this->version = WT_O_IEW_VERSION;
82
  } else {
83
+ $this->version = '2.0.9';
84
  }
85
  $this->plugin_name = 'wt-import-export-for-woo-basic';
86
 
193
  {
194
  //ajax hook for saving settings, Includes plugin main settings and settings from module
195
  $this->loader->add_action('wp_ajax_wt_iew_save_settings_basic',$this->plugin_admin,'save_settings');
196
+ $this->loader->add_action('wp_ajax_wt_iew_delete_template',$this->plugin_admin,'delete_template');
197
 
198
  /* Loading admin modules */
199
  $this->plugin_admin->admin_modules();
order-import-export-for-woocommerce.php CHANGED
@@ -6,9 +6,9 @@ Plugin URI: https://wordpress.org/plugins/order-import-export-for-woocommerce/
6
  Description: Export and Import Order detail including line items, From and To your WooCommerce Store.
7
  Author: WebToffee
8
  Author URI: https://www.webtoffee.com/product/woocommerce-order-coupon-subscription-export-import/
9
- Version: 2.0.8
10
  Text Domain: order-import-export-for-woocommerce
11
- WC tested up to: 5.5
12
  License: GPLv3
13
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
14
  */
@@ -45,7 +45,7 @@ if ( !defined( 'WT_IEW_DEBUG_BASIC_TROUBLESHOOT' ) ) {
45
  * Start at version 1.0.0 and use SemVer - https://semver.org
46
  * Rename this for your plugin and update it as you release new versions.
47
  */
48
- define( 'WT_O_IEW_VERSION', '2.0.8' );
49
 
50
  /**
51
  * The code that runs during plugin activation.
@@ -118,6 +118,10 @@ register_deactivation_hook( __FILE__, 'deactivate_wt_import_export_for_woo_basic
118
  */
119
  require plugin_dir_path( __FILE__ ) . 'includes/class-wt-import-export-for-woo.php';
120
 
 
 
 
 
121
  /**
122
  * Begins execution of the plugin.
123
  *
@@ -155,7 +159,7 @@ function wt_oiew_plugin_action_links_basic_order( $links ) {
155
  '<a href="' . admin_url( 'admin.php?page=wt_import_export_for_woo_basic' ) . '">' . __( 'Settings' ) . '</a>',
156
  '<a href="https://www.webtoffee.com/order-coupon-subscription-export-import-plugin-woocommerce-user-guide/" target="_blank">' . __( 'Documentation' ) . '</a>',
157
  '<a href="https://wordpress.org/support/plugin/order-import-export-for-woocommerce/" target="_blank">' . __( 'Support' ) . '</a>',
158
- '<a href="https://www.webtoffee.com/product/woocommerce-order-coupon-subscription-export-import/" target="_blank" style="color:#3db634;">' . __( 'Premium Upgrade' ) . '</a>',
159
  );
160
  if ( array_key_exists( 'deactivate', $links ) ) {
161
  $links[ 'deactivate' ] = str_replace( '<a', '<a class="wforderimpexp-deactivate-link"', $links[ 'deactivate' ] );
6
  Description: Export and Import Order detail including line items, From and To your WooCommerce Store.
7
  Author: WebToffee
8
  Author URI: https://www.webtoffee.com/product/woocommerce-order-coupon-subscription-export-import/
9
+ Version: 2.0.9
10
  Text Domain: order-import-export-for-woocommerce
11
+ WC tested up to: 5.6
12
  License: GPLv3
13
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
14
  */
45
  * Start at version 1.0.0 and use SemVer - https://semver.org
46
  * Rename this for your plugin and update it as you release new versions.
47
  */
48
+ define( 'WT_O_IEW_VERSION', '2.0.9' );
49
 
50
  /**
51
  * The code that runs during plugin activation.
118
  */
119
  require plugin_dir_path( __FILE__ ) . 'includes/class-wt-import-export-for-woo.php';
120
 
121
+ $advanced_settings = get_option('wt_iew_advanced_settings', array());
122
+ $ier_get_max_execution_time = (isset($advanced_settings['wt_iew_maximum_execution_time']) && $advanced_settings['wt_iew_maximum_execution_time'] != '') ? $advanced_settings['wt_iew_maximum_execution_time'] : ini_get('max_execution_time');
123
+ set_time_limit($ier_get_max_execution_time);
124
+
125
  /**
126
  * Begins execution of the plugin.
127
  *
159
  '<a href="' . admin_url( 'admin.php?page=wt_import_export_for_woo_basic' ) . '">' . __( 'Settings' ) . '</a>',
160
  '<a href="https://www.webtoffee.com/order-coupon-subscription-export-import-plugin-woocommerce-user-guide/" target="_blank">' . __( 'Documentation' ) . '</a>',
161
  '<a href="https://wordpress.org/support/plugin/order-import-export-for-woocommerce/" target="_blank">' . __( 'Support' ) . '</a>',
162
+ '<a href="https://www.webtoffee.com/product/woocommerce-order-coupon-subscription-export-import/?utm_source=free_plugin_listing&utm_medium=order_imp_exp_basic&utm_campaign=Order_Import_Export&utm_content=' . WT_O_IEW_VERSION . '" style="color:#3db634;">' . __('Premium Upgrade') . '</a>'
163
  );
164
  if ( array_key_exists( 'deactivate', $links ) ) {
165
  $links[ 'deactivate' ] = str_replace( '<a', '<a class="wforderimpexp-deactivate-link"', $links[ 'deactivate' ] );
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: order export, order import, woocommerce, csv, coupon, woocommerce export o
5
  Requires at least: 3.0.1
6
  Tested up to: 5.8
7
  Requires PHP: 5.6
8
- Stable tag: 2.0.8
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
11
 
@@ -29,7 +29,7 @@ The following are functionalities offered by the basic version of the plugin.
29
  &#128312; Supports various export filters (order status, product, coupon, customer, date range)
30
  &#128312; Export Subscription orders to a CSV file(Premium Feature).
31
  &#128312; Import Subscription orders from a CSV file(Premium Feature).
32
- &#128312; Tested OK with WooCommerce 5.5
33
  &#128312; Tested OK with WP 5.8
34
  &#128312; Tested OK with PHP 8.0
35
 
@@ -45,6 +45,11 @@ Additional features that will help you in the CSV export and import process:
45
 
46
  More information about the setup of the plugin and a sample CSV that is taken as input by the plugin are given in the <a rel="nofollow" href="https://www.webtoffee.com/order-coupon-subscription-export-import-plugin-woocommerce-user-guide/">free order export import plugin</a> setup guide.
47
 
 
 
 
 
 
48
  <blockquote>
49
 
50
 
@@ -220,6 +225,11 @@ Yes.
220
 
221
  == Changelog ==
222
 
 
 
 
 
 
223
  = 2.0.8 =
224
  * Fixed: Grant download permission issue on import
225
  * Fixed: Trash orders getting exported with coupon filter applied
@@ -451,8 +461,8 @@ Yes.
451
 
452
  == Upgrade Notice ==
453
 
454
- = 2.0.8 =
455
- * Fixed: Grant download permission issue on import
456
- * Fixed: Trash orders getting exported with coupon filter applied
457
- * WC 5.5 tested OK
458
- * WP 5.8 tested OK
5
  Requires at least: 3.0.1
6
  Tested up to: 5.8
7
  Requires PHP: 5.6
8
+ Stable tag: 2.0.9
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
11
 
29
  &#128312; Supports various export filters (order status, product, coupon, customer, date range)
30
  &#128312; Export Subscription orders to a CSV file(Premium Feature).
31
  &#128312; Import Subscription orders from a CSV file(Premium Feature).
32
+ &#128312; Tested OK with WooCommerce 5.6
33
  &#128312; Tested OK with WP 5.8
34
  &#128312; Tested OK with PHP 8.0
35
 
45
 
46
  More information about the setup of the plugin and a sample CSV that is taken as input by the plugin are given in the <a rel="nofollow" href="https://www.webtoffee.com/order-coupon-subscription-export-import-plugin-woocommerce-user-guide/">free order export import plugin</a> setup guide.
47
 
48
+ = Compatible plugins =
49
+
50
+ * [Sequential Order Number for WooCommerce by WebToffee](https://wordpress.org/plugins/wt-woocommerce-sequential-order-numbers/)
51
+ * [WooCommerce PDF Invoices, Packing Slips, Delivery Notes & Shipping Labels by WebToffee](https://wordpress.org/plugins/print-invoices-packing-slip-labels-for-woocommerce/)
52
+
53
  <blockquote>
54
 
55
 
225
 
226
  == Changelog ==
227
 
228
+ = 2.0.9 =
229
+ * Added support for shipping phone number import export
230
+ * Added import export compatibility for WooCommerce PDF Invoices, Packing Slips, Delivery Notes & Shipping Labels plugin by WebToffee
231
+ * Added import export compatibility for Sequential Order Number for WooCommerce plugin by WebToffee
232
+ * WC 5.6 tested OK
233
  = 2.0.8 =
234
  * Fixed: Grant download permission issue on import
235
  * Fixed: Trash orders getting exported with coupon filter applied
461
 
462
  == Upgrade Notice ==
463
 
464
+ = 2.0.9 =
465
+ * Added support for shipping phone number import export
466
+ * Added import export compatibility for WooCommerce PDF Invoices, Packing Slips, Delivery Notes & Shipping Labels plugin by WebToffee
467
+ * Added import export compatibility for Sequential Order Number for WooCommerce plugin by WebToffee
468
+ * WC 5.6 tested OK