Product Import Export for WooCommerce - Version 1.4.7

Version Description

  • Tested OK with WC 3.4.5
  • Review link added in footer.
  • Bug fix.
Download this release

Release Info

Developer webtoffee
Plugin Icon 128x128 Product Import Export for WooCommerce
Version 1.4.7
Comparing to
See all releases

Code changes from version 1.4.6 to 1.4.7

includes/exporter/class-wf-prodimpexpcsv-exporter.php CHANGED
@@ -10,7 +10,6 @@ class WF_ProdImpExpCsv_Exporter {
10
  */
11
  public static function do_export( $post_type = 'product' ) {
12
  global $wpdb;
13
-
14
  $export_limit = ! empty( $_POST['limit'] ) ? intval( $_POST['limit'] ) : 999999999;
15
  $export_count = 0;
16
  $limit = 100;
10
  */
11
  public static function do_export( $post_type = 'product' ) {
12
  global $wpdb;
 
13
  $export_limit = ! empty( $_POST['limit'] ) ? intval( $_POST['limit'] ) : 999999999;
14
  $export_count = 0;
15
  $limit = 100;
includes/importer/class-wf-csv-parser.php CHANGED
@@ -421,7 +421,7 @@ class WF_CSV_Parser {
421
 
422
  // Product type check
423
  if ( $taxonomy == 'product_type' ) {
424
- $term = strtolower( $value );
425
 
426
  if ( ! array_key_exists( $term, $this->allowed_product_types ) ) {
427
  $WF_CSV_Product_Import->hf_log_data_change( 'csv-import', sprintf( __('> > > Product type "%s" not allowed - using simple.', 'wf_csv_import_export'), $term ) );
@@ -481,7 +481,7 @@ class WF_CSV_Parser {
481
  */
482
  $term_may_exist = term_exists( $term, $taxonomy, absint( $parent ) );
483
 
484
- $WF_CSV_Product_Import->hf_log_data_change( 'CSV-Import', sprintf( __( '> > (' . __LINE__ . ') Term %s (%s) exists? %s', 'wf_csv_import_export' ), sanitize_text_field( $term ), esc_html( $taxonomy ), $term_may_exist ? print_r( $term_may_exist, true ) : '-' ) );
485
 
486
  if ( is_array( $term_may_exist ) ) {
487
  $possible_term = get_term( $term_may_exist['term_id'], 'product_cat' );
@@ -506,7 +506,7 @@ class WF_CSV_Parser {
506
  if ( ! is_wp_error( $t ) ) {
507
  $term_id = $t['term_id'];
508
  } else {
509
- $WF_CSV_Product_Import->hf_log_data_change( 'CSV-Import', sprintf( __( '> > (' . __LINE__ . ') Failed to import term %s, parent %s - %s', 'wf_csv_import_export' ), sanitize_text_field( $term ), sanitize_text_field( $parent ), sanitize_text_field( $taxonomy ) ) );
510
  break;
511
  }
512
  }
@@ -592,16 +592,19 @@ class WF_CSV_Parser {
592
 
593
  // Exists?
594
  if ( ! taxonomy_exists( $taxonomy ) ) {
 
595
 
596
  $nicename = strtolower( sanitize_title( str_replace( 'pa_', '', $taxonomy ) ) );
597
-
 
 
598
  $WF_CSV_Product_Import->hf_log_data_change( 'csv-import', sprintf( __('> > Attribute taxonomy "%s" does not exist. Adding it. Nicename: %s', 'wf_csv_import_export'), $taxonomy, $nicename ) );
599
 
600
  $exists_in_db = $wpdb->get_var( "SELECT attribute_id FROM " . $wpdb->prefix . "woocommerce_attribute_taxonomies WHERE attribute_name = '" . $nicename . "';" );
601
 
602
  if ( ! $exists_in_db ) {
603
  // Create the taxonomy
604
- $wpdb->insert( $wpdb->prefix . "woocommerce_attribute_taxonomies", array( 'attribute_name' => $nicename, 'attribute_label' => $nicename, 'attribute_type' => 'select', 'attribute_orderby' => 'menu_order' ) );
605
  } else {
606
  $WF_CSV_Product_Import->hf_log_data_change( 'csv-import', sprintf( __('> > Attribute taxonomy %s already exists in DB.', 'wf_csv_import_export'), $taxonomy ) );
607
  }
421
 
422
  // Product type check
423
  if ( $taxonomy == 'product_type' ) {
424
+ $term = strtolower(trim($value));
425
 
426
  if ( ! array_key_exists( $term, $this->allowed_product_types ) ) {
427
  $WF_CSV_Product_Import->hf_log_data_change( 'csv-import', sprintf( __('> > > Product type "%s" not allowed - using simple.', 'wf_csv_import_export'), $term ) );
481
  */
482
  $term_may_exist = term_exists( $term, $taxonomy, absint( $parent ) );
483
 
484
+ $WF_CSV_Product_Import->hf_log_data_change( 'csv-import', sprintf( __( '> > (' . __LINE__ . ') Term %s (%s) exists? %s', 'wf_csv_import_export' ), sanitize_text_field( $term ), esc_html( $taxonomy ), $term_may_exist ? print_r( $term_may_exist, true ) : '-' ) );
485
 
486
  if ( is_array( $term_may_exist ) ) {
487
  $possible_term = get_term( $term_may_exist['term_id'], 'product_cat' );
506
  if ( ! is_wp_error( $t ) ) {
507
  $term_id = $t['term_id'];
508
  } else {
509
+ $WF_CSV_Product_Import->hf_log_data_change( 'csv-import', sprintf( __( '> > (' . __LINE__ . ') Failed to import term %s, parent %s - %s', 'wf_csv_import_export' ), sanitize_text_field( $term ), sanitize_text_field( $parent ), sanitize_text_field( $taxonomy ) ) );
510
  break;
511
  }
512
  }
592
 
593
  // Exists?
594
  if ( ! taxonomy_exists( $taxonomy ) ) {
595
+
596
 
597
  $nicename = strtolower( sanitize_title( str_replace( 'pa_', '', $taxonomy ) ) );
598
+
599
+ $attribute_label = ucwords(str_replace('-',' ',$nicename)); // for importing attribute name as human readable string
600
+
601
  $WF_CSV_Product_Import->hf_log_data_change( 'csv-import', sprintf( __('> > Attribute taxonomy "%s" does not exist. Adding it. Nicename: %s', 'wf_csv_import_export'), $taxonomy, $nicename ) );
602
 
603
  $exists_in_db = $wpdb->get_var( "SELECT attribute_id FROM " . $wpdb->prefix . "woocommerce_attribute_taxonomies WHERE attribute_name = '" . $nicename . "';" );
604
 
605
  if ( ! $exists_in_db ) {
606
  // Create the taxonomy
607
+ $wpdb->insert( $wpdb->prefix . "woocommerce_attribute_taxonomies", array( 'attribute_name' => $nicename, 'attribute_label' => $attribute_label, 'attribute_type' => 'select', 'attribute_orderby' => 'menu_order' ) );
608
  } else {
609
  $WF_CSV_Product_Import->hf_log_data_change( 'csv-import', sprintf( __('> > Attribute taxonomy %s already exists in DB.', 'wf_csv_import_export'), $taxonomy ) );
610
  }
includes/views/market.php CHANGED
@@ -8,6 +8,11 @@ if ( ! defined( 'ABSPATH' ) ) {
8
  <h2><?php _e('Watch getting started video', 'wf_csv_import_export');?></h2>
9
  <iframe src="https://www.youtube.com/embed/L-01qI1EZWE?rel=0&showinfo=0" frameborder="0" allowfullscreen="allowfullscreen" align="center"></iframe>
10
  </div>
 
 
 
 
 
11
  <div class="pipe-premium-features">
12
  <center><a href="https://www.xadapter.com/product/product-import-export-plugin-for-woocommerce/" target="_blank" class="button button-primary button-go-pro"><?php _e('Upgrade to Premium Version', 'wf_csv_import_export'); ?></a></center>
13
  <span>
@@ -33,9 +38,5 @@ if ( ! defined( 'ABSPATH' ) ) {
33
  <a href="http://productimportexport.webtoffee.com/" target="_blank" class="button button-doc-demo"><?php _e('Live Demo', 'wf_csv_import_export'); ?></a>
34
  <a href="https://www.xadapter.com/category/product/product-import-export-plugin-for-woocommerce/" target="_blank" class="button button-doc-demo"><?php _e('Documentation', 'wf_csv_import_export'); ?></a></center>
35
  </div>
36
- <div class="pipe-review-widget">
37
- <?php
38
- echo sprintf(__('<div class=""><p><i>If you like the plugin please leave us a %1$s review!</i><p></div>', 'wf_csv_import_export'), '<a href="https://wordpress.org/support/plugin/product-import-export-for-woo/reviews?rate=5#new-post" target="_blank" class="xa-pipe-rating-link" data-reviewed="' . esc_attr__('Thanks for the review.', 'wf_csv_import_export') . '">&#9733;&#9733;&#9733;&#9733;&#9733;</a>');
39
- ?>
40
- </div>
41
  </div>
8
  <h2><?php _e('Watch getting started video', 'wf_csv_import_export');?></h2>
9
  <iframe src="https://www.youtube.com/embed/L-01qI1EZWE?rel=0&showinfo=0" frameborder="0" allowfullscreen="allowfullscreen" align="center"></iframe>
10
  </div>
11
+ <div class="pipe-review-widget">
12
+ <?php
13
+ echo sprintf(__('<div class=""><p><i>If you like the plugin please leave us a %1$s review!</i><p></div>', 'wf_csv_import_export'), '<a href="https://wordpress.org/support/plugin/product-import-export-for-woo/reviews?rate=5#new-post" target="_blank" class="xa-pipe-rating-link" data-reviewed="' . esc_attr__('Thanks for the review.', 'wf_csv_import_export') . '">&#9733;&#9733;&#9733;&#9733;&#9733;</a>');
14
+ ?>
15
+ </div>
16
  <div class="pipe-premium-features">
17
  <center><a href="https://www.xadapter.com/product/product-import-export-plugin-for-woocommerce/" target="_blank" class="button button-primary button-go-pro"><?php _e('Upgrade to Premium Version', 'wf_csv_import_export'); ?></a></center>
18
  <span>
38
  <a href="http://productimportexport.webtoffee.com/" target="_blank" class="button button-doc-demo"><?php _e('Live Demo', 'wf_csv_import_export'); ?></a>
39
  <a href="https://www.xadapter.com/category/product/product-import-export-plugin-for-woocommerce/" target="_blank" class="button button-doc-demo"><?php _e('Documentation', 'wf_csv_import_export'); ?></a></center>
40
  </div>
41
+
 
 
 
 
42
  </div>
product-csv-import-export.php CHANGED
@@ -5,8 +5,8 @@
5
  Description: Import and Export Products From and To your WooCommerce Store.
6
  Author: WebToffee
7
  Author URI: https://www.webtoffee.com/product/product-import-export-woocommerce/
8
- Version: 1.4.6
9
- WC tested up to: 3.4.4
10
  License: GPLv3
11
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
12
  Text Domain: wf_csv_import_export
@@ -18,7 +18,7 @@ if (!defined('ABSPATH') || !is_admin()) {
18
 
19
 
20
  if (!defined('WF_PIPE_CURRENT_VERSION')) {
21
- define("WF_PIPE_CURRENT_VERSION", "1.4.6");
22
  }
23
  if (!defined('WF_PROD_IMP_EXP_ID')) {
24
  define("WF_PROD_IMP_EXP_ID", "wf_prod_imp_exp");
@@ -58,6 +58,10 @@ if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_
58
 
59
  add_action('admin_footer', array($this, 'deactivate_scripts'));
60
  add_action('wp_ajax_pipe_submit_uninstall_reason', array($this, "send_uninstall_reason"));
 
 
 
 
61
 
62
 
63
  if (!get_option('webtoffee_storefrog_admin_notices_dismissed')) {
@@ -180,7 +184,7 @@ if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_
180
  'id' => 'looking-for-other',
181
  'text' => __('It\'s not what I was looking for', 'wf_csv_import_export'),
182
  'type' => 'textarea',
183
- 'placeholder' => __('Could you tell us a bit more?', 'wf_csv_import_export')
184
  ),
185
  array(
186
  'id' => 'did-not-work-as-expected',
@@ -279,15 +283,15 @@ if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_
279
  $(function () {
280
  var modal = $('#pipe-pipe-modal');
281
  var deactivateLink = '';
282
-
283
-
284
  $('#the-list').on('click', 'a.pipe-deactivate-link', function (e) {
285
  e.preventDefault();
286
  modal.addClass('modal-active');
287
  deactivateLink = $(this).attr('href');
288
  modal.find('a.dont-bother-me').attr('href', deactivateLink).css('float', 'left');
289
  });
290
-
291
  $('#pipe-pipe-modal').on('click', 'a.review-and-deactivate', function (e) {
292
  e.preventDefault();
293
  window.open("https://wordpress.org/support/plugin/product-import-export-for-woo/reviews/#new-post");
@@ -302,11 +306,11 @@ if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_
302
  modal.find('.reason-input').remove();
303
  var inputType = parent.data('type'),
304
  inputPlaceholder = parent.data('placeholder');
305
- if('reviewhtml' === inputType) {
306
- var reasonInputHtml = '<div class="reviewlink"><a href="#" target="_blank" class="review-and-deactivate"><?php _e('Deactivate and leave a review', 'wf_csv_import_export'); ?> <span class="xa-pipe-rating-link"> &#9733;&#9733;&#9733;&#9733;&#9733; </span></a></div>';
307
- }else{
308
- var reasonInputHtml = '<div class="reason-input">' + (('text' === inputType) ? '<input type="text" class="input-text" size="40" />' : '<textarea rows="5" cols="45"></textarea>') + '</div>';
309
- }
310
  if (inputType !== '') {
311
  parent.append($(reasonInputHtml));
312
  parent.find('input, textarea').attr('placeholder', inputPlaceholder).focus();
@@ -354,15 +358,15 @@ if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_
354
  wp_send_json_error();
355
  }
356
 
357
- //$current_user = wp_get_current_user();
358
 
359
  $data = array(
360
  'reason_id' => sanitize_text_field($_POST['reason_id']),
361
  'plugin' => "productimportexort",
362
  'auth' => 'wfpipe_uninstall_1234#',
363
  'date' => gmdate("M d, Y h:i:s A"),
364
- 'url' => home_url(),
365
- 'user_email' => '',//$current_user->user_email,
366
  'reason_info' => isset($_REQUEST['reason_info']) ? trim(stripslashes($_REQUEST['reason_info'])) : '',
367
  'software' => $_SERVER['SERVER_SOFTWARE'],
368
  'php_version' => phpversion(),
@@ -380,10 +384,9 @@ if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_
380
  'redirection' => 5,
381
  'httpversion' => '1.0',
382
  'blocking' => false,
383
- 'headers' => array('user-agent' => 'pipe/' . md5(esc_url(home_url())) . ';'),
384
  'body' => $data,
385
  'cookies' => array()
386
- )
387
  );
388
 
389
  wp_send_json_success();
@@ -394,8 +397,9 @@ if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_
394
  return;
395
  }
396
  $screen = get_current_screen();
397
- $allowed_screen_ids = array('product_page_wf_woocommerce_csv_im_ex', 'admin');
398
- if (in_array($screen->id, $allowed_screen_ids)) {
 
399
 
400
  $notice = __('<h3>Save Time, Money & Hassle on Your WooCommerce Data Migration?</h3>', 'wf_csv_import_export');
401
  $notice .= __('<h3>Use StoreFrog Migration Services.</h3>', 'wf_csv_import_export');
@@ -424,6 +428,41 @@ if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_
424
  wp_die();
425
  }
426
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
427
  }
428
 
429
  endif;
5
  Description: Import and Export Products From and To your WooCommerce Store.
6
  Author: WebToffee
7
  Author URI: https://www.webtoffee.com/product/product-import-export-woocommerce/
8
+ Version: 1.4.7
9
+ WC tested up to: 3.4.5
10
  License: GPLv3
11
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
12
  Text Domain: wf_csv_import_export
18
 
19
 
20
  if (!defined('WF_PIPE_CURRENT_VERSION')) {
21
+ define("WF_PIPE_CURRENT_VERSION", "1.4.7");
22
  }
23
  if (!defined('WF_PROD_IMP_EXP_ID')) {
24
  define("WF_PROD_IMP_EXP_ID", "wf_prod_imp_exp");
58
 
59
  add_action('admin_footer', array($this, 'deactivate_scripts'));
60
  add_action('wp_ajax_pipe_submit_uninstall_reason', array($this, "send_uninstall_reason"));
61
+
62
+
63
+ add_filter('admin_footer_text', array($this, 'WT_admin_footer_text'), 100);
64
+ add_action('wp_ajax_pipe_wt_review_plugin', array($this, "review_plugin"));
65
 
66
 
67
  if (!get_option('webtoffee_storefrog_admin_notices_dismissed')) {
184
  'id' => 'looking-for-other',
185
  'text' => __('It\'s not what I was looking for', 'wf_csv_import_export'),
186
  'type' => 'textarea',
187
+ 'placeholder' => __('Could you tell us a bit more?', 'wf_csv_import_export')
188
  ),
189
  array(
190
  'id' => 'did-not-work-as-expected',
283
  $(function () {
284
  var modal = $('#pipe-pipe-modal');
285
  var deactivateLink = '';
286
+
287
+
288
  $('#the-list').on('click', 'a.pipe-deactivate-link', function (e) {
289
  e.preventDefault();
290
  modal.addClass('modal-active');
291
  deactivateLink = $(this).attr('href');
292
  modal.find('a.dont-bother-me').attr('href', deactivateLink).css('float', 'left');
293
  });
294
+
295
  $('#pipe-pipe-modal').on('click', 'a.review-and-deactivate', function (e) {
296
  e.preventDefault();
297
  window.open("https://wordpress.org/support/plugin/product-import-export-for-woo/reviews/#new-post");
306
  modal.find('.reason-input').remove();
307
  var inputType = parent.data('type'),
308
  inputPlaceholder = parent.data('placeholder');
309
+ if ('reviewhtml' === inputType) {
310
+ var reasonInputHtml = '<div class="reviewlink"><a href="#" target="_blank" class="review-and-deactivate"><?php _e('Deactivate and leave a review', 'wf_csv_import_export'); ?> <span class="xa-pipe-rating-link"> &#9733;&#9733;&#9733;&#9733;&#9733; </span></a></div>';
311
+ } else {
312
+ var reasonInputHtml = '<div class="reason-input">' + (('text' === inputType) ? '<input type="text" class="input-text" size="40" />' : '<textarea rows="5" cols="45"></textarea>') + '</div>';
313
+ }
314
  if (inputType !== '') {
315
  parent.append($(reasonInputHtml));
316
  parent.find('input, textarea').attr('placeholder', inputPlaceholder).focus();
358
  wp_send_json_error();
359
  }
360
 
361
+
362
 
363
  $data = array(
364
  'reason_id' => sanitize_text_field($_POST['reason_id']),
365
  'plugin' => "productimportexort",
366
  'auth' => 'wfpipe_uninstall_1234#',
367
  'date' => gmdate("M d, Y h:i:s A"),
368
+ 'url' => '',
369
+ 'user_email' => '',
370
  'reason_info' => isset($_REQUEST['reason_info']) ? trim(stripslashes($_REQUEST['reason_info'])) : '',
371
  'software' => $_SERVER['SERVER_SOFTWARE'],
372
  'php_version' => phpversion(),
384
  'redirection' => 5,
385
  'httpversion' => '1.0',
386
  'blocking' => false,
 
387
  'body' => $data,
388
  'cookies' => array()
389
+ )
390
  );
391
 
392
  wp_send_json_success();
397
  return;
398
  }
399
  $screen = get_current_screen();
400
+ $allowed_screen_ids = array('product_page_wf_woocommerce_csv_im_ex');
401
+
402
+ if (in_array($screen->id, $allowed_screen_ids) || (isset($_GET['import']) && $_GET['import'] == 'xa_woocommerce_csv')) {
403
 
404
  $notice = __('<h3>Save Time, Money & Hassle on Your WooCommerce Data Migration?</h3>', 'wf_csv_import_export');
405
  $notice .= __('<h3>Use StoreFrog Migration Services.</h3>', 'wf_csv_import_export');
428
  wp_die();
429
  }
430
 
431
+ public function WT_admin_footer_text($footer_text) {
432
+ if (!current_user_can('manage_woocommerce') || !function_exists('wc_get_screen_ids')) {
433
+ return $footer_text;
434
+ }
435
+ $screen = get_current_screen();
436
+ $allowed_screen_ids = array('product_page_wf_woocommerce_csv_im_ex');
437
+ if (in_array($screen->id, $allowed_screen_ids) || (isset($_GET['import']) && $_GET['import'] == 'xa_woocommerce_csv')) {
438
+ if (!get_option('pipe_wt_plugin_reviewed')) {
439
+ $footer_text = sprintf(
440
+ __('If you like the plugin please leave us a %1$s review.', 'wf_csv_import_export'), '<a href="https://wordpress.org/support/plugin/product-import-export-for-woo/reviews?rate=5#new-post" target="_blank" class="wt-review-link" data-rated="' . esc_attr__('Thanks :)', 'wf_csv_import_export') . '">&#9733;&#9733;&#9733;&#9733;&#9733;</a>'
441
+ );
442
+ wc_enqueue_js(
443
+ "jQuery( 'a.wt-review-link' ).click( function() {
444
+ jQuery.post( '" . WC()->ajax_url() . "', { action: 'pipe_wt_review_plugin' } );
445
+ jQuery( this ).parent().text( jQuery( this ).data( 'rated' ) );
446
+ });"
447
+ );
448
+ } else {
449
+ $footer_text = __('Thank you for your review.', 'xa_woocommerce_csv');
450
+ }
451
+ }
452
+
453
+ return '<i>'.$footer_text.'</i>';
454
+ }
455
+
456
+
457
+ public function review_plugin(){
458
+ if (!current_user_can('manage_woocommerce')) {
459
+ wp_die(-1);
460
+ }
461
+ update_option('pipe_wt_plugin_reviewed', 1);
462
+ wp_die();
463
+
464
+ }
465
+
466
  }
467
 
468
  endif;
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.webtoffee.com/plugins/
4
  Tags: woocommerce product import, woocommerce import products, woocommerce export products, export woocommerce products, import products into woocommerce
5
  Requires at least: 3.0.1
6
  Tested up to: 4.9.8
7
- Stable tag: 1.4.6
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -20,7 +20,7 @@ Are you trying to import products into WooCommerce store or export WooCommerce p
20
 
21
  &#128312; Export Simple Products in to a CSV file.
22
  &#128312; Import Simple Products in CSV format in to WooCommerce Store.
23
- &#128312; Tested OK with WooCommerce 3.4.4.
24
 
25
 
26
  Highlights: WooCommerce Product Export, WooCommerce Product CSV Import Suite, WooCommerce bulk product upload, WooCommerce import products with images, import amazon products to WooCommerce, Export Products to xls. Pro Version supports both Simple and Variable products.
@@ -144,6 +144,11 @@ Yes. You can import or export product images along with other details
144
 
145
  == Changelog ==
146
 
 
 
 
 
 
147
  = 1.4.6 =
148
  * Tested OK with WC 3.4.4
149
  * Bug fix:importing date.
@@ -244,7 +249,7 @@ Yes. You can import or export product images along with other details
244
 
245
  == Upgrade Notice ==
246
 
247
- = 1.4.6 =
248
- * Tested OK with WC 3.4.4
249
- * Bug fix:importing date.
250
- * Bug fix:- JSON_HEX_APOS on ajax post.
4
  Tags: woocommerce product import, woocommerce import products, woocommerce export products, export woocommerce products, import products into woocommerce
5
  Requires at least: 3.0.1
6
  Tested up to: 4.9.8
7
+ Stable tag: 1.4.7
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
20
 
21
  &#128312; Export Simple Products in to a CSV file.
22
  &#128312; Import Simple Products in CSV format in to WooCommerce Store.
23
+ &#128312; Tested OK with WooCommerce 3.4.5.
24
 
25
 
26
  Highlights: WooCommerce Product Export, WooCommerce Product CSV Import Suite, WooCommerce bulk product upload, WooCommerce import products with images, import amazon products to WooCommerce, Export Products to xls. Pro Version supports both Simple and Variable products.
144
 
145
  == Changelog ==
146
 
147
+ = 1.4.7 =
148
+ * Tested OK with WC 3.4.5
149
+ * Review link added in footer.
150
+ * Bug fix.
151
+
152
  = 1.4.6 =
153
  * Tested OK with WC 3.4.4
154
  * Bug fix:importing date.
249
 
250
  == Upgrade Notice ==
251
 
252
+ = 1.4.7 =
253
+ * Tested OK with WC 3.4.5
254
+ * Review link added in footer.
255
+ * Bug fix.
styles/wf-style.css CHANGED
@@ -220,7 +220,7 @@
220
  .pipe-review-widget{
221
  background: #fff;
222
  padding: 5px;
223
- margin-top: 23px;
224
  }
225
  .pipe-review-widget p{
226
  margin-right:5px;
220
  .pipe-review-widget{
221
  background: #fff;
222
  padding: 5px;
223
+ margin-bottom: 23px;
224
  }
225
  .pipe-review-widget p{
226
  margin-right:5px;