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 | 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 +30 -0
- admin/classes/class-csvreader.php +4 -4
- admin/js/wt-import-export-for-woo-admin.js +43 -0
- admin/modules/export/assets/js/main.js +12 -2
- admin/modules/export/export.php +1 -1
- admin/modules/history/history.php +1 -1
- admin/modules/history/views/_history_list.php +8 -1
- admin/modules/import/assets/js/main.js +10 -2
- admin/modules/import/import.php +12 -1
- admin/modules/order/data/data-order-post-columns.php +14 -3
- admin/modules/order/data/data-wf-post-subscription-columns.php +1 -0
- admin/modules/order/data/data-wf-xml-default-meta.php +1 -0
- admin/modules/order/data/data/data-wf-reserved-fields-pair.php +71 -56
- admin/modules/order/export/export.php +21 -1
- admin/modules/order/import/import.php +43 -5
- admin/modules/order/order.php +11 -1
- admin/views/admin-settings-advanced.php +3 -0
- admin/views/admin-settings-pre-saved-templates.php +70 -0
- admin/views/market.php +1 -1
- includes/class-wt-import-export-for-woo.php +2 -1
- order-import-export-for-woocommerce.php +8 -4
- readme.txt +17 -7
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 |
-
|
78 |
-
|
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 |
-
|
162 |
-
|
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'),
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
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 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
'
|
9 |
-
'
|
10 |
-
'
|
11 |
-
'
|
12 |
-
'
|
13 |
-
'
|
14 |
-
'
|
15 |
-
'
|
16 |
-
'
|
17 |
-
'
|
18 |
-
'
|
|
|
|
|
|
|
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 |
-
'
|
44 |
-
'
|
45 |
-
'
|
46 |
-
'
|
47 |
-
'
|
48 |
-
'
|
49 |
-
'
|
50 |
-
'
|
51 |
-
'
|
52 |
-
'
|
53 |
-
'
|
54 |
-
'
|
55 |
-
'
|
56 |
-
'
|
57 |
-
'
|
58 |
-
'
|
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 = $
|
508 |
-
$order_number = (!empty($
|
|
|
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…'),
|
500 |
'field_name' => 'products',
|
501 |
'sele_vals' => array(),
|
502 |
-
'help_text' => __('Export orders containing specific products.
|
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…'),
|
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('
|
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.
|
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.
|
10 |
Text Domain: order-import-export-for-woocommerce
|
11 |
-
WC tested up to: 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.
|
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
|
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.
|
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 |
🔸 Supports various export filters (order status, product, coupon, customer, date range)
|
30 |
🔸 Export Subscription orders to a CSV file(Premium Feature).
|
31 |
🔸 Import Subscription orders from a CSV file(Premium Feature).
|
32 |
-
🔸 Tested OK with WooCommerce 5.
|
33 |
🔸 Tested OK with WP 5.8
|
34 |
🔸 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.
|
455 |
-
*
|
456 |
-
*
|
457 |
-
*
|
458 |
-
*
|
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 |
🔸 Supports various export filters (order status, product, coupon, customer, date range)
|
30 |
🔸 Export Subscription orders to a CSV file(Premium Feature).
|
31 |
🔸 Import Subscription orders from a CSV file(Premium Feature).
|
32 |
+
🔸 Tested OK with WooCommerce 5.6
|
33 |
🔸 Tested OK with WP 5.8
|
34 |
🔸 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
|