WooCommerce – Store Exporter - Version 1.9.4

Version Description

  • Added: Variation Description built into Description Product export field (thanks Kelvin)
Download this release

Release Info

Developer visser
Plugin Icon 128x128 WooCommerce – Store Exporter
Version 1.9.4
Comparing to
See all releases

Code changes from version 1.9.2 to 1.9.4

exporter.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WooCommerce - Store Exporter
4
  Plugin URI: http://www.visser.com.au/woocommerce/plugins/exporter/
5
  Description: Export store details out of WooCommerce into simple formatted files (e.g. CSV, XML, Excel formats including XLS and XLSX, etc.)
6
- Version: 1.9.2
7
  Author: Visser Labs
8
  Author URI: http://www.visser.com.au/about/
9
  License: GPL2
3
  Plugin Name: WooCommerce - Store Exporter
4
  Plugin URI: http://www.visser.com.au/woocommerce/plugins/exporter/
5
  Description: Export store details out of WooCommerce into simple formatted files (e.g. CSV, XML, Excel formats including XLS and XLSX, etc.)
6
+ Version: 1.9.4
7
  Author: Visser Labs
8
  Author URI: http://www.visser.com.au/about/
9
  License: GPL2
includes/brand.php CHANGED
@@ -69,13 +69,13 @@ function woo_ce_get_brand_fields( $format = 'full' ) {
69
  */
70
 
71
  // Drop in our content filters here
72
- add_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
73
 
74
  // Allow Plugin/Theme authors to add support for additional columns
75
  $fields = apply_filters( 'woo_ce_' . $export_type . '_fields', $fields, $export_type );
76
 
77
  // Remove our content filters here to play nice with other Plugins
78
- remove_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
79
 
80
  switch( $format ) {
81
 
69
  */
70
 
71
  // Drop in our content filters here
72
+ add_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
73
 
74
  // Allow Plugin/Theme authors to add support for additional columns
75
  $fields = apply_filters( 'woo_ce_' . $export_type . '_fields', $fields, $export_type );
76
 
77
  // Remove our content filters here to play nice with other Plugins
78
+ remove_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
79
 
80
  switch( $format ) {
81
 
includes/category.php CHANGED
@@ -69,13 +69,13 @@ function woo_ce_get_category_fields( $format = 'full' ) {
69
  */
70
 
71
  // Drop in our content filters here
72
- add_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
73
 
74
  // Allow Plugin/Theme authors to add support for additional columns
75
  $fields = apply_filters( 'woo_ce_' . $export_type . '_fields', $fields, $export_type );
76
 
77
  // Remove our content filters here to play nice with other Plugins
78
- remove_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
79
 
80
  if( $remember = woo_ce_get_option( $export_type . '_fields', array() ) ) {
81
  $remember = maybe_unserialize( $remember );
69
  */
70
 
71
  // Drop in our content filters here
72
+ add_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
73
 
74
  // Allow Plugin/Theme authors to add support for additional columns
75
  $fields = apply_filters( 'woo_ce_' . $export_type . '_fields', $fields, $export_type );
76
 
77
  // Remove our content filters here to play nice with other Plugins
78
+ remove_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
79
 
80
  if( $remember = woo_ce_get_option( $export_type . '_fields', array() ) ) {
81
  $remember = maybe_unserialize( $remember );
includes/coupon.php CHANGED
@@ -101,13 +101,13 @@ function woo_ce_get_coupon_fields( $format = 'full' ) {
101
  */
102
 
103
  // Drop in our content filters here
104
- add_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
105
 
106
  // Allow Plugin/Theme authors to add support for additional columns
107
  $fields = apply_filters( 'woo_ce_' . $export_type . '_fields', $fields, $export_type );
108
 
109
  // Remove our content filters here to play nice with other Plugins
110
- remove_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
111
 
112
  switch( $format ) {
113
 
101
  */
102
 
103
  // Drop in our content filters here
104
+ add_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
105
 
106
  // Allow Plugin/Theme authors to add support for additional columns
107
  $fields = apply_filters( 'woo_ce_' . $export_type . '_fields', $fields, $export_type );
108
 
109
  // Remove our content filters here to play nice with other Plugins
110
+ remove_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
111
 
112
  switch( $format ) {
113
 
includes/customer.php CHANGED
@@ -194,13 +194,13 @@ function woo_ce_get_customer_fields( $format = 'full' ) {
194
  */
195
 
196
  // Drop in our content filters here
197
- add_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
198
 
199
  // Allow Plugin/Theme authors to add support for additional columns
200
  $fields = apply_filters( 'woo_ce_' . $export_type . '_fields', $fields, $export_type );
201
 
202
  // Remove our content filters here to play nice with other Plugins
203
- remove_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
204
 
205
  switch( $format ) {
206
 
194
  */
195
 
196
  // Drop in our content filters here
197
+ add_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
198
 
199
  // Allow Plugin/Theme authors to add support for additional columns
200
  $fields = apply_filters( 'woo_ce_' . $export_type . '_fields', $fields, $export_type );
201
 
202
  // Remove our content filters here to play nice with other Plugins
203
+ remove_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
204
 
205
  switch( $format ) {
206
 
includes/formatting.php CHANGED
@@ -80,7 +80,7 @@ function woo_ce_attribute_escape( $safe_text = '', $text = '' ) {
80
 
81
  }
82
 
83
- function woo_ce_sanitize_key( $key ) {
84
 
85
  // Limit length of key to 48 characters
86
  $key = substr( $key, 0, 48 );
80
 
81
  }
82
 
83
+ function woo_ce_filter_sanitize_key( $key ) {
84
 
85
  // Limit length of key to 48 characters
86
  $key = substr( $key, 0, 48 );
includes/functions.php CHANGED
@@ -711,7 +711,7 @@ function woo_ce_export_dataset( $export_type = null, &$output = null ) {
711
  add_action( 'shutdown', 'woo_ce_fatal_error' );
712
 
713
  // Drop in our content filters here
714
- add_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
715
  add_filter( 'attribute_escape', 'woo_ce_attribute_escape', 10, 2 );
716
 
717
  switch( $export_type ) {
@@ -907,7 +907,7 @@ function woo_ce_export_dataset( $export_type = null, &$output = null ) {
907
  }
908
 
909
  // Remove our content filters here to play nice with other Plugins
910
- remove_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
911
  remove_filter( 'attribute_escape', 'woo_ce_attribute_escape' );
912
 
913
  // Remove our fatal error notice so not to conflict with the CRON or scheduled export engine
@@ -1315,6 +1315,13 @@ function woo_ce_modules_list( $module_status = false ) {
1315
  'slug' => 'woocommerce-pdf-invoices-packing-slips',
1316
  'class' => 'WooCommerce_PDF_Invoices'
1317
  );
 
 
 
 
 
 
 
1318
  $modules[] = array(
1319
  'name' => 'checkout_manager',
1320
  'title' => __( 'WooCommerce Checkout Manager & WooCommerce Checkout Manager Pro', 'woocommerce-exporter' ),
@@ -1856,6 +1863,80 @@ function woo_ce_modules_list( $module_status = false ) {
1856
  'url' => 'http://www.wpbackoffice.com/plugins/woocommerce-incremental-product-quantities/',
1857
  'function' => 'IPQ'
1858
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1859
 
1860
  // Ship to Multiple Addresses - WC_Ship_Multiple
1861
 
711
  add_action( 'shutdown', 'woo_ce_fatal_error' );
712
 
713
  // Drop in our content filters here
714
+ add_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
715
  add_filter( 'attribute_escape', 'woo_ce_attribute_escape', 10, 2 );
716
 
717
  switch( $export_type ) {
907
  }
908
 
909
  // Remove our content filters here to play nice with other Plugins
910
+ remove_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
911
  remove_filter( 'attribute_escape', 'woo_ce_attribute_escape' );
912
 
913
  // Remove our fatal error notice so not to conflict with the CRON or scheduled export engine
1315
  'slug' => 'woocommerce-pdf-invoices-packing-slips',
1316
  'class' => 'WooCommerce_PDF_Invoices'
1317
  );
1318
+ $modules[] = array(
1319
+ 'name' => 'pdf_invoices_packing_slips_pro',
1320
+ 'title' => __( 'WooCommerce PDF Invoices & Packing Slips Professional', 'woocommerce-exporter' ),
1321
+ 'description' => __( 'Extended functionality for the WooCommerce PDF Invoices & Packing Slips Plugin.', 'woocommerce-exporter' ),
1322
+ 'url' => 'https://wpovernight.com/downloads/woocommerce-pdf-invoices-packing-slips-professional/',
1323
+ 'class' => 'WooCommerce_PDF_IPS_Pro'
1324
+ );
1325
  $modules[] = array(
1326
  'name' => 'checkout_manager',
1327
  'title' => __( 'WooCommerce Checkout Manager & WooCommerce Checkout Manager Pro', 'woocommerce-exporter' ),
1863
  'url' => 'http://www.wpbackoffice.com/plugins/woocommerce-incremental-product-quantities/',
1864
  'function' => 'IPQ'
1865
  );
1866
+ $modules[] = array(
1867
+ 'name' => 'wc_chained_products',
1868
+ 'title' => __( 'WooCommerce Chained Products', 'woocommerce-exporter' ),
1869
+ 'description' => __( 'Create discounted product bundles and combo packs and boost your sales. Automatically add linked / related products to order.', 'woocommerce-exporter' ),
1870
+ 'url' => 'https://woocommerce.com/products/chained-products/',
1871
+ 'class' => 'WC_Chained_Products'
1872
+ );
1873
+ $modules[] = array(
1874
+ 'name' => 'wc_sample',
1875
+ 'title' => __( 'WooCommerce Sample', 'woocommerce-exporter' ),
1876
+ 'description' => __( 'Include Get Sample Button in products of your online store.', 'woocommerce-exporter' ),
1877
+ 'url' => 'https://wordpress.org/plugins/woocommerce-sample/',
1878
+ 'slug' => 'woocommerce-sample',
1879
+ 'class' => 'WooCommerce_Sample'
1880
+ );
1881
+ $modules[] = array(
1882
+ 'name' => 'wc_product_importer_deluxe',
1883
+ 'title' => __( 'WooCommerce Product Importer Deluxe', 'woocommerce-exporter' ),
1884
+ 'description' => __( 'Bulk import hundreds, even thousands of linked Products and Product images into your WooCommerce store.', 'woocommerce-exporter' ),
1885
+ 'url' => 'https://www.visser.com.au/plugins/product-importer-deluxe/',
1886
+ 'function' => 'woo_pd_i18n'
1887
+ );
1888
+ $modules[] = array(
1889
+ 'name' => 'wc_ag_barcode_pro',
1890
+ 'title' => __( 'AG WooCommerce Barcode / ISBN & Amazon ASIN - PRO', 'woocommerce-exporter' ),
1891
+ 'description' => __( 'A plugin to add a barcode, ISBN & Amazon ASIN fields to WooCommerce.', 'woocommerce-exporter' ),
1892
+ 'url' => 'https://www.weareag.co.uk/product/woocommerce-barcodeisbn-amazon-asin-pro/',
1893
+ 'function' => 'AGD_load_updater'
1894
+ );
1895
+ $modules[] = array(
1896
+ 'name' => 'wc_nm_personalizedproduct',
1897
+ 'title' => __( 'N-Media WooCommerce Personalized Product Meta Manager', 'woocommerce-exporter' ),
1898
+ 'description' => __( 'WooCommerce Personalized Product Option Plugin allows site admin to add unlimited input fields on product page.', 'woocommerce-exporter' ),
1899
+ 'url' => 'http://najeebmedia.com/wordpress-plugin/woocommerce-personalized-product-option/',
1900
+ 'class' => 'NM_PersonalizedProduct'
1901
+ );
1902
+ $modules[] = array(
1903
+ 'name' => 'wc_appointments',
1904
+ 'title' => __( 'WooCommerce Appointments', 'woocommerce-exporter' ),
1905
+ 'description' => __( 'Setup appointable products for WooCommerce.', 'woocommerce-exporter' ),
1906
+ 'url' => 'http://www.bizzthemes.com/plugins/woocommerce-appointments/',
1907
+ 'class' => 'WC_Appointments'
1908
+ );
1909
+ $modules[] = array(
1910
+ 'name' => 'seo_squirrly',
1911
+ 'title' => __( 'SEO Squirrly', 'woocommerce-exporter' ),
1912
+ 'description' => __( 'SEO Squirrly is for the NON-SEO experts. Get Excellent SEO with Better Content, Ranking and Analytics. For Both Humans and Search Bots.', 'woocommerce-exporter' ),
1913
+ 'url' => 'https://wordpress.org/plugins/squirrly-seo/',
1914
+ 'slug' => 'squirrly-seo',
1915
+ 'function' => 'sq_phpError'
1916
+ );
1917
+ $modules[] = array(
1918
+ 'name' => 'tickera',
1919
+ 'title' => __( 'Tickera', 'woocommerce-exporter' ),
1920
+ 'description' => __( 'Simple event ticketing system.', 'woocommerce-exporter' ),
1921
+ 'url' => 'https://tickera.com/',
1922
+ 'slug' => 'tickera',
1923
+ 'class' => 'TC'
1924
+ );
1925
+ $modules[] = array(
1926
+ 'name' => 'wc_measurement_price_calc',
1927
+ 'title' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1928
+ 'description' => __( 'WooCommerce plugin to provide price and quantity calculations based on product measurements.', 'woocommerce-exporter' ),
1929
+ 'url' => 'http://www.woocommerce.com/products/measurement-price-calculator/',
1930
+ 'function' => 'init_woocommerce_measurement_price_calculator'
1931
+ );
1932
+ $modules[] = array(
1933
+ 'name' => 'wc_stripe',
1934
+ 'title' => __( 'WooCommerce Stripe Payment Gateway', 'woocommerce-exporter' ),
1935
+ 'description' => __( 'Take credit card payments on your store using Stripe.', 'woocommerce-exporter' ),
1936
+ 'url' => 'https://wordpress.org/plugins/woocommerce-gateway-stripe/',
1937
+ 'slug' => 'woocommerce-gateway-stripe',
1938
+ 'class' => 'WC_Stripe'
1939
+ );
1940
 
1941
  // Ship to Multiple Addresses - WC_Ship_Multiple
1942
 
includes/order-extend.php CHANGED
@@ -3,13 +3,18 @@
3
  function woo_ce_extend_order_fields( $fields = array() ) {
4
 
5
  // Product Add-ons - http://www.woothemes.com/
6
- if( class_exists( 'Product_Addon_Admin' ) || class_exists( 'Product_Addon_Display' ) ) {
 
 
 
 
 
7
  $product_addons = woo_ce_get_product_addons();
8
  if( !empty( $product_addons ) ) {
9
  foreach( $product_addons as $product_addon ) {
10
  if( !empty( $product_addon ) ) {
11
  $fields[] = array(
12
- 'name' => sprintf( 'order_items_product_addon_%s', $product_addon->post_name ),
13
  'label' => sprintf( __( 'Order Items: %s', 'woocommerce-exporter' ), ucfirst( $product_addon->post_title ) ),
14
  'hover' => sprintf( apply_filters( 'woo_ce_extend_order_fields_product_addons', '%s: %s' ), __( 'Product Add-ons', 'woocommerce-exporter' ), $product_addon->form_title )
15
  );
@@ -21,7 +26,7 @@ function woo_ce_extend_order_fields( $fields = array() ) {
21
 
22
  // WooCommerce Sequential Order Numbers - http://www.skyverge.com/blog/woocommerce-sequential-order-numbers/
23
  // Sequential Order Numbers Pro - http://www.woothemes.com/products/sequential-order-numbers-pro/
24
- if( class_exists( 'WC_Seq_Order_Number' ) || class_exists( 'WC_Seq_Order_Number_Pro' ) ) {
25
  $fields[] = array(
26
  'name' => 'order_number',
27
  'label' => __( 'Order Number', 'woocommerce-exporter' )
@@ -830,6 +835,86 @@ function woo_ce_extend_order_fields( $fields = array() ) {
830
  );
831
  }
832
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
833
  // WooCommerce Custom Fields - http://www.rightpress.net/woocommerce-custom-fields
834
  if( woo_ce_detect_export_plugin( 'wc_customfields' ) ) {
835
  if( get_option( 'wccf_migrated_to_20' ) ) {
@@ -1168,19 +1253,53 @@ function woo_ce_extend_order_items_fields( $fields = array() ) {
1168
  // WooCommerce Easy Bookings - https://wordpress.org/plugins/woocommerce-easy-booking-system/
1169
  if( woo_ce_detect_export_plugin( 'wc_easybooking' ) ) {
1170
  $fields[] = array(
1171
- 'name' => 'order_items_start_date',
1172
  'label' => __( 'Order Items: Start', 'woocommerce-exporter' ),
1173
  'hover' => __( 'WooCommerce Easy Bookings', 'woocommerce-exporter' )
1174
  );
1175
  $fields[] = array(
1176
- 'name' => 'order_items_end_date',
1177
  'label' => __( 'Order Items: End', 'woocommerce-exporter' ),
1178
  'hover' => __( 'WooCommerce Easy Bookings', 'woocommerce-exporter' )
1179
  );
1180
  }
1181
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1182
  if( apply_filters( 'woo_ce_enable_product_attributes', true ) ) {
1183
- // Attributes
1184
  if( $attributes = woo_ce_get_product_attributes() ) {
1185
  foreach( $attributes as $attribute ) {
1186
  $attribute->attribute_label = trim( $attribute->attribute_label );
3
  function woo_ce_extend_order_fields( $fields = array() ) {
4
 
5
  // Product Add-ons - http://www.woothemes.com/
6
+ if( woo_ce_detect_export_plugin( 'product_addons' ) ) {
7
+ $fields[] = array(
8
+ 'name' => 'order_items_product_addons_summary',
9
+ 'label' => __( 'Order Items: Product Add-ons', 'woocommerce-exporter' ),
10
+ 'hover' => sprintf( apply_filters( 'woo_ce_extend_order_fields_product_addons_summary', '%s' ), __( 'Product Add-ons', 'woocommerce-exporter' ) )
11
+ );
12
  $product_addons = woo_ce_get_product_addons();
13
  if( !empty( $product_addons ) ) {
14
  foreach( $product_addons as $product_addon ) {
15
  if( !empty( $product_addon ) ) {
16
  $fields[] = array(
17
+ 'name' => sprintf( 'order_items_product_addon_%s', sanitize_key( $product_addon->post_name ) ),
18
  'label' => sprintf( __( 'Order Items: %s', 'woocommerce-exporter' ), ucfirst( $product_addon->post_title ) ),
19
  'hover' => sprintf( apply_filters( 'woo_ce_extend_order_fields_product_addons', '%s: %s' ), __( 'Product Add-ons', 'woocommerce-exporter' ), $product_addon->form_title )
20
  );
26
 
27
  // WooCommerce Sequential Order Numbers - http://www.skyverge.com/blog/woocommerce-sequential-order-numbers/
28
  // Sequential Order Numbers Pro - http://www.woothemes.com/products/sequential-order-numbers-pro/
29
+ if( woo_ce_detect_export_plugin( 'seq' ) || woo_ce_detect_export_plugin( 'seq_pro' ) ) {
30
  $fields[] = array(
31
  'name' => 'order_number',
32
  'label' => __( 'Order Number', 'woocommerce-exporter' )
835
  );
836
  }
837
 
838
+ // Tickera - https://tickera.com/
839
+ if( woo_ce_detect_export_plugin( 'tickera' ) ) {
840
+ $fields[] = array(
841
+ 'name' => 'ticket_id',
842
+ 'label' => __( 'Ticket ID', 'woocommerce-exporter' ),
843
+ 'hover' => __( 'Tickera', 'woocommerce-exporter' )
844
+ );
845
+ $fields[] = array(
846
+ 'name' => 'ticket_code',
847
+ 'label' => __( 'Ticket Code', 'woocommerce-exporter' ),
848
+ 'hover' => __( 'Tickera', 'woocommerce-exporter' )
849
+ );
850
+ $fields[] = array(
851
+ 'name' => 'ticket_type_id',
852
+ 'label' => __( 'Ticket Type ID', 'woocommerce-exporter' ),
853
+ 'hover' => __( 'Tickera', 'woocommerce-exporter' )
854
+ );
855
+ $fields[] = array(
856
+ 'name' => 'ticket_event_id',
857
+ 'label' => __( 'Ticket Event ID', 'woocommerce-exporter' ),
858
+ 'hover' => __( 'Tickera', 'woocommerce-exporter' )
859
+ );
860
+ $fields[] = array(
861
+ 'name' => 'ticket_first_name',
862
+ 'label' => __( 'Ticket First Name', 'woocommerce-exporter' ),
863
+ 'hover' => __( 'Tickera', 'woocommerce-exporter' )
864
+ );
865
+ $fields[] = array(
866
+ 'name' => 'ticket_last_name',
867
+ 'label' => __( 'Ticket Last Name', 'woocommerce-exporter' ),
868
+ 'hover' => __( 'Tickera', 'woocommerce-exporter' )
869
+ );
870
+ $tickera_fields = woo_ce_get_tickera_custom_fields();
871
+ if( !empty( $tickera_fields ) ) {
872
+ foreach( $tickera_fields as $tickera_field ) {
873
+ $fields[] = array(
874
+ 'name' => sprintf( 'ticket_custom_%s', sanitize_key( $tickera_field['name'] ) ),
875
+ 'label' => sprintf( __( 'Ticket: %s', 'woocommerce-exporter' ), $tickera_field['label'] ),
876
+ 'hover' => __( 'Tickera', 'woocommerce-exporter' )
877
+ );
878
+ }
879
+ }
880
+ unset( $tickera_fields );
881
+
882
+ }
883
+
884
+ // WooCommerce Stripe Payment Gateway - https://wordpress.org/plugins/woocommerce-gateway-stripe/
885
+ if( woo_ce_detect_export_plugin( 'wc_stripe' ) ) {
886
+ $fields[] = array(
887
+ 'name' => 'stripe_customer_id',
888
+ 'label' => __( 'Stripe: Customer ID', 'woocommerce-exporter' ),
889
+ 'hover' => __( 'WooCommerce Stripe Payment Gateway', 'woocommerce-exporter' )
890
+ );
891
+ $fields[] = array(
892
+ 'name' => 'stripe_card_id',
893
+ 'label' => __( 'Stripe: Card ID', 'woocommerce-exporter' ),
894
+ 'hover' => __( 'WooCommerce Stripe Payment Gateway', 'woocommerce-exporter' )
895
+ );
896
+ $fields[] = array(
897
+ 'name' => 'stripe_charge_captured',
898
+ 'label' => __( 'Stripe: Charge Captured', 'woocommerce-exporter' ),
899
+ 'hover' => __( 'WooCommerce Stripe Payment Gateway', 'woocommerce-exporter' )
900
+ );
901
+ $fields[] = array(
902
+ 'name' => 'stripe_payment_id',
903
+ 'label' => __( 'Stripe: Payment ID', 'woocommerce-exporter' ),
904
+ 'hover' => __( 'WooCommerce Stripe Payment Gateway', 'woocommerce-exporter' )
905
+ );
906
+ $fields[] = array(
907
+ 'name' => 'stripe_fee',
908
+ 'label' => __( 'Stripe: Fee', 'woocommerce-exporter' ),
909
+ 'hover' => __( 'WooCommerce Stripe Payment Gateway', 'woocommerce-exporter' )
910
+ );
911
+ $fields[] = array(
912
+ 'name' => 'stripe_net_revenue',
913
+ 'label' => __( 'Stripe: Net Revenue from Stripe', 'woocommerce-exporter' ),
914
+ 'hover' => __( 'WooCommerce Stripe Payment Gateway', 'woocommerce-exporter' )
915
+ );
916
+ }
917
+
918
  // WooCommerce Custom Fields - http://www.rightpress.net/woocommerce-custom-fields
919
  if( woo_ce_detect_export_plugin( 'wc_customfields' ) ) {
920
  if( get_option( 'wccf_migrated_to_20' ) ) {
1253
  // WooCommerce Easy Bookings - https://wordpress.org/plugins/woocommerce-easy-booking-system/
1254
  if( woo_ce_detect_export_plugin( 'wc_easybooking' ) ) {
1255
  $fields[] = array(
1256
+ 'name' => 'order_items_booking_start_date',
1257
  'label' => __( 'Order Items: Start', 'woocommerce-exporter' ),
1258
  'hover' => __( 'WooCommerce Easy Bookings', 'woocommerce-exporter' )
1259
  );
1260
  $fields[] = array(
1261
+ 'name' => 'order_items_booking_end_date',
1262
  'label' => __( 'Order Items: End', 'woocommerce-exporter' ),
1263
  'hover' => __( 'WooCommerce Easy Bookings', 'woocommerce-exporter' )
1264
  );
1265
  }
1266
 
1267
+ // WooCommerce Appointments - http://www.bizzthemes.com/plugins/woocommerce-appointments/
1268
+ if( woo_ce_detect_export_plugin( 'wc_appointments' ) ) {
1269
+ $fields[] = array(
1270
+ 'name' => 'order_items_appointment_id',
1271
+ 'label' => __( 'Order Items: Appointment ID', 'woocommerce-exporter' ),
1272
+ 'hover' => __( 'WooCommerce Appointments', 'woocommerce-exporter' )
1273
+ );
1274
+ $fields[] = array(
1275
+ 'name' => 'order_items_booking_start_date',
1276
+ 'label' => __( 'Order Items: Start Date', 'woocommerce-exporter' ),
1277
+ 'hover' => __( 'WooCommerce Appointments', 'woocommerce-exporter' )
1278
+ );
1279
+ $fields[] = array(
1280
+ 'name' => 'order_items_booking_start_time',
1281
+ 'label' => __( 'Order Items: Start Time', 'woocommerce-exporter' ),
1282
+ 'hover' => __( 'WooCommerce Appointments', 'woocommerce-exporter' )
1283
+ );
1284
+ $fields[] = array(
1285
+ 'name' => 'order_items_booking_end_date',
1286
+ 'label' => __( 'Order Items: End Date', 'woocommerce-exporter' ),
1287
+ 'hover' => __( 'WooCommerce Appointments', 'woocommerce-exporter' )
1288
+ );
1289
+ $fields[] = array(
1290
+ 'name' => 'order_items_booking_end_time',
1291
+ 'label' => __( 'Order Items: End Time', 'woocommerce-exporter' ),
1292
+ 'hover' => __( 'WooCommerce Appointments', 'woocommerce-exporter' )
1293
+ );
1294
+ $fields[] = array(
1295
+ 'name' => 'order_items_booking_all_day',
1296
+ 'label' => __( 'Order Items: All Day Booking' ),
1297
+ 'hover' => __( 'WooCommerce Appointments', 'woocommerce-exporter' )
1298
+ );
1299
+ }
1300
+
1301
  if( apply_filters( 'woo_ce_enable_product_attributes', true ) ) {
1302
+ // Product Attributes
1303
  if( $attributes = woo_ce_get_product_attributes() ) {
1304
  foreach( $attributes as $attribute ) {
1305
  $attribute->attribute_label = trim( $attribute->attribute_label );
includes/order.php CHANGED
@@ -148,7 +148,7 @@ function woo_ce_get_order_fields( $format = 'full', $post_ID = 0 ) {
148
  'label' => __( 'Shipping Cost', 'woocommerce-exporter' )
149
  );
150
  $fields[] = array(
151
- 'name' => 'shipping_weight',
152
  'label' => __( 'Shipping Weight', 'woocommerce-exporter' )
153
  );
154
  $fields[] = array(
@@ -183,6 +183,33 @@ function woo_ce_get_order_fields( $format = 'full', $post_ID = 0 ) {
183
  'name' => 'order_notes',
184
  'label' => __( 'Order Notes', 'woocommerce-exporter' )
185
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  $fields[] = array(
187
  'name' => 'total_quantity',
188
  'label' => __( 'Total Quantity', 'woocommerce-exporter' )
@@ -339,9 +366,15 @@ function woo_ce_get_order_fields( $format = 'full', $post_ID = 0 ) {
339
  );
340
  */
341
 
 
 
 
342
  // Allow Plugin/Theme authors to add support for additional Order columns
343
  $fields = apply_filters( sprintf( WOO_CE_PREFIX . '_%s_fields', $export_type ), $fields, $export_type );
344
 
 
 
 
345
  $fields[] = array(
346
  'name' => 'order_items_id',
347
  'label' => __( 'Order Items: ID', 'woocommerce-exporter' )
@@ -478,9 +511,16 @@ function woo_ce_get_order_fields( $format = 'full', $post_ID = 0 ) {
478
  'label' => __( 'Order Items: Total Weight', 'woocommerce-exporter' )
479
  );
480
 
 
 
 
481
  // Allow Plugin/Theme authors to add support for additional Order Item columns
482
  $fields = apply_filters( sprintf( WOO_CE_PREFIX . '_%s_fields', 'order_items' ), $fields, $export_type );
483
 
 
 
 
 
484
  switch( $format ) {
485
 
486
  case 'summary':
@@ -496,7 +536,8 @@ function woo_ce_get_order_fields( $format = 'full', $post_ID = 0 ) {
496
  case 'full':
497
  default:
498
  // Load the default sorting
499
- $sorting = woo_ce_get_option( sprintf( '%s_sorting', $export_type ), array() );
 
500
  $size = count( $fields );
501
  for( $i = 0; $i < $size; $i++ ) {
502
  if( !isset( $fields[$i]['name'] ) ) {
148
  'label' => __( 'Shipping Cost', 'woocommerce-exporter' )
149
  );
150
  $fields[] = array(
151
+ 'name' => 'shipping_weight_total',
152
  'label' => __( 'Shipping Weight', 'woocommerce-exporter' )
153
  );
154
  $fields[] = array(
183
  'name' => 'order_notes',
184
  'label' => __( 'Order Notes', 'woocommerce-exporter' )
185
  );
186
+ // PayPal
187
+ $fields[] = array(
188
+ 'name' => 'paypal_payer_paypal_address',
189
+ 'label' => __( 'PayPal: Payer PayPal Address', 'woocommerce-exporter' ),
190
+ 'hover' => __( 'PayPal', 'woocommerce-exporter' )
191
+ );
192
+ $fields[] = array(
193
+ 'name' => 'paypal_payer_first_name',
194
+ 'label' => __( 'PayPal: Payer first name', 'woocommerce-exporter' ),
195
+ 'hover' => __( 'PayPal', 'woocommerce-exporter' )
196
+ );
197
+ $fields[] = array(
198
+ 'name' => 'paypal_payer_last_name',
199
+ 'label' => __( 'PayPal: Payer last name', 'woocommerce-exporter' ),
200
+ 'hover' => __( 'PayPal', 'woocommerce-exporter' )
201
+ );
202
+ $fields[] = array(
203
+ 'name' => 'paypal_payment_type',
204
+ 'label' => __( 'PayPal: Payment type', 'woocommerce-exporter' ),
205
+ 'hover' => __( 'PayPal', 'woocommerce-exporter' )
206
+ );
207
+ $fields[] = array(
208
+ 'name' => 'paypal_payment_status',
209
+ 'label' => __( 'PayPal: Payment status', 'woocommerce-exporter' ),
210
+ 'hover' => __( 'PayPal', 'woocommerce-exporter' )
211
+ );
212
+
213
  $fields[] = array(
214
  'name' => 'total_quantity',
215
  'label' => __( 'Total Quantity', 'woocommerce-exporter' )
366
  );
367
  */
368
 
369
+ // Drop in our content filters here
370
+ add_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
371
+
372
  // Allow Plugin/Theme authors to add support for additional Order columns
373
  $fields = apply_filters( sprintf( WOO_CE_PREFIX . '_%s_fields', $export_type ), $fields, $export_type );
374
 
375
+ // Remove our content filters here to play nice with other Plugins
376
+ remove_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
377
+
378
  $fields[] = array(
379
  'name' => 'order_items_id',
380
  'label' => __( 'Order Items: ID', 'woocommerce-exporter' )
511
  'label' => __( 'Order Items: Total Weight', 'woocommerce-exporter' )
512
  );
513
 
514
+ // Drop in our content filters here
515
+ add_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
516
+
517
  // Allow Plugin/Theme authors to add support for additional Order Item columns
518
  $fields = apply_filters( sprintf( WOO_CE_PREFIX . '_%s_fields', 'order_items' ), $fields, $export_type );
519
 
520
+ // Remove our content filters here to play nice with other Plugins
521
+ remove_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
522
+
523
+
524
  switch( $format ) {
525
 
526
  case 'summary':
536
  case 'full':
537
  default:
538
  // Load the default sorting
539
+ if( empty( $sorting ) )
540
+ $sorting = woo_ce_get_option( sprintf( '%s_sorting', $export_type ), array() );
541
  $size = count( $fields );
542
  for( $i = 0; $i < $size; $i++ ) {
543
  if( !isset( $fields[$i]['name'] ) ) {
includes/product-extend.php CHANGED
@@ -1125,6 +1125,274 @@ function woo_ce_extend_product_fields( $fields = array() ) {
1125
  );
1126
  }
1127
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1128
  // Custom Product meta
1129
  $custom_products = woo_ce_get_option( 'custom_products', '' );
1130
  if( !empty( $custom_products ) ) {
1125
  );
1126
  }
1127
 
1128
+ // WooCommerce Chained Products - https://woocommerce.com/products/chained-products/
1129
+ if( woo_ce_detect_export_plugin( 'wc_chained_products' ) ) {
1130
+ $fields[] = array(
1131
+ 'name' => 'chained_products',
1132
+ 'label' => __( 'Chained Products', 'woocommerce-exporter' ),
1133
+ 'hover' => __( 'WooCommerce Chained Products', 'woocommerce-exporter' ),
1134
+ 'disabled' => 1
1135
+ );
1136
+ $fields[] = array(
1137
+ 'name' => 'chained_products_ids',
1138
+ 'label' => __( 'Chained Product IDs', 'woocommerce-exporter' ),
1139
+ 'hover' => __( 'WooCommerce Chained Products', 'woocommerce-exporter' ),
1140
+ 'disabled' => 1
1141
+ );
1142
+ $fields[] = array(
1143
+ 'name' => 'chained_products_names',
1144
+ 'label' => __( 'Chained Product Names', 'woocommerce-exporter' ),
1145
+ 'hover' => __( 'WooCommerce Chained Products', 'woocommerce-exporter' ),
1146
+ 'disabled' => 1
1147
+ );
1148
+ $fields[] = array(
1149
+ 'name' => 'chained_products_skus',
1150
+ 'label' => __( 'Chained Product SKUs', 'woocommerce-exporter' ),
1151
+ 'hover' => __( 'WooCommerce Chained Products', 'woocommerce-exporter' ),
1152
+ 'disabled' => 1
1153
+ );
1154
+ $fields[] = array(
1155
+ 'name' => 'chained_products_units',
1156
+ 'label' => __( 'Chained Product Units', 'woocommerce-exporter' ),
1157
+ 'hover' => __( 'WooCommerce Chained Products', 'woocommerce-exporter' ),
1158
+ 'disabled' => 1
1159
+ );
1160
+ $fields[] = array(
1161
+ 'name' => 'chained_products_manage_stock',
1162
+ 'label' => __( 'Manage Stock for Chained Products', 'woocommerce-exporter' ),
1163
+ 'hover' => __( 'WooCommerce Chained Products', 'woocommerce-exporter' ),
1164
+ 'disabled' => 1
1165
+ );
1166
+ }
1167
+
1168
+ // WooCommerce Sample - https://wordpress.org/plugins/woocommerce-sample/
1169
+ if( woo_ce_detect_export_plugin( 'wc_sample' ) ) {
1170
+ $fields[] = array(
1171
+ 'name' => 'enable_sample',
1172
+ 'label' => __( 'Enable Sample', 'woocommerce-exporter' ),
1173
+ 'hover' => __( 'WooCommerce Sample', 'woocommerce-exporter' ),
1174
+ 'disabled' => 1
1175
+ );
1176
+
1177
+ // WooCommerce Chained Products - https://woocommerce.com/products/chained-products/
1178
+ if( woo_ce_detect_export_plugin( 'wc_chained_products' ) ) {
1179
+ $fields[] = array(
1180
+ 'name' => 'enable_sample_chained',
1181
+ 'label' => __( 'Enable Sample on Chained Products', 'woocommerce-exporter' ),
1182
+ 'hover' => __( 'WooCommerce Sample', 'woocommerce-exporter' ),
1183
+ 'disabled' => 1
1184
+ );
1185
+ }
1186
+ $fields[] = array(
1187
+ 'name' => 'sample_shipping_mode',
1188
+ 'label' => __( 'Sample Shipping Mode', 'woocommerce-exporter' ),
1189
+ 'hover' => __( 'WooCommerce Sample', 'woocommerce-exporter' ),
1190
+ 'disabled' => 1
1191
+ );
1192
+ $fields[] = array(
1193
+ 'name' => 'sample_shipping',
1194
+ 'label' => __( 'Sample Shipping', 'woocommerce-exporter' ),
1195
+ 'hover' => __( 'WooCommerce Sample', 'woocommerce-exporter' ),
1196
+ 'disabled' => 1
1197
+ );
1198
+ $fields[] = array(
1199
+ 'name' => 'sample_price_mode',
1200
+ 'label' => __( 'Sample Price Mode', 'woocommerce-exporter' ),
1201
+ 'hover' => __( 'WooCommerce Sample', 'woocommerce-exporter' ),
1202
+ 'disabled' => 1
1203
+ );
1204
+ $fields[] = array(
1205
+ 'name' => 'sample_price',
1206
+ 'label' => __( 'Sample Price', 'woocommerce-exporter' ),
1207
+ 'hover' => __( 'WooCommerce Sample', 'woocommerce-exporter' ),
1208
+ 'disabled' => 1
1209
+ );
1210
+ }
1211
+
1212
+ // AG WooCommerce Barcode / ISBN & Amazon ASIN - PRO - https://www.weareag.co.uk/product/woocommerce-barcodeisbn-amazon-asin-pro/
1213
+ if( woo_ce_detect_export_plugin( 'wc_ag_barcode_pro' ) ) {
1214
+ $fields[] = array(
1215
+ 'name' => 'barcode',
1216
+ 'label' => __( 'Barcode', 'woocommerce-exporter' ),
1217
+ 'hover' => __( 'AG WooCommerce Barcode / ISBN & Amazon ASIN - PRO', 'woocommerce-exporter' ),
1218
+ 'disabled' => 1
1219
+ );
1220
+ $fields[] = array(
1221
+ 'name' => 'isbn',
1222
+ 'label' => __( 'ISBN', 'woocommerce-exporter' ),
1223
+ 'hover' => __( 'AG WooCommerce Barcode / ISBN & Amazon ASIN - PRO', 'woocommerce-exporter' ),
1224
+ 'disabled' => 1
1225
+ );
1226
+ $fields[] = array(
1227
+ 'name' => 'amazon',
1228
+ 'label' => __( 'ASIN', 'woocommerce-exporter' ),
1229
+ 'hover' => __( 'AG WooCommerce Barcode / ISBN & Amazon ASIN - PRO', 'woocommerce-exporter' ),
1230
+ 'disabled' => 1
1231
+ );
1232
+ }
1233
+
1234
+ // SEO Squirrly - https://wordpress.org/plugins/squirrly-seo/
1235
+ if( woo_ce_detect_export_plugin( 'seo_squirrly' ) ) {
1236
+ $fields[] = array(
1237
+ 'name' => 'sq_keywords',
1238
+ 'label' => __( 'Keywords', 'woocommerce-exporter' ),
1239
+ 'hover' => __( 'SEO Squirrly', 'woocommerce-exporter' ),
1240
+ 'disabled' => 1
1241
+ );
1242
+ }
1243
+
1244
+ // WooCommerce Measurement Price Calculator - http://www.woocommerce.com/products/measurement-price-calculator/
1245
+ if( woo_ce_detect_export_plugin( 'wc_measurement_price_calc' ) ) {
1246
+ $fields[] = array(
1247
+ 'name' => 'area',
1248
+ 'label' => __( 'Area', 'woocommerce-exporter' ),
1249
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1250
+ 'disabled' => 1
1251
+ );
1252
+ $fields[] = array(
1253
+ 'name' => 'volume',
1254
+ 'label' => __( 'Volume', 'woocommerce-exporter' ),
1255
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1256
+ 'disabled' => 1
1257
+ );
1258
+ $fields[] = array(
1259
+ 'name' => 'measurement',
1260
+ 'label' => __( 'Measurement', 'woocommerce-exporter' ),
1261
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1262
+ 'disabled' => 1
1263
+ );
1264
+ // Dimensions
1265
+ $fields[] = array(
1266
+ 'name' => 'measurement_dimension_pricing',
1267
+ 'label' => __( 'Dimension: Show Product Price Per Unit', 'woocommerce-exporter' ),
1268
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1269
+ 'disabled' => 1
1270
+ );
1271
+ $fields[] = array(
1272
+ 'name' => 'measurement_dimension_pricing_label',
1273
+ 'label' => __( 'Dimension: Pricing Label', 'woocommerce-exporter' ),
1274
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1275
+ 'disabled' => 1
1276
+ );
1277
+ $fields[] = array(
1278
+ 'name' => 'measurement_dimension_pricing_unit',
1279
+ 'label' => __( 'Dimension: Pricing Unit', 'woocommerce-exporter' ),
1280
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1281
+ 'disabled' => 1
1282
+ );
1283
+ // Area
1284
+ $fields[] = array(
1285
+ 'name' => 'measurement_area_pricing',
1286
+ 'label' => __( 'Area: Show Product Price Per Unit', 'woocommerce-exporter' ),
1287
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1288
+ 'disabled' => 1
1289
+ );
1290
+ $fields[] = array(
1291
+ 'name' => 'measurement_area_pricing_label',
1292
+ 'label' => __( 'Area: Pricing Label', 'woocommerce-exporter' ),
1293
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1294
+ 'disabled' => 1
1295
+ );
1296
+ $fields[] = array(
1297
+ 'name' => 'measurement_area_pricing_unit',
1298
+ 'label' => __( 'Area: Pricing Unit', 'woocommerce-exporter' ),
1299
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1300
+ 'disabled' => 1
1301
+ );
1302
+ // Area (LxW)
1303
+ $fields[] = array(
1304
+ 'name' => 'measurement_area_dimension_pricing',
1305
+ 'label' => __( 'Area Dimension: Show Product Price Per Unit', 'woocommerce-exporter' ),
1306
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1307
+ 'disabled' => 1
1308
+ );
1309
+ $fields[] = array(
1310
+ 'name' => 'measurement_area_dimension_pricing_label',
1311
+ 'label' => __( 'Area Dimension: Pricing Label', 'woocommerce-exporter' ),
1312
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1313
+ 'disabled' => 1
1314
+ );
1315
+ $fields[] = array(
1316
+ 'name' => 'measurement_area_dimension_pricing_unit',
1317
+ 'label' => __( 'Area Dimension: Pricing Unit', 'woocommerce-exporter' ),
1318
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1319
+ 'disabled' => 1
1320
+ );
1321
+ $fields[] = array(
1322
+ 'name' => 'measurement_area_dimension_length_label',
1323
+ 'label' => __( 'Area Dimension: Length Label', 'woocommerce-exporter' ),
1324
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1325
+ 'disabled' => 1
1326
+ );
1327
+ $fields[] = array(
1328
+ 'name' => 'measurement_area_dimension_length_unit',
1329
+ 'label' => __( 'Area Dimension: Length Unit', 'woocommerce-exporter' ),
1330
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1331
+ 'disabled' => 1
1332
+ );
1333
+ $fields[] = array(
1334
+ 'name' => 'measurement_area_dimension_width_label',
1335
+ 'label' => __( 'Area Dimension: Width Label', 'woocommerce-exporter' ),
1336
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1337
+ 'disabled' => 1
1338
+ );
1339
+ $fields[] = array(
1340
+ 'name' => 'measurement_area_dimension_width_unit',
1341
+ 'label' => __( 'Area Dimension: Width Unit', 'woocommerce-exporter' ),
1342
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1343
+ 'disabled' => 1
1344
+ );
1345
+ // Perimeter
1346
+ $fields[] = array(
1347
+ 'name' => 'measurement_area_linear_pricing',
1348
+ 'label' => __( 'Perimeter Show Product Price Per Unit', 'woocommerce-exporter' ),
1349
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1350
+ 'disabled' => 1
1351
+ );
1352
+ $fields[] = array(
1353
+ 'name' => 'measurement_area_linear_pricing_label',
1354
+ 'label' => __( 'Perimeter: Pricing Label', 'woocommerce-exporter' ),
1355
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1356
+ 'disabled' => 1
1357
+ );
1358
+ $fields[] = array(
1359
+ 'name' => 'measurement_area_linear_pricing_unit',
1360
+ 'label' => __( 'Perimeter: Pricing Unit', 'woocommerce-exporter' ),
1361
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1362
+ 'disabled' => 1
1363
+ );
1364
+ $fields[] = array(
1365
+ 'name' => 'measurement_area_linear_length_label',
1366
+ 'label' => __( 'Perimeter: Length Label', 'woocommerce-exporter' ),
1367
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1368
+ 'disabled' => 1
1369
+ );
1370
+ $fields[] = array(
1371
+ 'name' => 'measurement_area_linear_length_unit',
1372
+ 'label' => __( 'Perimeter: Length Unit', 'woocommerce-exporter' ),
1373
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1374
+ 'disabled' => 1
1375
+ );
1376
+ $fields[] = array(
1377
+ 'name' => 'measurement_area_linear_width_label',
1378
+ 'label' => __( 'Perimeter: Width Label', 'woocommerce-exporter' ),
1379
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1380
+ 'disabled' => 1
1381
+ );
1382
+ $fields[] = array(
1383
+ 'name' => 'measurement_area_linear_width_unit',
1384
+ 'label' => __( 'Perimete: Width Unit', 'woocommerce-exporter' ),
1385
+ 'hover' => __( 'WooCommerce Measurement Price Calculator', 'woocommerce-exporter' ),
1386
+ 'disabled' => 1
1387
+ );
1388
+ // Surface Area
1389
+ // Volume
1390
+ // Volume (LxWxH)
1391
+ // Volume (AxH)
1392
+ // Weight
1393
+ // Room Walls
1394
+ }
1395
+
1396
  // Custom Product meta
1397
  $custom_products = woo_ce_get_option( 'custom_products', '' );
1398
  if( !empty( $custom_products ) ) {
includes/product.php CHANGED
@@ -343,13 +343,13 @@ function woo_ce_get_product_fields( $format = 'full' ) {
343
  */
344
 
345
  // Drop in our content filters here
346
- add_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
347
 
348
  // Allow Plugin/Theme authors to add support for additional columns
349
  $fields = apply_filters( sprintf( WOO_CE_PREFIX . '_%s_fields', $export_type ), $fields, $export_type );
350
 
351
  // Remove our content filters here to play nice with other Plugins
352
- remove_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
353
 
354
  $remember = woo_ce_get_option( $export_type . '_fields', array() );
355
  if( !empty( $remember ) ) {
@@ -588,8 +588,8 @@ function woo_ce_get_product_data( $product_id = 0, $args = array() ) {
588
  $product->permalink = get_permalink( $product_id );
589
  $product->product_url = ( method_exists( $_product, 'get_permalink' ) ? $_product->get_permalink() : get_permalink( $product_id ) );
590
  $product->slug = $product->post_name;
591
- $product->description = $product->post_content;
592
- $product->excerpt = $product->post_excerpt;
593
  $product->regular_price = get_post_meta( $product_id, '_regular_price', true );
594
  // Check that a valid price has been provided and that wc_format_localized_price() exists
595
  if( isset( $product->regular_price ) && $product->regular_price != '' && function_exists( 'wc_format_localized_price' ) )
@@ -610,9 +610,14 @@ function woo_ce_get_product_data( $product_id = 0, $args = array() ) {
610
  $product->post_modified = woo_ce_format_date( $product->post_modified );
611
  $product->type = woo_ce_get_product_assoc_type( $product_id );
612
  if( $product->post_type == 'product_variation' ) {
 
 
613
  $product->type = __( 'Variation', 'woocommerce-exporter' );
614
  }
615
- $product->visibility = woo_ce_format_product_visibility( $product_id, get_post_meta( $product_id, '_visibility', true ) );
 
 
 
616
  $product->featured = woo_ce_format_switch( get_post_meta( $product_id, '_featured', true ) );
617
  $product->virtual = woo_ce_format_switch( get_post_meta( $product_id, '_virtual', true ) );
618
  $product->downloadable = woo_ce_format_switch( get_post_meta( $product_id, '_downloadable', true ) );
@@ -1020,7 +1025,7 @@ function woo_ce_format_product_visibility( $product_id = 0, $visibility = '' ) {
1020
  $terms = wp_get_object_terms( $product_id, $term_taxonomy, $args );
1021
  if( !empty( $terms ) && is_wp_error( $terms ) == false ) {
1022
  // Just for fun we have to combine Terms to decipher the Visibility
1023
- if( in_array( 'exclude-from-search', $terms ) && in_array( 'exclude-from-catalog', $terms) )
1024
  $visibility = 'hidden';
1025
  else if( in_array( 'exclude-from-search', $terms ) )
1026
  $visibility = 'catalog';
343
  */
344
 
345
  // Drop in our content filters here
346
+ add_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
347
 
348
  // Allow Plugin/Theme authors to add support for additional columns
349
  $fields = apply_filters( sprintf( WOO_CE_PREFIX . '_%s_fields', $export_type ), $fields, $export_type );
350
 
351
  // Remove our content filters here to play nice with other Plugins
352
+ remove_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
353
 
354
  $remember = woo_ce_get_option( $export_type . '_fields', array() );
355
  if( !empty( $remember ) ) {
588
  $product->permalink = get_permalink( $product_id );
589
  $product->product_url = ( method_exists( $_product, 'get_permalink' ) ? $_product->get_permalink() : get_permalink( $product_id ) );
590
  $product->slug = $product->post_name;
591
+ $product->description = woo_ce_format_description_excerpt( $product->post_content );
592
+ $product->excerpt = woo_ce_format_description_excerpt( $product->post_excerpt );
593
  $product->regular_price = get_post_meta( $product_id, '_regular_price', true );
594
  // Check that a valid price has been provided and that wc_format_localized_price() exists
595
  if( isset( $product->regular_price ) && $product->regular_price != '' && function_exists( 'wc_format_localized_price' ) )
610
  $product->post_modified = woo_ce_format_date( $product->post_modified );
611
  $product->type = woo_ce_get_product_assoc_type( $product_id );
612
  if( $product->post_type == 'product_variation' ) {
613
+ $product->description = woo_ce_format_description_excerpt( get_post_meta( $product_id, '_variation_description', true ) );
614
+ // Override the Product Type for Variations
615
  $product->type = __( 'Variation', 'woocommerce-exporter' );
616
  }
617
+ if( version_compare( woo_get_woo_version(), '3.0', '>=' ) )
618
+ $product->visibility = woo_ce_format_product_visibility( $product_id );
619
+ else
620
+ $product->visibility = woo_ce_format_product_visibility( $product_id, get_post_meta( $product_id, '_visibility', true ) );
621
  $product->featured = woo_ce_format_switch( get_post_meta( $product_id, '_featured', true ) );
622
  $product->virtual = woo_ce_format_switch( get_post_meta( $product_id, '_virtual', true ) );
623
  $product->downloadable = woo_ce_format_switch( get_post_meta( $product_id, '_downloadable', true ) );
1025
  $terms = wp_get_object_terms( $product_id, $term_taxonomy, $args );
1026
  if( !empty( $terms ) && is_wp_error( $terms ) == false ) {
1027
  // Just for fun we have to combine Terms to decipher the Visibility
1028
+ if( in_array( 'exclude-from-search', $terms ) && in_array( 'exclude-from-catalog', $terms ) )
1029
  $visibility = 'hidden';
1030
  else if( in_array( 'exclude-from-search', $terms ) )
1031
  $visibility = 'catalog';
includes/product_vendor.php CHANGED
@@ -81,13 +81,13 @@ function woo_ce_get_product_vendor_fields( $format = 'full', $post_ID = 0 ) {
81
  */
82
 
83
  // Drop in our content filters here
84
- add_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
85
 
86
  // Allow Plugin/Theme authors to add support for additional columns
87
  $fields = apply_filters( sprintf( WOO_CE_PREFIX . '_%s_fields', $export_type ), $fields, $export_type );
88
 
89
  // Remove our content filters here to play nice with other Plugins
90
- remove_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
91
 
92
  switch( $format ) {
93
 
81
  */
82
 
83
  // Drop in our content filters here
84
+ add_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
85
 
86
  // Allow Plugin/Theme authors to add support for additional columns
87
  $fields = apply_filters( sprintf( WOO_CE_PREFIX . '_%s_fields', $export_type ), $fields, $export_type );
88
 
89
  // Remove our content filters here to play nice with other Plugins
90
+ remove_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
91
 
92
  switch( $format ) {
93
 
includes/user.php CHANGED
@@ -90,13 +90,13 @@ function woo_ce_get_user_fields( $format = 'full' ) {
90
  */
91
 
92
  // Drop in our content filters here
93
- add_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
94
 
95
  // Allow Plugin/Theme authors to add support for additional columns
96
  $fields = apply_filters( sprintf( WOO_CE_PREFIX . '_%s_fields', $export_type ), $fields, $export_type );
97
 
98
  // Remove our content filters here to play nice with other Plugins
99
- remove_filter( 'sanitize_key', 'woo_ce_sanitize_key' );
100
 
101
  $remember = woo_ce_get_option( $export_type . '_fields', array() );
102
  if( !empty( $remember ) ) {
90
  */
91
 
92
  // Drop in our content filters here
93
+ add_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
94
 
95
  // Allow Plugin/Theme authors to add support for additional columns
96
  $fields = apply_filters( sprintf( WOO_CE_PREFIX . '_%s_fields', $export_type ), $fields, $export_type );
97
 
98
  // Remove our content filters here to play nice with other Plugins
99
+ remove_filter( 'sanitize_key', 'woo_ce_filter_sanitize_key' );
100
 
101
  $remember = woo_ce_get_option( $export_type . '_fields', array() );
102
  if( !empty( $remember ) ) {
readme.txt CHANGED
@@ -4,23 +4,23 @@ Contributors: visser, visser.labs
4
  Donate link: https://www.visser.com.au/donations/
5
  Tags: e-commerce, woocommerce, shop, cart, ecommerce, export, csv, xml, xls, xlsx, excel, customers, products, sales, orders, coupons, users, attributes, subscriptions
6
  Requires at least: 2.9.2
7
- Tested up to: 4.8.1
8
- Stable tag: 1.9.2
9
  License: GPLv2 or later
10
 
11
  Export store details out of WooCommerce into simple formatted files (e.g. CSV, XML, Excel 2007, XLS, etc.).
12
 
13
  == Description ==
14
 
15
- **Screen-loads of options and filters let you design advanced exports to suit your store requirements, or simply go with the default and click Export to produce concise, ready to use exports.**
16
 
17
- Store Exporter maintains compatibility with the latest WooCommerce updates receiving regular feature updates trusted by 20,000+ active users. Happy exporting!
18
 
19
  = Features =
20
 
21
  Features include:
22
 
23
- * Export Products (*)
24
  * Export Products by Product Category
25
  * Export Products by Product Status
26
  * Export Products by Type including Variations
@@ -65,7 +65,7 @@ Features include:
65
  >
66
  > Full documentation and usage of Store Exporter Deluxe is available from the [support section for Store Exporter Deluxe](http://www.visser.com.au/documentation/store-exporter-deluxe/).
67
 
68
- = Native integration with 90+ WooCommerce Plugins =
69
 
70
  Just a few of the features unlocked in the Pro upgrade of Store Exporter include:
71
 
@@ -89,13 +89,11 @@ Just a few of the features unlocked in the Pro upgrade of Store Exporter include
89
  - Export WooCommerce Jetpack
90
  - Import fields for Product Importer Deluxe
91
 
92
- ... and more free and Premium extensions for WooCommerce and WordPress.
93
 
94
- Want regular updates? Become a fan on Facebook!
95
 
96
- http://www.facebook.com/visser.labs/
97
-
98
- For more information visit: http://www.visser.com.au/woocommerce/
99
 
100
  == Installation ==
101
 
@@ -116,9 +114,9 @@ Done!
116
 
117
  == Support ==
118
 
119
- If you have any problems, questions or suggestions please join the members discussion on our WooCommerce dedicated forum.
120
 
121
- http://www.visser.com.au/woocommerce/forums/
122
 
123
  == Screenshots ==
124
 
@@ -134,6 +132,12 @@ http://www.visser.com.au/woocommerce/forums/
134
 
135
  == Changelog ==
136
 
 
 
 
 
 
 
137
  = 1.9.2 =
138
  * Changed: Product Visibility field matches WooCommerce 3.1 labels (thanks spbuckle)
139
  * Added: Filter for legacy Product Visibility labels
4
  Donate link: https://www.visser.com.au/donations/
5
  Tags: e-commerce, woocommerce, shop, cart, ecommerce, export, csv, xml, xls, xlsx, excel, customers, products, sales, orders, coupons, users, attributes, subscriptions
6
  Requires at least: 2.9.2
7
+ Tested up to: 4.9
8
+ Stable tag: 1.9.4
9
  License: GPLv2 or later
10
 
11
  Export store details out of WooCommerce into simple formatted files (e.g. CSV, XML, Excel 2007, XLS, etc.).
12
 
13
  == Description ==
14
 
15
+ **Screen-loads of options and filters let you design advanced exports to suit your store requirements, or simply go with the default and click Export to produce concise, ready to use store exports.**
16
 
17
+ Store Exporter maintains compatibility with the latest WooCommerce releases through regular feature updates; as trusted by the 20,000+ active users of this Plugin. Happy exporting!
18
 
19
  = Features =
20
 
21
  Features include:
22
 
23
+ * Export Products
24
  * Export Products by Product Category
25
  * Export Products by Product Status
26
  * Export Products by Type including Variations
65
  >
66
  > Full documentation and usage of Store Exporter Deluxe is available from the [support section for Store Exporter Deluxe](http://www.visser.com.au/documentation/store-exporter-deluxe/).
67
 
68
+ = Native export integration with 90+ WooCommerce Plugins =
69
 
70
  Just a few of the features unlocked in the Pro upgrade of Store Exporter include:
71
 
89
  - Export WooCommerce Jetpack
90
  - Import fields for Product Importer Deluxe
91
 
92
+ ... and many more free and Premium extensions for WooCommerce and WordPress.
93
 
94
+ Want regular updates? [Become a fan on Facebook!](http://www.facebook.com/visser.labs/)
95
 
96
+ [For more information visit our site.](https://www.visser.com.au/solutions/woocommerce-export/)
 
 
97
 
98
  == Installation ==
99
 
114
 
115
  == Support ==
116
 
117
+ If you have any problems, questions or suggestions please create a topic here on the Store Exporter dedicated forum.
118
 
119
+ [Store Exporter on w.org](https://wordpress.org/support/plugin/woocommerce-exporter)
120
 
121
  == Screenshots ==
122
 
132
 
133
  == Changelog ==
134
 
135
+ = 1.9.4 =
136
+ * Added: Variation Description built into Description Product export field (thanks Kelvin)
137
+
138
+ = 1.9.3 =
139
+ * Fixed: Product Visibility not including Search and search results (thanks Triều and spbuckle)
140
+
141
  = 1.9.2 =
142
  * Changed: Product Visibility field matches WooCommerce 3.1 labels (thanks spbuckle)
143
  * Added: Filter for legacy Product Visibility labels