Import Products from any XML or CSV to WooCommerce - Version 1.4.8

Version Description

  • bug fix: downloadable permissions wan not imported correctly
Download this release

Release Info

Developer soflyy
Plugin Icon 128x128 Import Products from any XML or CSV to WooCommerce
Version 1.4.8
Comparing to
See all releases

Code changes from version 1.4.7 to 1.4.8

actions/pmxi_do_not_update_existing.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php
2
-
3
  /**
4
  * @param $post_to_update_id
5
  * @param $import_id
@@ -58,6 +57,7 @@ function pmwi_pmxi_do_not_update_existing($post_to_update_id, $import_id, $itera
58
  }
59
 
60
  if ( ! $postRecord->isEmpty() ) $postRecord->set(array('iteration' => $iteration))->update();
 
61
  }
62
- }
63
- }
1
  <?php
 
2
  /**
3
  * @param $post_to_update_id
4
  * @param $import_id
57
  }
58
 
59
  if ( ! $postRecord->isEmpty() ) $postRecord->set(array('iteration' => $iteration))->update();
60
+
61
  }
62
+ }
63
+ }
actions/pmxi_missing_post.php CHANGED
@@ -3,11 +3,13 @@
3
  * @param $pid
4
  */
5
  function pmwi_pmxi_missing_post($pid) {
6
- // Variations should be set to 'private' instead of 'draft'
7
- // when using 'Instead of deletion, change post status to Draft'.
8
  if ('product_variation' == get_post_type($pid)) {
9
  $variation = new WC_Product_Variation($pid);
10
- $variation->set_status('private');
 
 
 
 
11
  $attributes = $variation->get_attributes();
12
  if (!empty($attributes)) {
13
  $parentAttributes = get_post_meta($variation->get_parent_id(), '_product_attributes', true);
@@ -19,8 +21,7 @@ function pmwi_pmxi_missing_post($pid) {
19
  if ($attribute && !is_wp_error($attribute)) {
20
  $values[] = $attribute->term_taxonomy_id;
21
  }
22
- }
23
- else {
24
  $values[] = $attribute_value;
25
  }
26
  $values = array_unique($values);
3
  * @param $pid
4
  */
5
  function pmwi_pmxi_missing_post($pid) {
 
 
6
  if ('product_variation' == get_post_type($pid)) {
7
  $variation = new WC_Product_Variation($pid);
8
+ // Variations should be set to 'private' instead of 'draft'
9
+ // when using 'Instead of deletion, change post status to Draft'.
10
+ if (XmlImportWooCommerceService::getInstance()->getImport()->options['set_missing_to_draft']) {
11
+ $variation->set_status('private');
12
+ }
13
  $attributes = $variation->get_attributes();
14
  if (!empty($attributes)) {
15
  $parentAttributes = get_post_meta($variation->get_parent_id(), '_product_attributes', true);
21
  if ($attribute && !is_wp_error($attribute)) {
22
  $values[] = $attribute->term_taxonomy_id;
23
  }
24
+ } else {
 
25
  $values[] = $attribute_value;
26
  }
27
  $values = array_unique($values);
controllers/controller/admin.php CHANGED
@@ -108,22 +108,6 @@ abstract class PMWI_Controller_Admin extends PMWI_Controller {
108
  $trace = debug_backtrace();
109
  $viewPath = str_replace('_', '/', preg_replace('%^' . preg_quote(PMWI_Plugin::PREFIX, '%') . '%', '', strtolower($trace[1]['class']))) . '/' . $trace[1]['function'];
110
  }
111
-
112
- // render contextual help automatically
113
- $viewHelpPath = $viewPath;
114
- // append file extension if not specified
115
- if ( ! preg_match('%\.php$%', $viewHelpPath)) {
116
- $viewHelpPath .= '.php';
117
- }
118
- $viewHelpPath = preg_replace('%\.php$%', '-help.php', $viewHelpPath);
119
- $fileHelpPath = PMWI_Plugin::ROOT_DIR . '/views/' . $viewHelpPath;
120
-
121
- if (is_file($fileHelpPath)) { // there is help file defined
122
- ob_start();
123
- include $fileHelpPath;
124
- add_contextual_help(PMWI_Plugin::getInstance()->getAdminCurrentScreen()->id, ob_get_clean());
125
- }
126
-
127
  parent::render($viewPath);
128
  }
129
 
108
  $trace = debug_backtrace();
109
  $viewPath = str_replace('_', '/', preg_replace('%^' . preg_quote(PMWI_Plugin::PREFIX, '%') . '%', '', strtolower($trace[1]['class']))) . '/' . $trace[1]['function'];
110
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  parent::render($viewPath);
112
  }
113
 
libraries/XmlImportWooCommerceService.php CHANGED
@@ -72,8 +72,7 @@ final class XmlImportWooCommerceService {
72
  $taxonomies = array('post_format', 'product_type', 'product_shipping_class', 'product_visibility');
73
  $taxonomies = apply_filters('wp_all_import_variation_taxonomies', $taxonomies);
74
  $this->product_taxonomies = array_diff_key(get_taxonomies_by_object_type(array('product'), 'object'), array_flip($taxonomies));
75
- }
76
- catch(\Exception $e) {
77
  self::getLogger() && call_user_func(self::getLogger(), '<b>ERROR:</b> ' . $e->getMessage());
78
  }
79
  }
@@ -189,6 +188,9 @@ final class XmlImportWooCommerceService {
189
  if ($parentAttribute['is_taxonomy']) {
190
  $taxonomy_name = strpos($name, "%") !== FALSE ? urldecode($name) : $name;
191
  $terms = [];
 
 
 
192
  if (!empty($variation_attributes[$name])) {
193
  foreach ($variation_attributes[$name] as $attribute_term_slug) {
194
  $term = get_term_by('slug', $attribute_term_slug, $taxonomy_name);
@@ -230,7 +232,7 @@ final class XmlImportWooCommerceService {
230
  if ($this->getImport()->options['default_attributes_type'] == 'instock') {
231
  /** @var \WC_Product_Variation $variation */
232
  foreach ($variations as $variation) {
233
- if ($variation->is_in_stock()) {
234
  $defaultVariation = $variation;
235
  break;
236
  }
@@ -362,8 +364,7 @@ final class XmlImportWooCommerceService {
362
  $stock_quantity = get_post_meta($product->get_id(), '_stock', TRUE);
363
  $data_store = WC_Data_Store::load( 'product' );
364
  $data_store->update_product_stock( $product->get_id(), $stock_quantity, 'set' );
365
- }
366
- catch(\Exception $e) {
367
  self::getLogger() && call_user_func(self::getLogger(), '<b>ERROR:</b> ' . $e->getMessage());
368
  }
369
  // Delete all variations.
@@ -417,11 +418,11 @@ final class XmlImportWooCommerceService {
417
  if ($attribute->is_taxonomy()) {
418
  $attribute_values = $attribute->get_terms();
419
  if (!empty($attribute_values)) {
420
- $terms = [];
421
- foreach ($attribute_values as $key => $object) {
422
- $terms[] = $object->term_id;
423
- }
424
- wp_update_term_count_now($terms, $attributeName);
425
  }
426
  }
427
  }
@@ -472,7 +473,7 @@ final class XmlImportWooCommerceService {
472
  return FALSE;
473
  }
474
  if ($this->getImport()->options['update_all_data'] == "no" && $this->getImport()->options['update_categories_logic'] == "only" && ((!empty($this->getImport()->options['taxonomies_list'])
475
- && is_array($this->getImport()->options['taxonomies_list']) && ! in_array($tx_name, $this->getImport()->options['taxonomies_list'])) || empty($this->getImport()->options['taxonomies_list']))) {
476
  return FALSE;
477
  }
478
  }
@@ -511,17 +512,13 @@ final class XmlImportWooCommerceService {
511
  * @return bool
512
  */
513
  public function isUpdateCustomField($meta_key) {
514
-
515
  $options = $this->getImport()->options;
516
-
517
  if ($options['update_all_data'] == 'yes') {
518
  return TRUE;
519
  }
520
-
521
  if (!$options['is_update_custom_fields']) {
522
  return FALSE;
523
  }
524
-
525
  if ($options['update_custom_fields_logic'] == "full_update") {
526
  return TRUE;
527
  }
@@ -562,57 +559,48 @@ final class XmlImportWooCommerceService {
562
  * @return array
563
  */
564
  public static function arrayCartesian($input) {
565
-
566
  $result = array();
567
-
568
- while ( list( $key, $values ) = each( $input ) ) {
569
- // If a sub-array is empty, it doesn't affect the cartesian product
570
- if ( empty( $values ) ) {
571
- continue;
572
- }
573
-
574
- // Special case: seeding the product array with the values from the first sub-array
575
- if ( empty( $result ) ) {
576
- foreach ( $values as $value ) {
577
- $result[] = array( $key => $value );
578
- }
579
- }
580
- else {
581
- // Second and subsequent input sub-arrays work like this:
582
- // 1. In each existing array inside $product, add an item with
583
- // key == $key and value == first item in input sub-array
584
- // 2. Then, for each remaining item in current input sub-array,
585
- // add a copy of each existing array inside $product with
586
- // key == $key and value == first item in current input sub-array
587
-
588
- // Store all items to be added to $product here; adding them on the spot
589
- // inside the foreach will result in an infinite loop
590
- $append = array();
591
- foreach( $result as &$product ) {
592
- // Do step 1 above. array_shift is not the most efficient, but it
593
- // allows us to iterate over the rest of the items with a simple
594
- // foreach, making the code short and familiar.
595
- $product[ $key ] = array_shift( $values );
596
-
597
- // $product is by reference (that's why the key we added above
598
- // will appear in the end result), so make a copy of it here
599
- $copy = $product;
600
-
601
- // Do step 2 above.
602
- foreach( $values as $item ) {
603
- $copy[ $key ] = $item;
604
- $append[] = $copy;
605
- }
606
-
607
- // Undo the side effecst of array_shift
608
- array_unshift( $values, $product[ $key ] );
609
- }
610
-
611
- // Out of the foreach, we can add to $results now
612
- $result = array_merge( $result, $append );
613
- }
614
  }
615
-
616
  return $result;
617
  }
618
 
72
  $taxonomies = array('post_format', 'product_type', 'product_shipping_class', 'product_visibility');
73
  $taxonomies = apply_filters('wp_all_import_variation_taxonomies', $taxonomies);
74
  $this->product_taxonomies = array_diff_key(get_taxonomies_by_object_type(array('product'), 'object'), array_flip($taxonomies));
75
+ } catch(\Exception $e) {
 
76
  self::getLogger() && call_user_func(self::getLogger(), '<b>ERROR:</b> ' . $e->getMessage());
77
  }
78
  }
188
  if ($parentAttribute['is_taxonomy']) {
189
  $taxonomy_name = strpos($name, "%") !== FALSE ? urldecode($name) : $name;
190
  $terms = [];
191
+ if (isset($variation_attributes[$name]) && is_array($variation_attributes[$name])) {
192
+ $variation_attributes[$name] = array_filter($variation_attributes[$name]);
193
+ }
194
  if (!empty($variation_attributes[$name])) {
195
  foreach ($variation_attributes[$name] as $attribute_term_slug) {
196
  $term = get_term_by('slug', $attribute_term_slug, $taxonomy_name);
232
  if ($this->getImport()->options['default_attributes_type'] == 'instock') {
233
  /** @var \WC_Product_Variation $variation */
234
  foreach ($variations as $variation) {
235
+ if ($variation->get_stock_status() == 'instock') {
236
  $defaultVariation = $variation;
237
  break;
238
  }
364
  $stock_quantity = get_post_meta($product->get_id(), '_stock', TRUE);
365
  $data_store = WC_Data_Store::load( 'product' );
366
  $data_store->update_product_stock( $product->get_id(), $stock_quantity, 'set' );
367
+ } catch(\Exception $e) {
 
368
  self::getLogger() && call_user_func(self::getLogger(), '<b>ERROR:</b> ' . $e->getMessage());
369
  }
370
  // Delete all variations.
418
  if ($attribute->is_taxonomy()) {
419
  $attribute_values = $attribute->get_terms();
420
  if (!empty($attribute_values)) {
421
+ $terms = [];
422
+ foreach ($attribute_values as $key => $object) {
423
+ $terms[] = $object->term_id;
424
+ }
425
+ wp_update_term_count_now($terms, $attributeName);
426
  }
427
  }
428
  }
473
  return FALSE;
474
  }
475
  if ($this->getImport()->options['update_all_data'] == "no" && $this->getImport()->options['update_categories_logic'] == "only" && ((!empty($this->getImport()->options['taxonomies_list'])
476
+ && is_array($this->getImport()->options['taxonomies_list']) && ! in_array($tx_name, $this->getImport()->options['taxonomies_list'])) || empty($this->getImport()->options['taxonomies_list']))) {
477
  return FALSE;
478
  }
479
  }
512
  * @return bool
513
  */
514
  public function isUpdateCustomField($meta_key) {
 
515
  $options = $this->getImport()->options;
 
516
  if ($options['update_all_data'] == 'yes') {
517
  return TRUE;
518
  }
 
519
  if (!$options['is_update_custom_fields']) {
520
  return FALSE;
521
  }
 
522
  if ($options['update_custom_fields_logic'] == "full_update") {
523
  return TRUE;
524
  }
559
  * @return array
560
  */
561
  public static function arrayCartesian($input) {
 
562
  $result = array();
563
+ foreach ($input as $key => $values) {
564
+ // If a sub-array is empty, it doesn't affect the cartesian product
565
+ if ( empty( $values ) ) {
566
+ continue;
567
+ }
568
+ // Special case: seeding the product array with the values from the first sub-array
569
+ if ( empty( $result ) ) {
570
+ foreach ( $values as $value ) {
571
+ $result[] = array( $key => $value );
572
+ }
573
+ } else {
574
+ // Second and subsequent input sub-arrays work like this:
575
+ // 1. In each existing array inside $product, add an item with
576
+ // key == $key and value == first item in input sub-array
577
+ // 2. Then, for each remaining item in current input sub-array,
578
+ // add a copy of each existing array inside $product with
579
+ // key == $key and value == first item in current input sub-array
580
+
581
+ // Store all items to be added to $product here; adding them on the spot
582
+ // inside the foreach will result in an infinite loop
583
+ $append = array();
584
+ foreach( $result as &$product ) {
585
+ // Do step 1 above. array_shift is not the most efficient, but it
586
+ // allows us to iterate over the rest of the items with a simple
587
+ // foreach, making the code short and familiar.
588
+ $product[ $key ] = array_shift( $values );
589
+ // $product is by reference (that's why the key we added above
590
+ // will appear in the end result), so make a copy of it here
591
+ $copy = $product;
592
+ // Do step 2 above.
593
+ foreach( $values as $item ) {
594
+ $copy[ $key ] = $item;
595
+ $append[] = $copy;
596
+ }
597
+ // Undo the side effecst of array_shift
598
+ array_unshift( $values, $product[ $key ] );
599
+ }
600
+ // Out of the foreach, we can add to $results now
601
+ $result = array_merge( $result, $append );
602
+ }
 
 
 
 
 
 
 
603
  }
 
604
  return $result;
605
  }
606
 
libraries/importer/ProductsImporter.php CHANGED
@@ -155,8 +155,7 @@ class ProductsImporter extends Importer {
155
  if (!empty($tmp_gallery)) {
156
  $gallery = array_unique(array_merge($gallery, $tmp_gallery));
157
  }
158
- }
159
- elseif (!empty($tmp_gallery)) {
160
  $gallery = array_unique($tmp_gallery);
161
  }
162
  // Do not add featured image to the gallery.
@@ -168,7 +167,6 @@ class ProductsImporter extends Importer {
168
  }
169
  }
170
  }
171
-
172
  $this->getImportService()->pushMeta( $post_to_update_id, '_product_image_gallery', implode(",", $gallery), $this->isNewProduct );
173
  }
174
  }
155
  if (!empty($tmp_gallery)) {
156
  $gallery = array_unique(array_merge($gallery, $tmp_gallery));
157
  }
158
+ } elseif (!empty($tmp_gallery)) {
 
159
  $gallery = array_unique($tmp_gallery);
160
  }
161
  // Do not add featured image to the gallery.
167
  }
168
  }
169
  }
 
170
  $this->getImportService()->pushMeta( $post_to_update_id, '_product_image_gallery', implode(",", $gallery), $this->isNewProduct );
171
  }
172
  }
libraries/importer/products/ImportProduct.php CHANGED
@@ -185,7 +185,7 @@ abstract class ImportProduct extends ImportProductBase {
185
  $order = new \WC_Order($orderID);
186
  foreach ($_file_paths as $download_id => $download_data) {
187
  // Grant permission if it doesn't already exist.
188
- if ( ! $wpdb->get_var( $wpdb->prepare( "SELECT 1=1 FROM {$wpdb->prefix}woocommerce_downloadable_product_permissions WHERE order_id = %d AND product_id = %d AND download_id = %s", $order->id, $this->getPid(), $download_id ) ) ) {
189
  wc_downloadable_file_permission( $download_id, $this->getPid(), $order );
190
  }
191
  }
185
  $order = new \WC_Order($orderID);
186
  foreach ($_file_paths as $download_id => $download_data) {
187
  // Grant permission if it doesn't already exist.
188
+ if ( ! $wpdb->get_var( $wpdb->prepare( "SELECT 1=1 FROM {$wpdb->prefix}woocommerce_downloadable_product_permissions WHERE order_id = %d AND product_id = %d AND download_id = %s", $order->get_id(), $this->getPid(), $download_id ) ) ) {
189
  wc_downloadable_file_permission( $download_id, $this->getPid(), $order );
190
  }
191
  }
libraries/parser/ProductsParserBase.php CHANGED
@@ -78,9 +78,7 @@ abstract class ProductsParserBase extends Parser {
78
  if ("" != $this->getImport()->options['single_' . $option]) {
79
  $this->data[$option] = XmlImportParser::factory($this->getXml(), $this->getCompleteXPath(), $this->getImport()->options['single_' . $option], $file)
80
  ->parse();
81
-
82
  $this->tmp_files[] = $file;
83
-
84
  switch ($option) {
85
  case 'product_regular_price':
86
  case 'product_sale_price':
@@ -207,7 +205,7 @@ abstract class ProductsParserBase extends Parser {
207
  */
208
  public function parseGroupingProducts() {
209
  try {
210
- if ($this->getImport()->options['is_multiple_grouping_product'] != 'yes') {
211
  if ($this->getImport()->options['grouping_indicator'] == 'xpath') {
212
  if ("" != $this->getImport()->options['single_grouping_product']) {
213
  $this->data['product_grouping_parent'] = XmlImportParser::factory($this->getXml(), $this->getCompleteXPath(), $this->getImport()->options['single_grouping_product'], $file)
@@ -376,7 +374,6 @@ abstract class ProductsParserBase extends Parser {
376
  ->parse();
377
  $this->tmp_files[] = $file;
378
  }
379
-
380
  foreach ($attribute_options[$option][$j] as $key => $value) {
381
  if (!in_array($value, array('yes', 'no'))) {
382
  $attribute_options[$option][$j][$key] = 1;
78
  if ("" != $this->getImport()->options['single_' . $option]) {
79
  $this->data[$option] = XmlImportParser::factory($this->getXml(), $this->getCompleteXPath(), $this->getImport()->options['single_' . $option], $file)
80
  ->parse();
 
81
  $this->tmp_files[] = $file;
 
82
  switch ($option) {
83
  case 'product_regular_price':
84
  case 'product_sale_price':
205
  */
206
  public function parseGroupingProducts() {
207
  try {
208
+ if ($this->getImport()->options['is_multiple_grouping_product'] == 'no') {
209
  if ($this->getImport()->options['grouping_indicator'] == 'xpath') {
210
  if ("" != $this->getImport()->options['single_grouping_product']) {
211
  $this->data['product_grouping_parent'] = XmlImportParser::factory($this->getXml(), $this->getCompleteXPath(), $this->getImport()->options['single_grouping_product'], $file)
374
  ->parse();
375
  $this->tmp_files[] = $file;
376
  }
 
377
  foreach ($attribute_options[$option][$j] as $key => $value) {
378
  if (!in_array($value, array('yes', 'no'))) {
379
  $attribute_options[$option][$j][$key] = 1;
libraries/services/XmlImportWooPriceService.php CHANGED
@@ -83,18 +83,15 @@ class XmlImportWooPriceService extends XmlImportWooServiceBase {
83
  $price = str_replace(".", "", $price);
84
  $comma_position = strrpos($price, ",");
85
  $price = str_replace(",", "", substr_replace($price, ".", $comma_position, 1));
86
- }
87
- else {
88
  $comma_position = strrpos($price, ".", strlen($price) - 3);
89
  if ($comma_position !== FALSE) {
90
  $price = str_replace(",", "", $price);
91
- }
92
- elseif (strlen($price) > 4) {
93
  $comma_position = strrpos($price, ",", strlen($price) - 4);
94
  if ($comma_position and strlen($price) - $comma_position == 4) {
95
  $price = str_replace(",", "", $price);
96
- }
97
- else {
98
  $comma_position = strrpos($price, ".", strlen($price) - 4);
99
  if ($comma_position and strlen($price) - $comma_position == 4) {
100
  $price = str_replace(".", "", $price);
83
  $price = str_replace(".", "", $price);
84
  $comma_position = strrpos($price, ",");
85
  $price = str_replace(",", "", substr_replace($price, ".", $comma_position, 1));
86
+ } else {
 
87
  $comma_position = strrpos($price, ".", strlen($price) - 3);
88
  if ($comma_position !== FALSE) {
89
  $price = str_replace(",", "", $price);
90
+ } elseif (strlen($price) > 4) {
 
91
  $comma_position = strrpos($price, ",", strlen($price) - 4);
92
  if ($comma_position and strlen($price) - $comma_position == 4) {
93
  $price = str_replace(",", "", $price);
94
+ } else {
 
95
  $comma_position = strrpos($price, ".", strlen($price) - 4);
96
  if ($comma_position and strlen($price) - $comma_position == 4) {
97
  $price = str_replace(".", "", $price);
libraries/services/XmlImportWooTaxonomyService.php CHANGED
@@ -84,8 +84,7 @@ class XmlImportWooTaxonomyService extends XmlImportWooServiceBase {
84
  if ( in_array( wc_sanitize_taxonomy_name( stripslashes( (string) $attr_name_real)), $this->reserved_terms ) ) {
85
  $prefix++;
86
  return $this->createTaxonomy($attr_name, $prefix);
87
- }
88
- else {
89
  // Register the taxonomy now so that the import works!
90
  $domain = wc_attribute_taxonomy_name( $attr_name_real );
91
  if (strlen($domain) < 31){
@@ -100,23 +99,19 @@ class XmlImportWooTaxonomyService extends XmlImportWooServiceBase {
100
  );
101
  $this->createWooCommerceAttribute($args);
102
  $this->getLogger() and call_user_func($this->getLogger(), sprintf(__('- <b>CREATED</b>: Taxonomy attribute “%s” have been successfully created.', \PMWI_Plugin::TEXT_DOMAIN), wc_attribute_taxonomy_name( $attribute_name )));
103
- }
104
- else {
105
  $this->getLogger() and call_user_func($this->getLogger(), sprintf(__('- <b>WARNING</b>: Taxonomy “%s” name is more than 28 characters. Change it, please.', \PMWI_Plugin::TEXT_DOMAIN), $attr_name));
106
  }
107
  }
108
- }
109
- else {
110
  if ( in_array( wc_sanitize_taxonomy_name( stripslashes( (string) $attr_name_real)), $this->reserved_terms ) ) {
111
  $prefix++;
112
  return $this->createTaxonomy($attr_name, $prefix);
113
  }
114
  }
115
-
116
  if (!wc_attribute_taxonomy_id_by_name($attr_name_real) && strlen($attribute_name) < 31) {
117
  $this->createWooCommerceAttribute($args);
118
  }
119
-
120
  return $attr_name_real;
121
  }
122
 
@@ -130,7 +125,6 @@ class XmlImportWooTaxonomyService extends XmlImportWooServiceBase {
130
  wp_cache_delete($prefix . $cache_key, 'woocommerce-attributes');
131
  }
132
  delete_transient('wc_attribute_taxonomies');
133
-
134
  $this->wpdb->insert(
135
  $this->wpdb->prefix . 'woocommerce_attribute_taxonomies',
136
  $args
84
  if ( in_array( wc_sanitize_taxonomy_name( stripslashes( (string) $attr_name_real)), $this->reserved_terms ) ) {
85
  $prefix++;
86
  return $this->createTaxonomy($attr_name, $prefix);
87
+ } else {
 
88
  // Register the taxonomy now so that the import works!
89
  $domain = wc_attribute_taxonomy_name( $attr_name_real );
90
  if (strlen($domain) < 31){
99
  );
100
  $this->createWooCommerceAttribute($args);
101
  $this->getLogger() and call_user_func($this->getLogger(), sprintf(__('- <b>CREATED</b>: Taxonomy attribute “%s” have been successfully created.', \PMWI_Plugin::TEXT_DOMAIN), wc_attribute_taxonomy_name( $attribute_name )));
102
+ } else {
 
103
  $this->getLogger() and call_user_func($this->getLogger(), sprintf(__('- <b>WARNING</b>: Taxonomy “%s” name is more than 28 characters. Change it, please.', \PMWI_Plugin::TEXT_DOMAIN), $attr_name));
104
  }
105
  }
106
+ } else {
 
107
  if ( in_array( wc_sanitize_taxonomy_name( stripslashes( (string) $attr_name_real)), $this->reserved_terms ) ) {
108
  $prefix++;
109
  return $this->createTaxonomy($attr_name, $prefix);
110
  }
111
  }
 
112
  if (!wc_attribute_taxonomy_id_by_name($attr_name_real) && strlen($attribute_name) < 31) {
113
  $this->createWooCommerceAttribute($args);
114
  }
 
115
  return $attr_name_real;
116
  }
117
 
125
  wp_cache_delete($prefix . $cache_key, 'woocommerce-attributes');
126
  }
127
  delete_transient('wc_attribute_taxonomies');
 
128
  $this->wpdb->insert(
129
  $this->wpdb->prefix . 'woocommerce_attribute_taxonomies',
130
  $args
models/import/record.php CHANGED
@@ -141,7 +141,17 @@ class PMWI_Import_Record extends PMWI_Model_Record {
141
  $variationID = $pid;
142
  }
143
  if ($gallery = get_post_meta($product->get_id(), '_product_image_gallery', TRUE)) {
144
- update_post_meta($variationID, '_wc_additional_variation_images', $gallery);
 
 
 
 
 
 
 
 
 
 
145
  }
146
  }
147
  }
141
  $variationID = $pid;
142
  }
143
  if ($gallery = get_post_meta($product->get_id(), '_product_image_gallery', TRUE)) {
144
+ $key = null;
145
+ if ( class_exists( 'Woo_Variation_Gallery' ) ) {
146
+ $key = 'woo_variation_gallery_images';
147
+ $gallery = explode( ',', trim( $gallery, ',' ) );
148
+ } elseif ( class_exists( 'WC_Additional_Variation_Images' ) ) {
149
+ $key = '_wc_additional_variation_images';
150
+ }
151
+
152
+ if ( ! empty( $key ) ) {
153
+ update_post_meta($variationID, $key, $gallery);
154
+ }
155
  }
156
  }
157
  }
plugin.php CHANGED
@@ -3,9 +3,9 @@
3
  Plugin Name: WP All Import - WooCommerce Add-On
4
  Plugin URI: http://www.wpallimport.com/woocommerce-product-import/?utm_source=import-wooco-products-addon-free&utm_medium=wp-plugins-page&utm_campaign=upgrade-to-pro
5
  Description: An extremely easy, drag & drop importer to import WooCommerce simple products. A paid upgrade is available for premium support and support for Variable, Grouped, and External/Affiliate products
6
- Version: 1.4.7
7
  Author: Soflyy
8
- WC tested up to: 5.2.2
9
  */
10
 
11
  if ( ! function_exists( 'is_plugin_active' ) ) {
@@ -25,7 +25,7 @@ if ( is_plugin_active('wpai-woocommerce-add-on/wpai-woocommerce-add-on.php') ) {
25
  }
26
  else {
27
 
28
- define('PMWI_FREE_VERSION', '1.4.7');
29
 
30
  define('PMWI_EDITION', 'free');
31
 
3
  Plugin Name: WP All Import - WooCommerce Add-On
4
  Plugin URI: http://www.wpallimport.com/woocommerce-product-import/?utm_source=import-wooco-products-addon-free&utm_medium=wp-plugins-page&utm_campaign=upgrade-to-pro
5
  Description: An extremely easy, drag & drop importer to import WooCommerce simple products. A paid upgrade is available for premium support and support for Variable, Grouped, and External/Affiliate products
6
+ Version: 1.4.8
7
  Author: Soflyy
8
+ WC tested up to: 5.7.1
9
  */
10
 
11
  if ( ! function_exists( 'is_plugin_active' ) ) {
25
  }
26
  else {
27
 
28
+ define('PMWI_FREE_VERSION', '1.4.8');
29
 
30
  define('PMWI_EDITION', 'free');
31
 
readme.txt CHANGED
@@ -1,8 +1,8 @@
1
  === Import Products from any XML or CSV to WooCommerce ===
2
  Contributors: soflyy, wpallimport
3
  Requires at least: 4.1
4
- Tested up to: 5.7.1
5
- Stable tag: 1.4.7
6
  License: GPLv2 or later
7
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
8
  Tags: woocommerce xml import, woocommerce csv import, woocommerce, import, xml, csv, wp all import, csv import, import csv, xml import, import xml, woocommerce csv importer, woocommerce xml importer, csv importer, csv import suite
@@ -83,6 +83,9 @@ The WooCommerce add-on will appear in the Step 4 of WP All Import.
83
 
84
  == Changelog ==
85
 
 
 
 
86
  = 1.4.7 =
87
  * bug fix: matching linked products didn't work properly, this functionality moved to the end of import process
88
  * bug fix: import download limit and download expiry are set to 1, instead of being provided empty values
@@ -250,4 +253,4 @@ The WooCommerce add-on will appear in the Step 4 of WP All Import.
250
 
251
  Support for the free version of WP All Import is handled through the WordPress.org community forums.
252
 
253
- Support is not guaranteed and is based on ability. For premium support over email, [purchase WP All Import and the WooCommerce add-on.](https://www.wpallimport.com/checkout/?edd_action=purchase_collection&taxonomy=download_category&terms=14&utm_source=import-wooco-products-addon-free&utm_medium=readme&utm_campaign=premium-support)
1
  === Import Products from any XML or CSV to WooCommerce ===
2
  Contributors: soflyy, wpallimport
3
  Requires at least: 4.1
4
+ Tested up to: 5.8
5
+ Stable tag: 1.4.8
6
  License: GPLv2 or later
7
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
8
  Tags: woocommerce xml import, woocommerce csv import, woocommerce, import, xml, csv, wp all import, csv import, import csv, xml import, import xml, woocommerce csv importer, woocommerce xml importer, csv importer, csv import suite
83
 
84
  == Changelog ==
85
 
86
+ = 1.4.8 =
87
+ * bug fix: downloadable permissions wan not imported correctly
88
+
89
  = 1.4.7 =
90
  * bug fix: matching linked products didn't work properly, this functionality moved to the end of import process
91
  * bug fix: import download limit and download expiry are set to 1, instead of being provided empty values
253
 
254
  Support for the free version of WP All Import is handled through the WordPress.org community forums.
255
 
256
+ Support is not guaranteed and is based on ability. For premium support over email, [purchase WP All Import and the WooCommerce add-on.](https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707227&edd_options%5Bprice_id%5D=1)
static/css/admin.css CHANGED
@@ -85,7 +85,7 @@
85
  margin: 5px 0 15px 5px;
86
  }
87
  .wpallimport-plugin .in_variations label, .wpallimport-plugin .is_visible label, .wpallimport-plugin .is_taxonomy label{
88
- width: 80px;
89
  }
90
  .wpallimport-plugin .is_create_taxonomy label{
91
  width: 115px;
@@ -204,7 +204,7 @@
204
 
205
  .wpallimport-plugin table.custom-params label{
206
  font-size: 12px;
207
- left: 3px;
208
  margin-left: 0 !important;
209
  padding-left: 0 !important;
210
  position: relative;
@@ -308,7 +308,19 @@
308
  }
309
  .wpallimport-plugin #woocommerce-product-data .form-field,
310
  .wpallimport-plugin .woocommerce-order-data .form-field{
 
 
 
 
 
 
311
  padding-left: 20px;
 
 
 
 
 
 
312
  }
313
  .wpallimport-plugin .pmwi_percentage_prices_note,
314
  .wpallimport-plugin .pmwi_reduce_prices_note{
@@ -321,34 +333,85 @@
321
  cursor: pointer;
322
  width: 330px;
323
  }
324
- .wpallimport-plugin .advanced_attributes{
 
 
 
325
  display: inline-block;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
326
  float: left;
327
  width: 16px;
328
  height: 16px;
329
- margin: 6px 3px 0px 3px;
330
- }
331
- .wpallimport-plugin .advanced_attributes{
 
 
 
332
  font-size: 12px;
333
  width:100%;
334
  height:25px;
335
  color:#21759B;
336
- /*font-family: "Open Sans",​sans-serif;*/
337
  padding-top: 2px;
338
- text-decoration: underline;
339
- /*margin: 0 auto; */
340
  }
341
  .wpallimport-plugin .advanced_attributes span{
342
  font-size: 16px;
343
  position: relative;
344
  top: 1px;
345
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
346
  .wpallimport-plugin .advanced_attribute_settings{
347
  clear: both;
348
  display: none;
349
- margin-bottom: 10px;
350
- padding-bottom: 5px;
351
- border-bottom: 1px solid #e5e5e5;
352
  }
353
  .wpallimport-plugin .advanced_attribute_settings div.input{
354
  clear: both;
@@ -381,6 +444,7 @@
381
  .wpallimport-plugin .advanced_attribute_settings input[type="radio"]{
382
  float: left;
383
  }
 
384
  /*.wpallimport-plugin .shop_order_tabs li a::before{
385
  content: "" !important;
386
  }*/
@@ -390,12 +454,6 @@
390
  .wpallimport-plugin .wpallimport-order-billing-fields input[type="text"]{
391
  width: 100% !important;
392
  }
393
- .wpallimport-plugin a.add-new-line{
394
- position: relative;
395
- top:-10px;
396
- background: rgba(0, 0, 0, 0) url("../img/add.png") no-repeat scroll 0 3px;
397
- padding-left: 15px;
398
- }
399
  /*.wpallimport-plugin .woocommerce-order-data a.add-new-line::before{
400
  content: "+ ";
401
  color: grey;
@@ -502,6 +560,7 @@ div#order_taxes.panel.woocommerce_options_panel {
502
  background: url("../img/drag.png") top right no-repeat;
503
  cursor: pointer;
504
  padding-left: 25px;
 
505
  background-position: 0 10px;
506
  }
507
  #attributes_table .ui-sortable-placeholder,
@@ -511,6 +570,11 @@ div#order_taxes.panel.woocommerce_options_panel {
511
  height: 100px;
512
  }
513
 
 
 
 
 
 
514
  /****************/
515
  /* Free Edition */
516
  /****************/
@@ -550,4 +614,70 @@ div#order_taxes.panel.woocommerce_options_panel {
550
  }
551
  .wpallimport-plugin .subscription-expiration {
552
  margin-bottom: 10px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
553
  }
85
  margin: 5px 0 15px 5px;
86
  }
87
  .wpallimport-plugin .in_variations label, .wpallimport-plugin .is_visible label, .wpallimport-plugin .is_taxonomy label{
88
+ width: auto;
89
  }
90
  .wpallimport-plugin .is_create_taxonomy label{
91
  width: 115px;
204
 
205
  .wpallimport-plugin table.custom-params label{
206
  font-size: 12px;
207
+ left: 5px;
208
  margin-left: 0 !important;
209
  padding-left: 0 !important;
210
  position: relative;
308
  }
309
  .wpallimport-plugin #woocommerce-product-data .form-field,
310
  .wpallimport-plugin .woocommerce-order-data .form-field{
311
+ margin-top: 10px;
312
+ padding-left: 20px;
313
+ }
314
+ .wpallimport-plugin #woocommerce-product-data .form-field,
315
+ .wpallimport-plugin .woocommerce-order-data .form-field{
316
+ margin-top: 10px;
317
  padding-left: 20px;
318
+ border-collapse: separate;
319
+ border-spacing: 10px;
320
+ }
321
+ .wpallimport-plugin .woocommerce-order-data .form-field table {
322
+ border-collapse: separate;
323
+ border-spacing: 10px;
324
  }
325
  .wpallimport-plugin .pmwi_percentage_prices_note,
326
  .wpallimport-plugin .pmwi_reduce_prices_note{
333
  cursor: pointer;
334
  width: 330px;
335
  }
336
+ .wpallimport-plugin .pmwi_trigger_adjust_prices > strong > span.expanded:before,
337
+ .wpallimport-plugin .pmwi_trigger_adjust_prices > strong > span:before,
338
+ .wpallimport-plugin a.switcher > span {
339
+ content: '';
340
  display: inline-block;
341
+ background: url('../img/caret.png') no-repeat;
342
+ background-position-x: 0%;
343
+ background-position-y: 0%;
344
+ background-size: auto;
345
+ background-size: contain;
346
+ width: 14px;
347
+ height: 12px;
348
+ color: transparent;
349
+ background-size: auto;
350
+ background-position: 1px -1px;
351
+ transform: scaleY(-1);
352
+ margin-right: 2px;
353
+ }
354
+ .wpallimport-plugin .pmwi_trigger_adjust_prices > strong > span.expanded:before,
355
+ .wpallimport-plugin a.switcher > span.expanded {
356
+ background-position: 1px 1px;
357
+ transform: scaleY(1);
358
+ }
359
+ .wpallimport-plugin .wpallimport-template select.pmwi_adjust_type {
360
+ padding: 2px 25px 2px 6px;
361
+ margin-left: 6px;
362
+ }
363
+ .wpallimport-plugin .advanced_attributes{
364
+ display: block;
365
  float: left;
366
  width: 16px;
367
  height: 16px;
368
+ margin: 0;
369
+ padding-top: 0;
370
+ padding-bottom: 10px;
371
+ position: relative;
372
+ left: 0;
373
+ text-align: right;
374
  font-size: 12px;
375
  width:100%;
376
  height:25px;
377
  color:#21759B;
 
378
  padding-top: 2px;
379
+ text-decoration: underline;
380
+ text-align: left;
381
  }
382
  .wpallimport-plugin .advanced_attributes span{
383
  font-size: 16px;
384
  position: relative;
385
  top: 1px;
386
  }
387
+
388
+ .wpallimport-plugin .advanced_attributes:before,
389
+ .wpallimport-plugin .advanced_attributes.expanded:before {
390
+ content: '';
391
+ display: inline-block;
392
+ background: url('../img/caret.png') no-repeat;
393
+ background-position-x: 0%;
394
+ background-position-y: 0%;
395
+ background-size: auto;
396
+ background-size: contain;
397
+ width: 14px;
398
+ height: 12px;
399
+ color: transparent;
400
+ background-size: auto;
401
+ background-position: 1px -1px;
402
+ transform: scaleY(-1);
403
+ margin-right: 4px;
404
+ }
405
+
406
+ .wpallimport-plugin .advanced_attributes.expanded:before {
407
+ transform: scaleY(1);
408
+ background-position: 1px 1px;
409
+ }
410
+
411
  .wpallimport-plugin .advanced_attribute_settings{
412
  clear: both;
413
  display: none;
414
+ margin-bottom: 30px;
 
 
415
  }
416
  .wpallimport-plugin .advanced_attribute_settings div.input{
417
  clear: both;
444
  .wpallimport-plugin .advanced_attribute_settings input[type="radio"]{
445
  float: left;
446
  }
447
+
448
  /*.wpallimport-plugin .shop_order_tabs li a::before{
449
  content: "" !important;
450
  }*/
454
  .wpallimport-plugin .wpallimport-order-billing-fields input[type="text"]{
455
  width: 100% !important;
456
  }
 
 
 
 
 
 
457
  /*.wpallimport-plugin .woocommerce-order-data a.add-new-line::before{
458
  content: "+ ";
459
  color: grey;
560
  background: url("../img/drag.png") top right no-repeat;
561
  cursor: pointer;
562
  padding-left: 25px;
563
+ margin-left: -25px;
564
  background-position: 0 10px;
565
  }
566
  #attributes_table .ui-sortable-placeholder,
570
  height: 100px;
571
  }
572
 
573
+ #attributes_table thead tr td,
574
+ #variable_product_options #variation_attributes_table thead tr td {
575
+ padding-bottom: 5px;
576
+ }
577
+
578
  /****************/
579
  /* Free Edition */
580
  /****************/
614
  }
615
  .wpallimport-plugin .subscription-expiration {
616
  margin-bottom: 10px;
617
+ }
618
+
619
+ .wpallimport-plugin #order_refunds label {
620
+ float: none;
621
+ }
622
+
623
+ .wpallimport-plugin #order_refunds .date {
624
+ display: flex;
625
+ flex-direction: row;
626
+ align-items: center;
627
+ }
628
+
629
+ #shipping_product_data .form-field.dimensions-field {
630
+ margin-top: 20px;
631
+ margin-bottom: 5px;
632
+ }
633
+
634
+ #shipping_product_data .dimensions-field,
635
+ #shipping_product_data .weight-field {
636
+ display: flex;
637
+ flex-direction: row;
638
+ }
639
+
640
+ #shipping_product_data .dimensions-field > label,
641
+ #shipping_product_data .weight-field > label {
642
+ float: none;
643
+ flex: 1;
644
+ }
645
+
646
+ #shipping_product_data .dimensions-field > div,
647
+ #shipping_product_data .weight-field > div {
648
+ display: flex;
649
+ flex-direction: column;
650
+ flex: 2;
651
+ }
652
+
653
+ #shipping_product_data .dimensions-field > div > input,
654
+ #shipping_product_data .weight-field > div > input {
655
+ width: 60%;
656
+ }
657
+
658
+ #shipping_product_data .switcher-target-multiple_product_shipping_class_yes {
659
+ margin-left: 24px;
660
+ }
661
+
662
+ #shipping_product_data input[name="single_product_width"],
663
+ #shipping_product_data input[name="single_product_height"] {
664
+ margin-top: 10px;
665
+ }
666
+
667
+ .wpallimport-plugin .woocommerce-order-data .form-field.add-product-meta {
668
+ padding-left: 0 !important;
669
+ border-spacing: 0 !important;
670
+ }
671
+
672
+ @media screen and (min-width: 1340px) {
673
+ .wpallimport-plugin .advanced_attributes{
674
+ position: absolute;
675
+ width: auto;
676
+ left: initial;
677
+ right: 0;
678
+ }
679
+
680
+ .wpallimport-plugin .in_variations, .wpallimport-plugin .is_visible, .wpallimport-plugin .is_taxonomy{
681
+ margin: 5px 30px 30px 0;
682
+ }
683
  }
static/img/caret.png ADDED
Binary file
static/js/admin.js CHANGED
@@ -481,17 +481,13 @@
481
  });
482
 
483
  $('.pmwi_trigger_adjust_prices').click(function(){
484
- if ($(this).find('span').html() == '-') {
485
- $(this).find('span').html('+');
486
- } else {
487
- $(this).find('span').html('-');
488
- }
489
  $('.pmwi_adjust_prices').slideToggle();
490
  });
491
 
492
  $('.advanced_attributes').on('click', function(){
493
  var $parent = $(this).parent('div.wpallimport-radio-field:first');
494
- if ($(this).find('span').html() == "+") {
495
  $parent.find('.default_attribute_settings').hide();
496
  $parent.find('.advanced_attribute_settings').each(function(){
497
  $(this).find('.advanced_in_variations, .advanced_is_visible, .advanced_is_taxonomy, .advanced_is_create_terms').each(function(){
@@ -502,12 +498,12 @@
502
  });
503
  $parent.find('.advanced_attribute_settings').fadeIn();
504
  $parent.find('input[name^=is_advanced]').val('1');
505
- $(this).find('span').html("-");
506
  } else {
507
  $parent.find('.advanced_attribute_settings').hide();
508
  $parent.find('.default_attribute_settings').fadeIn();
509
  $parent.find('input[name^=is_advanced]').val('0');
510
- $(this).find('span').html("+");
511
  }
512
  });
513
 
@@ -609,7 +605,7 @@
609
  var $targets = $('.switcher-target-' + $(this).attr('id'));
610
  var is_show = $(this).find('span').html() == '+'; if ($(this).is('.switcher-reversed')) is_show = ! is_show;
611
  if (is_show) {
612
- $(this).find('span').html('-');
613
  if ($targets.find('a.add-new-line').length){
614
  var $parent = $targets.find('a.add-new-line').parents('table:first');
615
  if ($parent.children('tbody').children('tr').length == 2){
@@ -618,7 +614,7 @@
618
  }
619
  $targets.slideDown('slow');
620
  } else {
621
- $(this).find('span').html('+');
622
  $targets.slideUp().find('.clear-on-switch').add($targets.filter('.clear-on-switch')).val('');
623
  }
624
  }).click();
481
  });
482
 
483
  $('.pmwi_trigger_adjust_prices').click(function(){
484
+ $(this).find('span').toggleClass('expanded');
 
 
 
 
485
  $('.pmwi_adjust_prices').slideToggle();
486
  });
487
 
488
  $('.advanced_attributes').on('click', function(){
489
  var $parent = $(this).parent('div.wpallimport-radio-field:first');
490
+ if (!$(this).hasClass('expanded')) {
491
  $parent.find('.default_attribute_settings').hide();
492
  $parent.find('.advanced_attribute_settings').each(function(){
493
  $(this).find('.advanced_in_variations, .advanced_is_visible, .advanced_is_taxonomy, .advanced_is_create_terms').each(function(){
498
  });
499
  $parent.find('.advanced_attribute_settings').fadeIn();
500
  $parent.find('input[name^=is_advanced]').val('1');
501
+ $(this).addClass('expanded');
502
  } else {
503
  $parent.find('.advanced_attribute_settings').hide();
504
  $parent.find('.default_attribute_settings').fadeIn();
505
  $parent.find('input[name^=is_advanced]').val('0');
506
+ $(this).removeClass('expanded');
507
  }
508
  });
509
 
605
  var $targets = $('.switcher-target-' + $(this).attr('id'));
606
  var is_show = $(this).find('span').html() == '+'; if ($(this).is('.switcher-reversed')) is_show = ! is_show;
607
  if (is_show) {
608
+ $(this).find('span').html('-').addClass('expanded');
609
  if ($targets.find('a.add-new-line').length){
610
  var $parent = $targets.find('a.add-new-line').parents('table:first');
611
  if ($parent.children('tbody').children('tr').length == 2){
614
  }
615
  $targets.slideDown('slow');
616
  } else {
617
+ $(this).find('span').html('+').removeClass('expanded');
618
  $targets.slideUp().find('.clear-on-switch').add($targets.filter('.clear-on-switch')).val('');
619
  }
620
  }).click();
views/admin/import/product/_tabs/_advanced.php CHANGED
@@ -1,7 +1,7 @@
1
  <div class="panel woocommerce_options_panel" id="advanced_product_data" style="display:none;">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
- <a href="https://www.wpallimport.com/checkout/?edd_action=purchase_collection&taxonomy=download_category&terms=14&utm_source=import-wooco-products-addon-free&utm_medium=upgrade-notice&utm_campaign=import-variable-wooco-products" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
1
  <div class="panel woocommerce_options_panel" id="advanced_product_data" style="display:none;">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
+ <a href="https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707227&edd_options%5Bprice_id%5D=1" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
views/admin/import/product/_tabs/_attributes.php CHANGED
@@ -2,7 +2,7 @@
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div style="margin-left:-2%;">
4
  <div class="woo-add-on-free-edition-notice upgrade_template" style="margin-top:0;">
5
- <a href="https://www.wpallimport.com/checkout/?edd_action=purchase_collection&taxonomy=download_category&terms=14&utm_source=import-wooco-products-addon-free&utm_medium=upgrade-notice&utm_campaign=import-variable-wooco-products" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
6
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
7
  </div>
8
  </div>
@@ -33,7 +33,7 @@
33
  <span class="wpallimport-clear"></span>
34
  <div class="form-field wpallimport-radio-field" style="padding: 0 !important; position: relative; left: -100%; width: 200%;">
35
 
36
- <a href="javascript:void(0);" id="advanced_attributes_<?php echo $i; ?>" class="action advanced_attributes"><span>+</span> <?php _e('Advanced', PMWI_Plugin::TEXT_DOMAIN) ?></a>
37
  <input type="hidden" value="<?php echo (empty($post['is_advanced'][$i])) ? '0' : $post['is_advanced'][$i];?>" name="is_advanced[]">
38
 
39
  <span class="default_attribute_settings">
@@ -152,7 +152,7 @@
152
 
153
  </div>
154
  </td>
155
- <td class="action remove"><a href="#remove" style="top:9px;"></a></td>
156
  </tr>
157
  <?php endforeach ?>
158
  <?php else: ?>
@@ -167,7 +167,7 @@
167
  <span class="wpallimport-clear"></span>
168
  <div class="form-field wpallimport-radio-field" style="padding: 0 !important; position: relative; left: -100%; width: 200%;">
169
 
170
- <a href="javascript:void(0);" id="advanced_attributes_0" class="action advanced_attributes"><span>+</span> <?php _e('Advanced', PMWI_Plugin::TEXT_DOMAIN) ?></a>
171
  <input type="hidden" value="0" name="is_advanced[]">
172
 
173
  <span class="default_attribute_settings">
@@ -283,7 +283,7 @@
283
 
284
  </div>
285
  </td>
286
- <td class="action remove"><a href="#remove" style="top: 9px;"></a></td>
287
  </tr>
288
  <?php endif;?>
289
  <tr class="form-field template">
@@ -297,7 +297,7 @@
297
  <span class="wpallimport-clear"></span>
298
  <div class="form-field wpallimport-radio-field" style="padding: 0 !important; position: relative; left: -100%; width: 200%;">
299
 
300
- <a href="javascript:void(0);" id="advanced_attributes_0" class="action advanced_attributes"><span>+</span> <?php _e('Advanced', PMWI_Plugin::TEXT_DOMAIN) ?></a>
301
  <input type="hidden" value="0" name="is_advanced[]">
302
 
303
  <span class="default_attribute_settings">
@@ -413,7 +413,7 @@
413
 
414
  </div>
415
  </td>
416
- <td class="action remove"><a href="#remove" style="top: 9px;"></a></td>
417
  </tr>
418
  <tr class="wpallimport-table-actions">
419
  <td colspan="3"><a href="#add" title="<?php _e('add', PMWI_Plugin::TEXT_DOMAIN)?>" class="action add-new-custom"><?php _e('Add more', PMWI_Plugin::TEXT_DOMAIN) ?></a></td>
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div style="margin-left:-2%;">
4
  <div class="woo-add-on-free-edition-notice upgrade_template" style="margin-top:0;">
5
+ <a href="https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707227&edd_options%5Bprice_id%5D=1" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
6
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
7
  </div>
8
  </div>
33
  <span class="wpallimport-clear"></span>
34
  <div class="form-field wpallimport-radio-field" style="padding: 0 !important; position: relative; left: -100%; width: 200%;">
35
 
36
+ <a href="javascript:void(0);" id="advanced_attributes_<?php echo $i; ?>" class="action advanced_attributes"><?php _e('Advanced', PMWI_Plugin::TEXT_DOMAIN) ?></a>
37
  <input type="hidden" value="<?php echo (empty($post['is_advanced'][$i])) ? '0' : $post['is_advanced'][$i];?>" name="is_advanced[]">
38
 
39
  <span class="default_attribute_settings">
152
 
153
  </div>
154
  </td>
155
+ <td class="action remove"><a href="#remove" style="top:9px;right: 9px;"></a></td>
156
  </tr>
157
  <?php endforeach ?>
158
  <?php else: ?>
167
  <span class="wpallimport-clear"></span>
168
  <div class="form-field wpallimport-radio-field" style="padding: 0 !important; position: relative; left: -100%; width: 200%;">
169
 
170
+ <a href="javascript:void(0);" id="advanced_attributes_0" class="action advanced_attributes"><?php _e('Advanced', PMWI_Plugin::TEXT_DOMAIN) ?></a>
171
  <input type="hidden" value="0" name="is_advanced[]">
172
 
173
  <span class="default_attribute_settings">
283
 
284
  </div>
285
  </td>
286
+ <td class="action remove"><a href="#remove" style="top: 9px;right: 9px;"></a></td>
287
  </tr>
288
  <?php endif;?>
289
  <tr class="form-field template">
297
  <span class="wpallimport-clear"></span>
298
  <div class="form-field wpallimport-radio-field" style="padding: 0 !important; position: relative; left: -100%; width: 200%;">
299
 
300
+ <a href="javascript:void(0);" id="advanced_attributes_0" class="action advanced_attributes"><?php _e('Advanced', PMWI_Plugin::TEXT_DOMAIN) ?></a>
301
  <input type="hidden" value="0" name="is_advanced[]">
302
 
303
  <span class="default_attribute_settings">
413
 
414
  </div>
415
  </td>
416
+ <td class="action remove"><a href="#remove" style="top: 9px;right: 9px;"></a></td>
417
  </tr>
418
  <tr class="wpallimport-table-actions">
419
  <td colspan="3"><a href="#add" title="<?php _e('add', PMWI_Plugin::TEXT_DOMAIN)?>" class="action add-new-custom"><?php _e('Add more', PMWI_Plugin::TEXT_DOMAIN) ?></a></td>
views/admin/import/product/_tabs/_general.php CHANGED
@@ -1,7 +1,7 @@
1
  <div class="panel woocommerce_options_panel" id="general_product_data">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
- <a href="https://www.wpallimport.com/checkout/?edd_action=purchase_collection&taxonomy=download_category&terms=14&utm_source=import-wooco-products-addon-free&utm_medium=upgrade-notice&utm_campaign=import-variable-wooco-products" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
@@ -50,7 +50,7 @@
50
 
51
  <!-- AUTOFIX PRICES -->
52
 
53
- <p class="form-field pmwi_trigger_adjust_prices" style="color:#5EAAAC;"> <strong><span><?php if (!empty($post['single_product_regular_price_adjust']) or !empty($post['single_product_sale_price_adjust'])):?>-<?php else: ?>+<?php endif; ?></span><?php _e(' Adjust Prices', PMWI_Plugin::TEXT_DOMAIN); ?></strong><a href="#help" class="wpallimport-help" title="<?php _e('Mark prices up and down, convert prices to currencies.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top: -1px; left:4px;;">?</a></p>
54
  <div class="pmwi_adjust_prices" <?php if (!empty($post['single_product_regular_price_adjust']) or !empty($post['single_product_sale_price_adjust'])):?>style="display:block;"<?php endif; ?>>
55
  <p class="form-field">
56
  <label><?php printf(__("Regular Price (%s)", PMWI_Plugin::TEXT_DOMAIN), get_woocommerce_currency_symbol()); ?></label>
@@ -82,21 +82,21 @@
82
  <p class="form-field wpallimport-radio-field">
83
  <input type="hidden" name="disable_prepare_price" value="0" />
84
  <input type="checkbox" id="disable_prepare_price" name="disable_prepare_price" value="1" <?php echo $post['disable_prepare_price'] ? 'checked="checked"' : '' ?> />
85
- <label for="disable_prepare_price" style="width:220px;"><?php _e('Remove currency symbols from price', PMWI_Plugin::TEXT_DOMAIN) ?></label>
86
  <a href="#help" class="wpallimport-help" title="<?php _e('Attempt to remove currency symbols from prices.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:1px;">?</a>
87
  </p>
88
 
89
  <p class="form-field wpallimport-radio-field">
90
  <input type="hidden" name="convert_decimal_separator" value="0" />
91
  <input type="checkbox" id="convert_decimal_separator" name="convert_decimal_separator" value="1" <?php echo $post['convert_decimal_separator'] ? 'checked="checked"' : '' ?> />
92
- <label for="convert_decimal_separator" style="width:220px;"><?php _e('Convert decimal separator to a period', PMWI_Plugin::TEXT_DOMAIN) ?></label>
93
  <a href="#help" class="wpallimport-help" title="<?php _e('Prices must be imported using a period as the decimal separator. If you\'d like to change the decimal separator you can do so by editing your WooCommerce settings.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:1px;">?</a>
94
  </p>
95
 
96
  <p class="form-field wpallimport-radio-field">
97
  <input type="hidden" name="prepare_price_to_woo_format" value="0" />
98
  <input type="checkbox" id="prepare_price_to_woo_format" name="prepare_price_to_woo_format" value="1" <?php echo $post['prepare_price_to_woo_format'] ? 'checked="checked"' : '' ?> />
99
- <label for="prepare_price_to_woo_format" style="width:420px;"><?php _e('Attempt to convert incorrectly formatted prices to WooCommerce format', PMWI_Plugin::TEXT_DOMAIN) ?></label>
100
  <a href="#help" class="wpallimport-help" title="<?php _e('WP All Import will attempt to correct the formatting of prices presented incorrectly, but this doesn\'t always work. Try unchecking this option if your prices are not appearing correctly, or enter your prices in your import file using the same format you would when entering them in WooCommerce.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:1px;">?</a>
101
  </p>
102
 
1
  <div class="panel woocommerce_options_panel" id="general_product_data">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
+ <a href="https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707227&edd_options%5Bprice_id%5D=1" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
50
 
51
  <!-- AUTOFIX PRICES -->
52
 
53
+ <p class="form-field pmwi_trigger_adjust_prices" style="color:#5EAAAC;"> <strong><span></span><?php _e(' Adjust Prices', PMWI_Plugin::TEXT_DOMAIN); ?></strong><a href="#help" class="wpallimport-help" title="<?php _e('Mark prices up and down, convert prices to currencies.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top: -1px; left:4px;;">?</a></p>
54
  <div class="pmwi_adjust_prices" <?php if (!empty($post['single_product_regular_price_adjust']) or !empty($post['single_product_sale_price_adjust'])):?>style="display:block;"<?php endif; ?>>
55
  <p class="form-field">
56
  <label><?php printf(__("Regular Price (%s)", PMWI_Plugin::TEXT_DOMAIN), get_woocommerce_currency_symbol()); ?></label>
82
  <p class="form-field wpallimport-radio-field">
83
  <input type="hidden" name="disable_prepare_price" value="0" />
84
  <input type="checkbox" id="disable_prepare_price" name="disable_prepare_price" value="1" <?php echo $post['disable_prepare_price'] ? 'checked="checked"' : '' ?> />
85
+ <label for="disable_prepare_price" style="width:auto;"><?php _e('Remove currency symbols from price', PMWI_Plugin::TEXT_DOMAIN) ?></label>
86
  <a href="#help" class="wpallimport-help" title="<?php _e('Attempt to remove currency symbols from prices.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:1px;">?</a>
87
  </p>
88
 
89
  <p class="form-field wpallimport-radio-field">
90
  <input type="hidden" name="convert_decimal_separator" value="0" />
91
  <input type="checkbox" id="convert_decimal_separator" name="convert_decimal_separator" value="1" <?php echo $post['convert_decimal_separator'] ? 'checked="checked"' : '' ?> />
92
+ <label for="convert_decimal_separator" style="width:auto;"><?php _e('Convert decimal separator to a period', PMWI_Plugin::TEXT_DOMAIN) ?></label>
93
  <a href="#help" class="wpallimport-help" title="<?php _e('Prices must be imported using a period as the decimal separator. If you\'d like to change the decimal separator you can do so by editing your WooCommerce settings.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:1px;">?</a>
94
  </p>
95
 
96
  <p class="form-field wpallimport-radio-field">
97
  <input type="hidden" name="prepare_price_to_woo_format" value="0" />
98
  <input type="checkbox" id="prepare_price_to_woo_format" name="prepare_price_to_woo_format" value="1" <?php echo $post['prepare_price_to_woo_format'] ? 'checked="checked"' : '' ?> />
99
+ <label for="prepare_price_to_woo_format" style="width:auto;"><?php _e('Attempt to convert incorrectly formatted prices to WooCommerce format', PMWI_Plugin::TEXT_DOMAIN) ?></label>
100
  <a href="#help" class="wpallimport-help" title="<?php _e('WP All Import will attempt to correct the formatting of prices presented incorrectly, but this doesn\'t always work. Try unchecking this option if your prices are not appearing correctly, or enter your prices in your import file using the same format you would when entering them in WooCommerce.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:1px;">?</a>
101
  </p>
102
 
views/admin/import/product/_tabs/_inventory.php CHANGED
@@ -1,7 +1,7 @@
1
  <div class="panel woocommerce_options_panel" id="inventory_product_data" style="display:none;">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
- <a href="https://www.wpallimport.com/checkout/?edd_action=purchase_collection&taxonomy=download_category&terms=14&utm_source=import-wooco-products-addon-free&utm_medium=upgrade-notice&utm_campaign=import-variable-wooco-products" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
@@ -52,7 +52,7 @@
52
  </p>
53
  <p class="form-field wpallimport-radio-field">
54
  <input type="radio" id="product_stock_status_automatically" class="switcher" name="product_stock_status" value="auto" <?php echo 'auto' == $post['product_stock_status'] ? 'checked="checked"': '' ?>/>
55
- <label for="product_stock_status_automatically" style="width:105px;"><?php _e("Set automatically", PMWI_Plugin::TEXT_DOMAIN); ?></label>
56
  <a href="#help" class="wpallimport-help" title="<?php _e('Set the stock status to In Stock for positive or blank Stock Qty values, and Out Of Stock if Stock Qty is 0.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:2px;">?</a>
57
  </p>
58
  <div class="form-field wpallimport-radio-field">
1
  <div class="panel woocommerce_options_panel" id="inventory_product_data" style="display:none;">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
+ <a href="https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707227&edd_options%5Bprice_id%5D=1" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
52
  </p>
53
  <p class="form-field wpallimport-radio-field">
54
  <input type="radio" id="product_stock_status_automatically" class="switcher" name="product_stock_status" value="auto" <?php echo 'auto' == $post['product_stock_status'] ? 'checked="checked"': '' ?>/>
55
+ <label for="product_stock_status_automatically" style="width:auto;"><?php _e("Set automatically", PMWI_Plugin::TEXT_DOMAIN); ?></label>
56
  <a href="#help" class="wpallimport-help" title="<?php _e('Set the stock status to In Stock for positive or blank Stock Qty values, and Out Of Stock if Stock Qty is 0.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:2px;">?</a>
57
  </p>
58
  <div class="form-field wpallimport-radio-field">
views/admin/import/product/_tabs/_linked_product.php CHANGED
@@ -1,7 +1,7 @@
1
  <div class="panel woocommerce_options_panel" id="linked_product_data" style="display:none;">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
- <a href="https://www.wpallimport.com/checkout/?edd_action=purchase_collection&taxonomy=download_category&terms=14&utm_source=import-wooco-products-addon-free&utm_medium=upgrade-notice&utm_campaign=import-variable-wooco-products" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
@@ -66,7 +66,7 @@
66
 
67
  <p class="form-field wpallimport-radio-field">
68
  <input type="radio" id="multiple_grouping_product_no" class="switcher" name="is_multiple_grouping_product" value="no" <?php echo 'no' == $post['is_multiple_grouping_product'] ? 'checked="checked"': '' ?>/>
69
- <label for="multiple_grouping_product_no" style="width: 200px;"><?php _e('Manual Grouped Product Matching', PMWI_Plugin::TEXT_DOMAIN )?></label>
70
  <a href="#help" class="wpallimport-help" style="top:2px;" title="<?php _e('Product will be assigned as the child of an already created product matching the specified criteria.', PMWI_Plugin::TEXT_DOMAIN); ?>">?</a>
71
  </p>
72
 
1
  <div class="panel woocommerce_options_panel" id="linked_product_data" style="display:none;">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
+ <a href="https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707227&edd_options%5Bprice_id%5D=1" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
66
 
67
  <p class="form-field wpallimport-radio-field">
68
  <input type="radio" id="multiple_grouping_product_no" class="switcher" name="is_multiple_grouping_product" value="no" <?php echo 'no' == $post['is_multiple_grouping_product'] ? 'checked="checked"': '' ?>/>
69
+ <label for="multiple_grouping_product_no" style="width:auto;"><?php _e('Manual Grouped Product Matching', PMWI_Plugin::TEXT_DOMAIN )?></label>
70
  <a href="#help" class="wpallimport-help" style="top:2px;" title="<?php _e('Product will be assigned as the child of an already created product matching the specified criteria.', PMWI_Plugin::TEXT_DOMAIN); ?>">?</a>
71
  </p>
72
 
views/admin/import/product/_tabs/_options.php CHANGED
@@ -1,7 +1,7 @@
1
  <div class="panel woocommerce_options_panel" id="add_on_options" style="display:none;">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
- <a href="https://www.wpallimport.com/checkout/?edd_action=purchase_collection&taxonomy=download_category&terms=14&utm_source=import-wooco-products-addon-free&utm_medium=upgrade-notice&utm_campaign=import-variable-wooco-products" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
1
  <div class="panel woocommerce_options_panel" id="add_on_options" style="display:none;">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
+ <a href="https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707227&edd_options%5Bprice_id%5D=1" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
views/admin/import/product/_tabs/_shipping.php CHANGED
@@ -1,21 +1,25 @@
1
  <div class="panel woocommerce_options_panel" id="shipping_product_data" style="display:none;">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
- <a href="https://www.wpallimport.com/checkout/?edd_action=purchase_collection&taxonomy=download_category&terms=14&utm_source=import-wooco-products-addon-free&utm_medium=upgrade-notice&utm_campaign=import-variable-wooco-products" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
8
  <div class="options_group">
9
- <p class="form-field">
10
  <label><?php printf(__("Weight (%s)", PMWI_Plugin::TEXT_DOMAIN), get_option('woocommerce_weight_unit')); ?></label>
11
- <input type="text" class="short" placeholder="0.00" name="single_product_weight" style="" value="<?php echo esc_attr($post['single_product_weight']) ?>"/>
12
- </p>
13
- <p class="form-field">
 
 
14
  <label><?php printf(__("Dimensions (%s)", PMWI_Plugin::TEXT_DOMAIN), get_option( 'woocommerce_dimension_unit' )); ?></label>
15
- <input type="text" class="short" placeholder="<?php _e('Length',PMWI_Plugin::TEXT_DOMAIN);?>" name="single_product_length" style="margin-right:5px;" value="<?php echo esc_attr($post['single_product_length']) ?>"/>
16
- <input type="text" class="short" placeholder="<?php _e('Width',PMWI_Plugin::TEXT_DOMAIN);?>" name="single_product_width" style="margin-right:5px;" value="<?php echo esc_attr($post['single_product_width']) ?>"/>
17
- <input type="text" class="short" placeholder="<?php _e('Height',PMWI_Plugin::TEXT_DOMAIN);?>" name="single_product_height" style="" value="<?php echo esc_attr($post['single_product_height']) ?>"/>
18
- </p>
 
 
19
  </div> <!-- End options group -->
20
 
21
  <div class="options_group">
1
  <div class="panel woocommerce_options_panel" id="shipping_product_data" style="display:none;">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
+ <a href="https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707227&edd_options%5Bprice_id%5D=1" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
8
  <div class="options_group">
9
+ <div class="form-field weight-field">
10
  <label><?php printf(__("Weight (%s)", PMWI_Plugin::TEXT_DOMAIN), get_option('woocommerce_weight_unit')); ?></label>
11
+ <div>
12
+ <input type="text" class="short" placeholder="0.00" name="single_product_weight" style="" value="<?php echo esc_attr($post['single_product_weight']) ?>"/>
13
+ </div>
14
+ </div>
15
+ <div class="form-field dimensions-field">
16
  <label><?php printf(__("Dimensions (%s)", PMWI_Plugin::TEXT_DOMAIN), get_option( 'woocommerce_dimension_unit' )); ?></label>
17
+ <div>
18
+ <input type="text" class="short" placeholder="<?php _e('Length',PMWI_Plugin::TEXT_DOMAIN);?>" name="single_product_length" style="margin-right:5px;" value="<?php echo esc_attr($post['single_product_length']) ?>"/>
19
+ <input type="text" class="short" placeholder="<?php _e('Width',PMWI_Plugin::TEXT_DOMAIN);?>" name="single_product_width" style="margin-right:5px;" value="<?php echo esc_attr($post['single_product_width']) ?>"/>
20
+ <input type="text" class="short" placeholder="<?php _e('Height',PMWI_Plugin::TEXT_DOMAIN);?>" name="single_product_height" style="" value="<?php echo esc_attr($post['single_product_height']) ?>"/>
21
+ </div>
22
+ </div>
23
  </div> <!-- End options group -->
24
 
25
  <div class="options_group">
views/admin/import/product/_tabs/_variations.php CHANGED
@@ -1,7 +1,7 @@
1
  <div class="panel woocommerce_options_panel" id="variable_product_options" style="display:none;">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
- <a href="https://www.wpallimport.com/checkout/?edd_action=purchase_collection&taxonomy=download_category&terms=14&utm_source=import-wooco-products-addon-free&utm_medium=upgrade-notice&utm_campaign=import-variable-wooco-products" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
1
  <div class="panel woocommerce_options_panel" id="variable_product_options" style="display:none;">
2
  <?php if (class_exists('PMWI_Plugin') && PMWI_EDITION == 'free'): ?>
3
  <div class="woo-add-on-free-edition-notice upgrade_template">
4
+ <a href="https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707227&edd_options%5Bprice_id%5D=1" target="_blank" class="upgrade_woo_link"><?php _e('Upgrade to the Pro edition of WP All Import and the WooCommerce Add-On to Import to Variable, Affiliate, and Grouped Products', PMWI_Plugin::TEXT_DOMAIN);?></a>
5
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
6
  </div>
7
  <?php endif; ?>
views/admin/import/shop_order/_tabs/_order_item_coupons.php CHANGED
@@ -97,7 +97,7 @@
97
  <span class="wpallimport-slide-content" style="padding-left:0;">
98
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple coupons separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
99
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[coupons_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['coupons_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
100
- <a href="#help" class="wpallimport-help" style="top:10px;left:8px;" title="For example, two coupons would be imported like this coupon1|coupon2">?</a>
101
  </span>
102
  </div>
103
  </div>
@@ -108,7 +108,7 @@
108
  <span class="wpallimport-slide-content" style="padding-left:0;">
109
  <label style="width: 60px; line-height: 30px;"><?php _e('For each', PMWI_Plugin::TEXT_DOMAIN); ?></label>
110
  <input type="text" class="short rad4" name="pmwi_order[coupons_repeater_mode_foreach]" value="<?php echo esc_attr($post['pmwi_order']['coupons_repeater_mode_foreach']) ?>" style="width:50%;"/>
111
- <label class="foreach-do" style="padding-left: 10px; line-height: 30px;"><?php _e('do...', PMWI_Plugin::TEXT_DOMAIN); ?></label>
112
  </span>
113
  </div>
114
  </div>
@@ -117,7 +117,7 @@
117
  <div class="form-field input" style="margin-bottom: 20px;">
118
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple coupons separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
119
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[coupons_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['coupons_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
120
- <a href="#help" class="wpallimport-help" style="top:10px;left:8px;" title="For example, two coupons would be imported like this coupon1|coupon2">?</a>
121
  </div>
122
  <?php endif; ?>
123
  </div>
97
  <span class="wpallimport-slide-content" style="padding-left:0;">
98
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple coupons separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
99
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[coupons_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['coupons_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
100
+ <a href="#help" class="wpallimport-help" style="top:12px;left:8px;" title="For example, two coupons would be imported like this coupon1|coupon2">?</a>
101
  </span>
102
  </div>
103
  </div>
108
  <span class="wpallimport-slide-content" style="padding-left:0;">
109
  <label style="width: 60px; line-height: 30px;"><?php _e('For each', PMWI_Plugin::TEXT_DOMAIN); ?></label>
110
  <input type="text" class="short rad4" name="pmwi_order[coupons_repeater_mode_foreach]" value="<?php echo esc_attr($post['pmwi_order']['coupons_repeater_mode_foreach']) ?>" style="width:50%;"/>
111
+ <label class="foreach-do" style="padding-left: 12px; line-height: 30px;"><?php _e('do...', PMWI_Plugin::TEXT_DOMAIN); ?></label>
112
  </span>
113
  </div>
114
  </div>
117
  <div class="form-field input" style="margin-bottom: 20px;">
118
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple coupons separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
119
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[coupons_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['coupons_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
120
+ <a href="#help" class="wpallimport-help" style="top:12px;left:8px;" title="For example, two coupons would be imported like this coupon1|coupon2">?</a>
121
  </div>
122
  <?php endif; ?>
123
  </div>
views/admin/import/shop_order/_tabs/_order_item_fees.php CHANGED
@@ -70,7 +70,7 @@
70
  <span class="wpallimport-slide-content" style="padding-left:0;">
71
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple fees separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
72
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[fees_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['fees_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
73
- <a href="#help" class="wpallimport-help" style="top:10px;left:8px;" title="For example, two fees would be imported like this 'Fee 1|Fee 2' and the fee amounts like this 10|20">?</a>
74
  </span>
75
  </div>
76
  </div>
@@ -81,7 +81,7 @@
81
  <span class="wpallimport-slide-content" style="padding-left:0;">
82
  <label style="width: 60px; line-height: 30px;"><?php _e('For each', PMWI_Plugin::TEXT_DOMAIN); ?></label>
83
  <input type="text" class="short rad4" name="pmwi_order[fees_repeater_mode_foreach]" value="<?php echo esc_attr($post['pmwi_order']['fees_repeater_mode_foreach']) ?>" style="width:50%;"/>
84
- <label class="foreach-do" style="padding-left: 10px; line-height: 30px;"><?php _e('do...', PMWI_Plugin::TEXT_DOMAIN); ?></label>
85
  </span>
86
  </div>
87
  </div>
@@ -90,7 +90,7 @@
90
  <div class="form-field input" style="margin-bottom: 20px;">
91
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple fees separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
92
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[fees_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['fees_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
93
- <a href="#help" class="wpallimport-help" style="top:10px;left:8px;" title="For example, two fees would be imported like this 'Fee 1|Fee 2' and the fee amounts like this 10|20">?</a>
94
  </div>
95
  <?php endif; ?>
96
  </div>
70
  <span class="wpallimport-slide-content" style="padding-left:0;">
71
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple fees separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
72
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[fees_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['fees_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
73
+ <a href="#help" class="wpallimport-help" style="top:12px;left:8px;" title="For example, two fees would be imported like this 'Fee 1|Fee 2' and the fee amounts like this 10|20">?</a>
74
  </span>
75
  </div>
76
  </div>
81
  <span class="wpallimport-slide-content" style="padding-left:0;">
82
  <label style="width: 60px; line-height: 30px;"><?php _e('For each', PMWI_Plugin::TEXT_DOMAIN); ?></label>
83
  <input type="text" class="short rad4" name="pmwi_order[fees_repeater_mode_foreach]" value="<?php echo esc_attr($post['pmwi_order']['fees_repeater_mode_foreach']) ?>" style="width:50%;"/>
84
+ <label class="foreach-do" style="padding-left: 12px; line-height: 30px;"><?php _e('do...', PMWI_Plugin::TEXT_DOMAIN); ?></label>
85
  </span>
86
  </div>
87
  </div>
90
  <div class="form-field input" style="margin-bottom: 20px;">
91
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple fees separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
92
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[fees_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['fees_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
93
+ <a href="#help" class="wpallimport-help" style="top:12px;left:8px;" title="For example, two fees would be imported like this 'Fee 1|Fee 2' and the fee amounts like this 10|20">?</a>
94
  </div>
95
  <?php endif; ?>
96
  </div>
views/admin/import/shop_order/_tabs/_order_item_products.php CHANGED
@@ -28,17 +28,17 @@
28
  <input type="text" class="short rad4" name="pmwi_order[products][0][qty]" value="<?php echo esc_attr($product['qty']) ?>" style="width:95%;"/>
29
  </div>
30
  <div class="wpallimport-clear"></div>
31
- <div style="float:left; width:50%;">
32
  <label><?php _e('Product SKU', PMWI_Plugin::TEXT_DOMAIN); ?></label>
33
  <input type="text" class="short rad4" name="pmwi_order[products][0][sku]" value="<?php echo esc_attr($product['sku']) ?>" style="width:95%;"/>
34
  </div>
35
- <div style="float:right; width:50%;">
36
  <label><?php _e('Price', PMWI_Plugin::TEXT_DOMAIN); ?></label>
37
  <input type="text" class="short rad4" name="pmwi_order[products][0][price_per_unit]" value="<?php echo esc_attr($product['price_per_unit']) ?>" style="width:95%;"/>
38
  </div>
39
  <span class="wpallimport-clear"></span>
40
 
41
- <table class="form-field">
42
  <?php foreach ($product['meta_name'] as $j => $meta_name): if (empty($meta_name)) continue; ?>
43
  <tr class="form-field">
44
  <td style="padding-right:10px;">
@@ -49,7 +49,7 @@
49
  <label><?php _e('Meta Value', PMWI_Plugin::TEXT_DOMAIN); ?></label>
50
  <input type="text" class="short rad4" name="pmwi_order[products][0][meta_value][]" value="<?php echo esc_attr($product['meta_value'][$j]); ?>" style="width:100%;"/>
51
  </td>
52
- <td class="action remove"><a href="#remove" style="top: 33px;"></a></td>
53
  </tr>
54
  <?php endforeach; ?>
55
  <tr class="form-field template">
@@ -61,7 +61,7 @@
61
  <label><?php _e('Meta Value', PMWI_Plugin::TEXT_DOMAIN); ?></label>
62
  <input type="text" class="short rad4" name="pmwi_order[products][0][meta_value][]" value="" style="width:100%;"/>
63
  </td>
64
- <td class="action remove"><a href="#remove" style="top: 33px;"></a></td>
65
  </tr>
66
  <tr>
67
  <td colspan="3">
@@ -127,7 +127,7 @@
127
  <div class="form-field wpallimport-radio-field">
128
  <input type="radio" id="products_tax_calculate_logic_lookup_0_<?php echo $j; ?>" name="pmwi_order[products][0][tax_rates][<?php echo $j; ?>][calculate_logic]" value="loocup" <?php echo 'loocup' == $tax_rate['calculate_logic'] ? 'checked="checked"' : '' ?> class="switcher"/>
129
  <label for="products_tax_calculate_logic_lookup_0_<?php echo $j; ?>" style="width:auto;"><?php _e('Look up tax rate code', PMWI_Plugin::TEXT_DOMAIN) ?></label>
130
- <a href="#help" class="wpallimport-help" title="<?php _e('If rate code is not found, this tax amount will not be imported.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:0px;">?</a>
131
  </div>
132
  <hr style="margin-left: 20px;">
133
  </td>
@@ -171,11 +171,11 @@
171
  <div class="form-field wpallimport-radio-field">
172
  <input type="radio" id="products_tax_calculate_logic_lookup_0_ROWNUMBER" name="pmwi_order[products][0][tax_rates][ROWNUMBER][calculate_logic]" value="loocup" class="switcher"/>
173
  <label for="products_tax_calculate_logic_lookup_0_ROWNUMBER" style="width:auto;"><?php _e('Look up tax rate code', PMWI_Plugin::TEXT_DOMAIN) ?></label>
174
- <a href="#help" class="wpallimport-help" title="<?php _e('If rate code is not found, this tax amount will not be imported.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:0px;">?</a>
175
  </div>
176
  <hr style="margin-left: 20px;">
177
  </td>
178
- <td class="action remove"><a href="#remove" style="top: 33px;"></a></td>
179
  </tr>
180
  <tr>
181
  <td colspan="2">
@@ -189,7 +189,7 @@
189
  </div>
190
  <!-- <hr> -->
191
  </td>
192
- <td class="action remove"><a href="#remove" style="top: 33px;"></a></td>
193
  </tr>
194
  </table>
195
  </span>
@@ -236,7 +236,7 @@
236
 
237
  <span class="wpallimport-clear"></span>
238
 
239
- <table class="form-field">
240
  <?php foreach ($product['meta_name'] as $j => $meta_name): if (empty($meta_name)) continue; ?>
241
  <tr class="form-field">
242
  <td style="padding-right:10px;">
@@ -247,7 +247,7 @@
247
  <label><?php _e('Meta Value', PMWI_Plugin::TEXT_DOMAIN); ?></label>
248
  <input type="text" class="short rad4" name="pmwi_order[manual_products][0][meta_value][]" value="<?php echo esc_attr($product['meta_value'][$j]); ?>" style="width:100%;"/>
249
  </td>
250
- <td class="action remove"><a href="#remove" style="top: 33px;"></a></td>
251
  </tr>
252
  <?php endforeach; ?>
253
  <tr class="form-field template">
@@ -259,11 +259,11 @@
259
  <label><?php _e('Meta Value', PMWI_Plugin::TEXT_DOMAIN); ?></label>
260
  <input type="text" class="short rad4" name="pmwi_order[manual_products][0][meta_value][]" value="" style="width:100%;"/>
261
  </td>
262
- <td class="action remove"><a href="#remove" style="top: 33px;"></a></td>
263
  </tr>
264
  <tr>
265
  <td colspan="3">
266
- <a class="add-new-line" title="Add Product Meta" href="javascript:void(0);" style="display:block;margin:5px 0;width:140px;top:0;padding-top:4px;"><?php empty($product['meta_name']) ? _e("Add Product Meta", PMWI_Plugin::TEXT_DOMAIN): _e("Add More Product Meta", PMWI_Plugin::TEXT_DOMAIN); ?></a>
267
  </td>
268
  </tr>
269
  </table>
@@ -332,11 +332,11 @@
332
  <div class="form-field wpallimport-radio-field">
333
  <input type="radio" id="manual_products_tax_calculate_logic_lookup_0_<?php echo $j; ?>" name="pmwi_order[manual_products][0][tax_rates][<?php echo $j; ?>][calculate_logic]" value="loocup" <?php echo 'loocup' == $tax_rate['calculate_logic'] ? 'checked="checked"' : '' ?> class="switcher"/>
334
  <label for="manual_products_tax_calculate_logic_lookup_0_<?php echo $j; ?>" style="width:auto;"><?php _e('Look up tax rate code', PMWI_Plugin::TEXT_DOMAIN) ?></label>
335
- <a href="#help" class="wpallimport-help" title="<?php _e('If rate code is not found, this tax amount will not be imported.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:0px;">?</a>
336
  </div>
337
  <hr style="margin-left: 20px;">
338
  </td>
339
- <td class="action remove"><a href="#remove" style="top: 33px;"></a></td>
340
  </tr>
341
 
342
  <?php endforeach; ?>
@@ -377,11 +377,11 @@
377
  <div class="form-field wpallimport-radio-field">
378
  <input type="radio" id="manual_products_tax_calculate_logic_lookup_0_ROWNUMBER" name="pmwi_order[manual_products][0][tax_rates][ROWNUMBER][calculate_logic]" value="loocup" class="switcher"/>
379
  <label for="manual_products_tax_calculate_logic_lookup_0_ROWNUMBER" style="width:auto;"><?php _e('Look up tax rate code', PMWI_Plugin::TEXT_DOMAIN) ?></label>
380
- <a href="#help" class="wpallimport-help" title="<?php _e('If rate code is not found, this tax amount will not be imported.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:0px;">?</a>
381
  </div>
382
  <hr style="margin-left: 20px;">
383
  </td>
384
- <td class="action remove"><a href="#remove" style="top: 33px;"></a></td>
385
  </tr>
386
  <tr>
387
  <td colspan="2">
@@ -395,7 +395,7 @@
395
  </div>
396
  <!-- <hr> -->
397
  </td>
398
- <td class="action remove"><a href="#remove" style="top: 33px;"></a></td>
399
  </tr>
400
  </table>
401
  </span>
@@ -436,7 +436,7 @@
436
  <div class="form-field input" style="margin-bottom: 20px;">
437
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple products separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
438
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[products_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['products_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
439
- <a href="#help" class="wpallimport-help" style="top:10px;left:8px;" title="For example, two products would be imported like this SKU1|SKU2, and their quantities like this 15|20">?</a>
440
  </div>
441
  <?php endif; ?>
442
  </div>
28
  <input type="text" class="short rad4" name="pmwi_order[products][0][qty]" value="<?php echo esc_attr($product['qty']) ?>" style="width:95%;"/>
29
  </div>
30
  <div class="wpallimport-clear"></div>
31
+ <div style="float:left; width:50%;margin-top:10px;">
32
  <label><?php _e('Product SKU', PMWI_Plugin::TEXT_DOMAIN); ?></label>
33
  <input type="text" class="short rad4" name="pmwi_order[products][0][sku]" value="<?php echo esc_attr($product['sku']) ?>" style="width:95%;"/>
34
  </div>
35
+ <div style="float:right; width:50%;margin-top:10px;">
36
  <label><?php _e('Price', PMWI_Plugin::TEXT_DOMAIN); ?></label>
37
  <input type="text" class="short rad4" name="pmwi_order[products][0][price_per_unit]" value="<?php echo esc_attr($product['price_per_unit']) ?>" style="width:95%;"/>
38
  </div>
39
  <span class="wpallimport-clear"></span>
40
 
41
+ <table class="form-field add-product-meta">
42
  <?php foreach ($product['meta_name'] as $j => $meta_name): if (empty($meta_name)) continue; ?>
43
  <tr class="form-field">
44
  <td style="padding-right:10px;">
49
  <label><?php _e('Meta Value', PMWI_Plugin::TEXT_DOMAIN); ?></label>
50
  <input type="text" class="short rad4" name="pmwi_order[products][0][meta_value][]" value="<?php echo esc_attr($product['meta_value'][$j]); ?>" style="width:100%;"/>
51
  </td>
52
+ <td class="action remove"><a href="#remove" style="top: 34px; right: 10px;"></a></td>
53
  </tr>
54
  <?php endforeach; ?>
55
  <tr class="form-field template">
61
  <label><?php _e('Meta Value', PMWI_Plugin::TEXT_DOMAIN); ?></label>
62
  <input type="text" class="short rad4" name="pmwi_order[products][0][meta_value][]" value="" style="width:100%;"/>
63
  </td>
64
+ <td class="action remove"><a href="#remove" style="top: 34px; right: 10px;"></a></td>
65
  </tr>
66
  <tr>
67
  <td colspan="3">
127
  <div class="form-field wpallimport-radio-field">
128
  <input type="radio" id="products_tax_calculate_logic_lookup_0_<?php echo $j; ?>" name="pmwi_order[products][0][tax_rates][<?php echo $j; ?>][calculate_logic]" value="loocup" <?php echo 'loocup' == $tax_rate['calculate_logic'] ? 'checked="checked"' : '' ?> class="switcher"/>
129
  <label for="products_tax_calculate_logic_lookup_0_<?php echo $j; ?>" style="width:auto;"><?php _e('Look up tax rate code', PMWI_Plugin::TEXT_DOMAIN) ?></label>
130
+ <a href="#help" class="wpallimport-help" title="<?php _e('If rate code is not found, this tax amount will not be imported.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:4px;">?</a>
131
  </div>
132
  <hr style="margin-left: 20px;">
133
  </td>
171
  <div class="form-field wpallimport-radio-field">
172
  <input type="radio" id="products_tax_calculate_logic_lookup_0_ROWNUMBER" name="pmwi_order[products][0][tax_rates][ROWNUMBER][calculate_logic]" value="loocup" class="switcher"/>
173
  <label for="products_tax_calculate_logic_lookup_0_ROWNUMBER" style="width:auto;"><?php _e('Look up tax rate code', PMWI_Plugin::TEXT_DOMAIN) ?></label>
174
+ <a href="#help" class="wpallimport-help" title="<?php _e('If rate code is not found, this tax amount will not be imported.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:4px;">?</a>
175
  </div>
176
  <hr style="margin-left: 20px;">
177
  </td>
178
+ <td class="action remove"><a href="#remove" style="top: 44px; right: 10px;"></a></td>
179
  </tr>
180
  <tr>
181
  <td colspan="2">
189
  </div>
190
  <!-- <hr> -->
191
  </td>
192
+ <td class="action remove"><a href="#remove" style="top: 34px; right: 25px;"></a></td>
193
  </tr>
194
  </table>
195
  </span>
236
 
237
  <span class="wpallimport-clear"></span>
238
 
239
+ <table class="form-field add-product-meta">
240
  <?php foreach ($product['meta_name'] as $j => $meta_name): if (empty($meta_name)) continue; ?>
241
  <tr class="form-field">
242
  <td style="padding-right:10px;">
247
  <label><?php _e('Meta Value', PMWI_Plugin::TEXT_DOMAIN); ?></label>
248
  <input type="text" class="short rad4" name="pmwi_order[manual_products][0][meta_value][]" value="<?php echo esc_attr($product['meta_value'][$j]); ?>" style="width:100%;"/>
249
  </td>
250
+ <td class="action remove"><a href="#remove" style="top: 34px; right: 10px;"></a></td>
251
  </tr>
252
  <?php endforeach; ?>
253
  <tr class="form-field template">
259
  <label><?php _e('Meta Value', PMWI_Plugin::TEXT_DOMAIN); ?></label>
260
  <input type="text" class="short rad4" name="pmwi_order[manual_products][0][meta_value][]" value="" style="width:100%;"/>
261
  </td>
262
+ <td class="action remove"><a href="#remove" style="top: 34px; right: 10px;"></a></td>
263
  </tr>
264
  <tr>
265
  <td colspan="3">
266
+ <a class="add-new-line" title="Add Product Meta" href="javascript:void(0);" style="display:block;margin: 10px 0 20px 0;width:140px;top:0;padding-top:4px;"><?php empty($product['meta_name']) ? _e("Add Product Meta", PMWI_Plugin::TEXT_DOMAIN): _e("Add More Product Meta", PMWI_Plugin::TEXT_DOMAIN); ?></a>
267
  </td>
268
  </tr>
269
  </table>
332
  <div class="form-field wpallimport-radio-field">
333
  <input type="radio" id="manual_products_tax_calculate_logic_lookup_0_<?php echo $j; ?>" name="pmwi_order[manual_products][0][tax_rates][<?php echo $j; ?>][calculate_logic]" value="loocup" <?php echo 'loocup' == $tax_rate['calculate_logic'] ? 'checked="checked"' : '' ?> class="switcher"/>
334
  <label for="manual_products_tax_calculate_logic_lookup_0_<?php echo $j; ?>" style="width:auto;"><?php _e('Look up tax rate code', PMWI_Plugin::TEXT_DOMAIN) ?></label>
335
+ <a href="#help" class="wpallimport-help" title="<?php _e('If rate code is not found, this tax amount will not be imported.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:4px;">?</a>
336
  </div>
337
  <hr style="margin-left: 20px;">
338
  </td>
339
+ <td class="action remove"><a href="#remove" style="top: 44px; right: 10px;"></a></td>
340
  </tr>
341
 
342
  <?php endforeach; ?>
377
  <div class="form-field wpallimport-radio-field">
378
  <input type="radio" id="manual_products_tax_calculate_logic_lookup_0_ROWNUMBER" name="pmwi_order[manual_products][0][tax_rates][ROWNUMBER][calculate_logic]" value="loocup" class="switcher"/>
379
  <label for="manual_products_tax_calculate_logic_lookup_0_ROWNUMBER" style="width:auto;"><?php _e('Look up tax rate code', PMWI_Plugin::TEXT_DOMAIN) ?></label>
380
+ <a href="#help" class="wpallimport-help" title="<?php _e('If rate code is not found, this tax amount will not be imported.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top:4px;">?</a>
381
  </div>
382
  <hr style="margin-left: 20px;">
383
  </td>
384
+ <td class="action remove"><a href="#remove" style="top: 44px; right: 10px;"></a></td>
385
  </tr>
386
  <tr>
387
  <td colspan="2">
395
  </div>
396
  <!-- <hr> -->
397
  </td>
398
+ <td class="action remove"><a href="#remove" style="top: 34px; right: 10px;"></a></td>
399
  </tr>
400
  </table>
401
  </span>
436
  <div class="form-field input" style="margin-bottom: 20px;">
437
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple products separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
438
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[products_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['products_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
439
+ <a href="#help" class="wpallimport-help" style="top:12px;left:8px;" title="For example, two products would be imported like this SKU1|SKU2, and their quantities like this 15|20">?</a>
440
  </div>
441
  <?php endif; ?>
442
  </div>
views/admin/import/shop_order/_tabs/_order_item_refunds.php CHANGED
@@ -18,7 +18,7 @@
18
  <tr>
19
  <td colspan="2">
20
  <label><?php _e('Date', PMWI_Plugin::TEXT_DOMAIN); ?></label>
21
- <div class="clear">
22
  <input type="text" class="datepicker rad4" name="pmwi_order[order_refund_date]" value="<?php echo esc_attr($post['pmwi_order']['order_refund_date']) ?>"/>
23
  </div>
24
  <span class="wpallimport-clear"></span>
@@ -28,7 +28,7 @@
28
  <div class="wpallimport-radio-field">
29
  <input type="radio" id="order_refund_issued_source_existing" name="pmwi_order[order_refund_issued_source]" value="existing" <?php echo 'existing' == $post['pmwi_order']['order_refund_issued_source'] ? 'checked="checked"' : '' ?> class="switcher"/>
30
  <label for="order_refund_issued_source_existing" style="width:auto;"><?php _e('Load details from existing user', PMWI_Plugin::TEXT_DOMAIN) ?></label>
31
- <a href="#help" class="wpallimport-help" title="<?php _e('If no user is matched, refund issuer will be left blank.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top: 3px;">?</a>
32
  </div>
33
  <span class="wpallimport-clear"></span>
34
  <div class="switcher-target-order_refund_issued_source_existing" style="padding-left:7px;">
@@ -66,11 +66,11 @@
66
  <div class="switcher-target-order_refund_issued_by_cf set_with_xpath">
67
  <span class="wpallimport-slide-content" style="padding-left:0;">
68
  <p>
69
- <label style="line-height: 30px;"><?php _e('Name', PMWI_Plugin::TEXT_DOMAIN); ?></label>
70
  <input type="text" class="short rad4" name="pmwi_order[order_refund_issued_cf_name]" style="" value="<?php echo esc_attr($post['pmwi_order']['order_refund_issued_cf_name']) ?>"/>
71
  </p>
72
  <p>
73
- <label style="line-height: 30px;"><?php _e('Value', PMWI_Plugin::TEXT_DOMAIN); ?></label>
74
  <input type="text" class="short rad4" name="pmwi_order[order_refund_issued_cf_value]" style="" value="<?php echo esc_attr($post['pmwi_order']['order_refund_issued_cf_value']) ?>"/>
75
  </p>
76
  </span>
18
  <tr>
19
  <td colspan="2">
20
  <label><?php _e('Date', PMWI_Plugin::TEXT_DOMAIN); ?></label>
21
+ <div class="date">
22
  <input type="text" class="datepicker rad4" name="pmwi_order[order_refund_date]" value="<?php echo esc_attr($post['pmwi_order']['order_refund_date']) ?>"/>
23
  </div>
24
  <span class="wpallimport-clear"></span>
28
  <div class="wpallimport-radio-field">
29
  <input type="radio" id="order_refund_issued_source_existing" name="pmwi_order[order_refund_issued_source]" value="existing" <?php echo 'existing' == $post['pmwi_order']['order_refund_issued_source'] ? 'checked="checked"' : '' ?> class="switcher"/>
30
  <label for="order_refund_issued_source_existing" style="width:auto;"><?php _e('Load details from existing user', PMWI_Plugin::TEXT_DOMAIN) ?></label>
31
+ <a href="#help" class="wpallimport-help" title="<?php _e('If no user is matched, refund issuer will be left blank.', PMWI_Plugin::TEXT_DOMAIN) ?>" style="position:relative; top: 0;">?</a>
32
  </div>
33
  <span class="wpallimport-clear"></span>
34
  <div class="switcher-target-order_refund_issued_source_existing" style="padding-left:7px;">
66
  <div class="switcher-target-order_refund_issued_by_cf set_with_xpath">
67
  <span class="wpallimport-slide-content" style="padding-left:0;">
68
  <p>
69
+ <label style="line-height: 30px; margin-left: 5px;"><?php _e('Name', PMWI_Plugin::TEXT_DOMAIN); ?></label>
70
  <input type="text" class="short rad4" name="pmwi_order[order_refund_issued_cf_name]" style="" value="<?php echo esc_attr($post['pmwi_order']['order_refund_issued_cf_name']) ?>"/>
71
  </p>
72
  <p>
73
+ <label style="line-height: 30px; margin-left: 5px;"><?php _e('Value', PMWI_Plugin::TEXT_DOMAIN); ?></label>
74
  <input type="text" class="short rad4" name="pmwi_order[order_refund_issued_cf_value]" style="" value="<?php echo esc_attr($post['pmwi_order']['order_refund_issued_cf_value']) ?>"/>
75
  </p>
76
  </span>
views/admin/import/shop_order/_tabs/_order_item_shipping.php CHANGED
@@ -128,7 +128,7 @@
128
  <span class="wpallimport-slide-content" style="padding-left:0;">
129
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple shipping costs separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
130
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[shipping_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['shipping_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
131
- <a href="#help" class="wpallimport-help" style="top:10px;left:8px;" title="For example, two shipping names would be imported like this 'Shipping 1|Shipping 2' and the shipping amounts like this 10|20">?</a>
132
  </span>
133
  </div>
134
  </div>
@@ -139,7 +139,7 @@
139
  <span class="wpallimport-slide-content" style="padding-left:0;">
140
  <label style="width: 60px; line-height: 30px;"><?php _e('For each', PMWI_Plugin::TEXT_DOMAIN); ?></label>
141
  <input type="text" class="short rad4" name="pmwi_order[shipping_repeater_mode_foreach]" value="<?php echo esc_attr($post['pmwi_order']['shipping_repeater_mode_foreach']) ?>" style="width:50%;"/>
142
- <label class="foreach-do" style="padding-left: 10px; line-height: 30px;"><?php _e('do...', PMWI_Plugin::TEXT_DOMAIN); ?></label>
143
  </span>
144
  </div>
145
  </div>
@@ -148,7 +148,7 @@
148
  <div class="form-field input" style="margin-bottom: 20px;">
149
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple shipping costs separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
150
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[shipping_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['shipping_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
151
- <a href="#help" class="wpallimport-help" style="top:10px;left:8px;" title="For example, two shipping names would be imported like this 'Shipping 1|Shipping 2' and the shipping amounts like this 10|20">?</a>
152
  </div>
153
  <?php endif; ?>
154
  </div>
128
  <span class="wpallimport-slide-content" style="padding-left:0;">
129
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple shipping costs separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
130
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[shipping_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['shipping_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
131
+ <a href="#help" class="wpallimport-help" style="top:12px;left:8px;" title="For example, two shipping names would be imported like this 'Shipping 1|Shipping 2' and the shipping amounts like this 10|20">?</a>
132
  </span>
133
  </div>
134
  </div>
139
  <span class="wpallimport-slide-content" style="padding-left:0;">
140
  <label style="width: 60px; line-height: 30px;"><?php _e('For each', PMWI_Plugin::TEXT_DOMAIN); ?></label>
141
  <input type="text" class="short rad4" name="pmwi_order[shipping_repeater_mode_foreach]" value="<?php echo esc_attr($post['pmwi_order']['shipping_repeater_mode_foreach']) ?>" style="width:50%;"/>
142
+ <label class="foreach-do" style="padding-left: 12px; line-height: 30px;"><?php _e('do...', PMWI_Plugin::TEXT_DOMAIN); ?></label>
143
  </span>
144
  </div>
145
  </div>
148
  <div class="form-field input" style="margin-bottom: 20px;">
149
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple shipping costs separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
150
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[shipping_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['shipping_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
151
+ <a href="#help" class="wpallimport-help" style="top:12px;left:8px;" title="For example, two shipping names would be imported like this 'Shipping 1|Shipping 2' and the shipping amounts like this 10|20">?</a>
152
  </div>
153
  <?php endif; ?>
154
  </div>
views/admin/import/shop_order/_tabs/_order_item_taxes.php CHANGED
@@ -144,7 +144,7 @@
144
  <span class="wpallimport-slide-content" style="padding-left:0;">
145
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple taxes separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
146
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[taxes_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['taxes_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
147
- <a href="#help" class="wpallimport-help" style="top:10px;left:8px;" title="For example, two tax rate amounts would be imported like this '10|20'">?</a>
148
  </span>
149
  </div>
150
  </div>
@@ -155,7 +155,7 @@
155
  <span class="wpallimport-slide-content" style="padding-left:0;">
156
  <label style="width: 60px; line-height: 30px;"><?php _e('For each', PMWI_Plugin::TEXT_DOMAIN); ?></label>
157
  <input type="text" class="short rad4" name="pmwi_order[taxes_repeater_mode_foreach]" value="<?php echo esc_attr($post['pmwi_order']['taxes_repeater_mode_foreach']) ?>" style="width:50%;"/>
158
- <label class="foreach-do" style="padding-left: 10px; line-height: 30px;"><?php _e('do...', PMWI_Plugin::TEXT_DOMAIN); ?></label>
159
  </span>
160
  </div>
161
  </div>
@@ -164,7 +164,7 @@
164
  <div class="form-field input" style="margin-bottom: 20px;">
165
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple taxes separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
166
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[taxes_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['taxes_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
167
- <a href="#help" class="wpallimport-help" style="top:10px;left:8px;" title="For example, two tax rate amounts would be imported like this '10|20'">?</a>
168
  </div>
169
  <?php endif; ?>
170
  </div>
144
  <span class="wpallimport-slide-content" style="padding-left:0;">
145
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple taxes separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
146
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[taxes_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['taxes_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
147
+ <a href="#help" class="wpallimport-help" style="top:12px;left:8px;" title="For example, two tax rate amounts would be imported like this '10|20'">?</a>
148
  </span>
149
  </div>
150
  </div>
155
  <span class="wpallimport-slide-content" style="padding-left:0;">
156
  <label style="width: 60px; line-height: 30px;"><?php _e('For each', PMWI_Plugin::TEXT_DOMAIN); ?></label>
157
  <input type="text" class="short rad4" name="pmwi_order[taxes_repeater_mode_foreach]" value="<?php echo esc_attr($post['pmwi_order']['taxes_repeater_mode_foreach']) ?>" style="width:50%;"/>
158
+ <label class="foreach-do" style="padding-left: 12px; line-height: 30px;"><?php _e('do...', PMWI_Plugin::TEXT_DOMAIN); ?></label>
159
  </span>
160
  </div>
161
  </div>
164
  <div class="form-field input" style="margin-bottom: 20px;">
165
  <label class="order-separator-label" style="line-height: 30px;"><?php _e('Multiple taxes separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
166
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[taxes_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['taxes_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
167
+ <a href="#help" class="wpallimport-help" style="top:12px;left:8px;" title="For example, two tax rate amounts would be imported like this '10|20'">?</a>
168
  </div>
169
  <?php endif; ?>
170
  </div>
views/admin/import/shop_order/order_notes_section.php CHANGED
@@ -178,7 +178,7 @@
178
  <span class="order-separator-label wpallimport-slide-content" style="padding-left:0;">
179
  <label><?php _e('Multiple notes separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
180
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[notes_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['notes_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
181
- <a href="#help" class="wpallimport-help" style="top:0px;left:8px;" title="For example, two notes would be imported like this Note 1|Note 2">?</a>
182
  </span>
183
  </div>
184
  </div>
178
  <span class="order-separator-label wpallimport-slide-content" style="padding-left:0;">
179
  <label><?php _e('Multiple notes separated by', PMWI_Plugin::TEXT_DOMAIN); ?></label>
180
  <input type="text" class="short rad4 order-separator-input" name="pmwi_order[notes_repeater_mode_separator]" value="<?php echo esc_attr($post['pmwi_order']['notes_repeater_mode_separator']) ?>" style="width:10%; text-align: center;"/>
181
+ <a href="#help" class="wpallimport-help" style="top:0px;left:4px;" title="For example, two notes would be imported like this Note 1|Note 2">?</a>
182
  </span>
183
  </div>
184
  </div>