Import any XML or CSV File to WordPress - Version 3.6.5

Version Description

  • improvement: better sanitization and escaping of data in WP All Import interface
Download this release

Release Info

Developer soflyy
Plugin Icon 128x128 Import any XML or CSV File to WordPress
Version 3.6.5
Comparing to
See all releases

Code changes from version 3.6.4 to 3.6.5

Files changed (40) hide show
  1. actions/wp_ajax_auto_detect_cf.php +1 -1
  2. actions/wp_ajax_delete_import.php +1 -1
  3. actions/wp_ajax_test_images.php +13 -13
  4. classes/PHPExcel/CalcEngine/Logger.php +2 -2
  5. classes/api.php +2 -2
  6. classes/render.php +16 -16
  7. controllers/admin/settings.php +1 -1
  8. helpers/wp_all_import_addon_notifications.php +3 -3
  9. helpers/wp_all_import_template_notifications.php +1 -1
  10. plugin.php +5 -5
  11. readme.txt +4 -1
  12. views/admin/history/index.php +3 -3
  13. views/admin/import/confirm.php +25 -25
  14. views/admin/import/element.php +6 -6
  15. views/admin/import/evaluate.php +2 -2
  16. views/admin/import/evaluate_variations.php +2 -2
  17. views/admin/import/index.php +5 -5
  18. views/admin/import/options/_buttons_template.php +2 -2
  19. views/admin/import/options/_import_file.php +3 -3
  20. views/admin/import/options/_reimport_options.php +5 -5
  21. views/admin/import/options/_reimport_template.php +8 -8
  22. views/admin/import/options/_settings_template.php +4 -4
  23. views/admin/import/preview.php +1 -1
  24. views/admin/import/preview_images.php +1 -1
  25. views/admin/import/preview_prices.php +1 -1
  26. views/admin/import/preview_taxonomies.php +1 -1
  27. views/admin/import/process.php +10 -10
  28. views/admin/import/tag.php +1 -1
  29. views/admin/import/template.php +3 -3
  30. views/admin/import/template/_custom_fields_template.php +5 -5
  31. views/admin/import/template/_featured_template.php +1 -1
  32. views/admin/import/template/_nested_template.php +1 -1
  33. views/admin/import/template/_other_template.php +4 -4
  34. views/admin/import/template/_taxonomies_template.php +14 -14
  35. views/admin/manage/bulk.php +2 -2
  36. views/admin/manage/delete.php +3 -3
  37. views/admin/manage/index.php +11 -11
  38. views/admin/manage/scheduling.php +1 -1
  39. views/admin/manage/update.php +2 -2
  40. views/admin/settings/index.php +3 -3
actions/wp_ajax_auto_detect_cf.php CHANGED
@@ -105,7 +105,7 @@ function pmxi_wp_ajax_auto_detect_cf(){
105
  $custom_type = get_post_type_object( $post_type );
106
  break;
107
  }
108
- $msg = sprintf(__('No Custom Fields are present in your database for %s', 'wp_all_import_plugin'), $custom_type->labels->name);
109
  }
110
  elseif (count($result) === 1)
111
  $msg = sprintf(__('%s field was automatically detected.', 'wp_all_import_plugin'), count($result));
105
  $custom_type = get_post_type_object( $post_type );
106
  break;
107
  }
108
+ $msg = sprintf(__('No Custom Fields are present in your database for %s', 'wp_all_import_plugin'), esc_attr($custom_type->labels->name));
109
  }
110
  elseif (count($result) === 1)
111
  $msg = sprintf(__('%s field was automatically detected.', 'wp_all_import_plugin'), count($result));
actions/wp_ajax_delete_import.php CHANGED
@@ -77,7 +77,7 @@ function pmxi_wp_ajax_delete_import(){
77
  $is_all_records_deleted = $import->deletePostsAjax( ! $params['is_delete_posts'], $params['is_delete_images'], $params['is_delete_attachments'] );
78
 
79
  $response['result'] = (empty($params['import_ids'][$key + 1])) ? $is_all_records_deleted : false;
80
- $response['msg'] = sprintf(__('Import #%d - %d records deleted', 'wp_all_import_plugin'), $import->id, $import->deleted);
81
 
82
  if ( $is_all_records_deleted === true )
83
  {
77
  $is_all_records_deleted = $import->deletePostsAjax( ! $params['is_delete_posts'], $params['is_delete_images'], $params['is_delete_attachments'] );
78
 
79
  $response['result'] = (empty($params['import_ids'][$key + 1])) ? $is_all_records_deleted : false;
80
+ $response['msg'] = sprintf(__('Import #%d - %d records deleted', 'wp_all_import_plugin'), intval($import->id), intval($import->deleted));
81
 
82
  if ( $is_all_records_deleted === true )
83
  {
actions/wp_ajax_test_images.php CHANGED
@@ -43,28 +43,28 @@ function pmxi_wp_ajax_test_images(){
43
  foreach ($post['imgs'] as $img)
44
  {
45
  if ( preg_match('%^(http|https|ftp|ftps)%i', $img)){
46
- $failed_msgs[] = sprintf(__('Use image name instead of URL `%s`.', 'wp_all_import_plugin'), $img);
47
  continue;
48
  }
49
  if ( @file_exists($imgs_basedir . $img) ){
50
  if (@is_readable($imgs_basedir . $img)){
51
  $success_images++;
52
  } else{
53
- $failed_msgs[] = sprintf(__('File `%s` isn\'t readable', 'wp_all_import_plugin'), preg_replace('%.*/wp-content%', '/wp-content', $imgs_basedir . $img));
54
  }
55
  }
56
  else{
57
- $failed_msgs[] = sprintf(__('File `%s` doesn\'t exist', 'wp_all_import_plugin'), preg_replace('%.*/wp-content%', '/wp-content', $imgs_basedir . $img));
58
  }
59
  }
60
  }
61
  if ((int)$success_images === 1)
62
  {
63
- $success_msg = sprintf(__('%d image was successfully retrieved from `%s`', 'wp_all_import_plugin'), $success_images, preg_replace('%.*/wp-content%', '/wp-content', $wp_uploads['basedir']) . DIRECTORY_SEPARATOR . PMXI_Plugin::FILES_DIRECTORY);
64
  }
65
  elseif ((int)$success_images > 1)
66
  {
67
- $success_msg = sprintf(__('%d images were successfully retrieved from `%s`', 'wp_all_import_plugin'), $success_images, preg_replace('%.*/wp-content%', '/wp-content', $wp_uploads['basedir']) . DIRECTORY_SEPARATOR . PMXI_Plugin::FILES_DIRECTORY);
68
  }
69
 
70
  break;
@@ -92,18 +92,18 @@ function pmxi_wp_ajax_test_images(){
92
  }
93
  else
94
  {
95
- $failed_msgs[] = sprintf(__('Image `%s` not found in media library.', 'wp_all_import_plugin'), $image_name);
96
  }
97
  }
98
  }
99
 
100
  if ((int)$success_images === 1)
101
  {
102
- $success_msg = sprintf(__('%d image was successfully found in media gallery', 'wp_all_import_plugin'), $success_images);
103
  }
104
  elseif ((int)$success_images > 1)
105
  {
106
- $success_msg = sprintf(__('%d images were successfully found in media gallery', 'wp_all_import_plugin'), $success_images);
107
  }
108
 
109
  break;
@@ -117,7 +117,7 @@ function pmxi_wp_ajax_test_images(){
117
  foreach ($post['imgs'] as $img)
118
  {
119
  if ( ! preg_match('%^(http|https|ftp|ftps)%i', $img)){
120
- $failed_msgs[] = sprintf(__('URL `%s` is not valid.', 'wp_all_import_plugin'), $img);
121
  continue;
122
  }
123
 
@@ -132,9 +132,9 @@ function pmxi_wp_ajax_test_images(){
132
  $get_ctx = stream_context_create(array('http' => array('timeout' => 5)));
133
 
134
  if ( (is_wp_error($request) or $request === false) and ! @file_put_contents($image_filepath, @file_get_contents($img, false, $get_ctx))) {
135
- $failed_msgs[] = (is_wp_error($request)) ? $request->get_error_message() : sprintf(__('File `%s` cannot be saved locally', 'wp_all_import_plugin'), $img);
136
  } elseif( ! ($image_info = apply_filters('pmxi_getimagesize', @getimagesize($image_filepath), $image_filepath)) or ! in_array($image_info[2], wp_all_import_supported_image_types())) {
137
- $failed_msgs[] = sprintf(__('File `%s` is not a valid image.', 'wp_all_import_plugin'), $img);
138
  } else {
139
  $success_images++;
140
  }
@@ -145,11 +145,11 @@ function pmxi_wp_ajax_test_images(){
145
 
146
  if ((int)$success_images === 1)
147
  {
148
- $success_msg = sprintf(__('%d image was successfully downloaded in %s seconds', 'wp_all_import_plugin'), $success_images, number_format($time, 2));
149
  }
150
  elseif ((int)$success_images > 1)
151
  {
152
- $success_msg = sprintf(__('%d images were successfully downloaded in %s seconds', 'wp_all_import_plugin'), $success_images, number_format($time, 2));
153
  }
154
 
155
  break;
43
  foreach ($post['imgs'] as $img)
44
  {
45
  if ( preg_match('%^(http|https|ftp|ftps)%i', $img)){
46
+ $failed_msgs[] = sprintf(__('Use image name instead of URL `%s`.', 'wp_all_import_plugin'), esc_url($img));
47
  continue;
48
  }
49
  if ( @file_exists($imgs_basedir . $img) ){
50
  if (@is_readable($imgs_basedir . $img)){
51
  $success_images++;
52
  } else{
53
+ $failed_msgs[] = sprintf(__('File `%s` isn\'t readable', 'wp_all_import_plugin'), preg_replace('%.*/wp-content%', '/wp-content', esc_attr($imgs_basedir . $img)));
54
  }
55
  }
56
  else{
57
+ $failed_msgs[] = sprintf(__('File `%s` doesn\'t exist', 'wp_all_import_plugin'), preg_replace('%.*/wp-content%', '/wp-content', esc_attr($imgs_basedir . $img)));
58
  }
59
  }
60
  }
61
  if ((int)$success_images === 1)
62
  {
63
+ $success_msg = sprintf(__('%d image was successfully retrieved from `%s`', 'wp_all_import_plugin'), intval($success_images), preg_replace('%.*/wp-content%', '/wp-content', esc_attr($wp_uploads['basedir']) . DIRECTORY_SEPARATOR . PMXI_Plugin::FILES_DIRECTORY));
64
  }
65
  elseif ((int)$success_images > 1)
66
  {
67
+ $success_msg = sprintf(__('%d images were successfully retrieved from `%s`', 'wp_all_import_plugin'), intval($success_images), preg_replace('%.*/wp-content%', '/wp-content', esc_attr($wp_uploads['basedir']) . DIRECTORY_SEPARATOR . PMXI_Plugin::FILES_DIRECTORY));
68
  }
69
 
70
  break;
92
  }
93
  else
94
  {
95
+ $failed_msgs[] = sprintf(__('Image `%s` not found in media library.', 'wp_all_import_plugin'), esc_attr($image_name));
96
  }
97
  }
98
  }
99
 
100
  if ((int)$success_images === 1)
101
  {
102
+ $success_msg = sprintf(__('%d image was successfully found in media gallery', 'wp_all_import_plugin'), intval($success_images));
103
  }
104
  elseif ((int)$success_images > 1)
105
  {
106
+ $success_msg = sprintf(__('%d images were successfully found in media gallery', 'wp_all_import_plugin'), intval($success_images));
107
  }
108
 
109
  break;
117
  foreach ($post['imgs'] as $img)
118
  {
119
  if ( ! preg_match('%^(http|https|ftp|ftps)%i', $img)){
120
+ $failed_msgs[] = sprintf(__('URL `%s` is not valid.', 'wp_all_import_plugin'), esc_url($img));
121
  continue;
122
  }
123
 
132
  $get_ctx = stream_context_create(array('http' => array('timeout' => 5)));
133
 
134
  if ( (is_wp_error($request) or $request === false) and ! @file_put_contents($image_filepath, @file_get_contents($img, false, $get_ctx))) {
135
+ $failed_msgs[] = (is_wp_error($request)) ? $request->get_error_message() : sprintf(__('File `%s` cannot be saved locally', 'wp_all_import_plugin'), esc_url($img));
136
  } elseif( ! ($image_info = apply_filters('pmxi_getimagesize', @getimagesize($image_filepath), $image_filepath)) or ! in_array($image_info[2], wp_all_import_supported_image_types())) {
137
+ $failed_msgs[] = sprintf(__('File `%s` is not a valid image.', 'wp_all_import_plugin'), esc_url($img));
138
  } else {
139
  $success_images++;
140
  }
145
 
146
  if ((int)$success_images === 1)
147
  {
148
+ $success_msg = sprintf(__('%d image was successfully downloaded in %s seconds', 'wp_all_import_plugin'), intval($success_images), number_format($time, 2));
149
  }
150
  elseif ((int)$success_images > 1)
151
  {
152
+ $success_msg = sprintf(__('%d images were successfully downloaded in %s seconds', 'wp_all_import_plugin'), intval($success_images), number_format($time, 2));
153
  }
154
 
155
  break;
classes/PHPExcel/CalcEngine/Logger.php CHANGED
@@ -120,9 +120,9 @@ class PHPExcel_CalcEngine_Logger
120
  $message = implode(func_get_args());
121
  $cellReference = implode(' -> ', $this->cellStack->showStack());
122
  if ($this->echoDebugLog) {
123
- echo $cellReference,
124
  ($this->cellStack->count() > 0 ? ' => ' : ''),
125
- $message,
126
  PHP_EOL;
127
  }
128
  $this->debugLog[] = $cellReference .
120
  $message = implode(func_get_args());
121
  $cellReference = implode(' -> ', $this->cellStack->showStack());
122
  if ($this->echoDebugLog) {
123
+ echo wp_kses_post($cellReference),
124
  ($this->cellStack->count() > 0 ? ' => ' : ''),
125
+ wp_kses_post($message),
126
  PHP_EOL;
127
  }
128
  $this->debugLog[] = $cellReference .
classes/api.php CHANGED
@@ -273,7 +273,7 @@ class PMXI_API
273
  <div class="input" style="margin: 0px;">
274
  <?php $wp_uploads = wp_upload_dir(); ?>
275
  <input type="radio" name="<?php echo esc_attr($params['addon_prefix']);?>[download_image][<?php echo esc_attr($params['field_key']);?>]" value="no" id="<?php echo sanitize_title(esc_attr($params['field_name'])); ?>_no" <?php echo ("yes" != $params['download_image']) ? 'checked="checked"' : '';?>/>
276
- <label for="<?php echo sanitize_title(esc_attr($params['field_name'])); ?>_no"><?php printf(__('Use image(s) currently uploaded in %s', 'wp_all_import_plugin'), $wp_uploads['basedir'] . DIRECTORY_SEPARATOR . PMXI_Plugin::FILES_DIRECTORY . DIRECTORY_SEPARATOR); ?></label>
277
  </div>
278
  <div class="input">
279
  <input type="text" name="<?php echo esc_attr($params['field_name']); ?>" style="width:100%;" placeholder="" value="<?php echo esc_attr($params['field_value']); ?>"/>
@@ -293,7 +293,7 @@ class PMXI_API
293
  <div class="input" style="margin: 0px;">
294
  <?php $wp_uploads = wp_upload_dir(); ?>
295
  <input type="radio" name="<?php echo esc_attr($params['addon_prefix']);?>[download_image][<?php echo esc_attr($params['field_key']);?>]" value="no" id="<?php echo sanitize_title(esc_attr($params['field_name'])); ?>_no" <?php echo ("yes" != $params['download_image']) ? 'checked="checked"' : '';?>/>
296
- <label for="<?php echo sanitize_title(esc_attr($params['field_name'])); ?>_no"><?php printf(__('Use file(s) currently uploaded in %s', 'wp_all_import_plugin'), $wp_uploads['basedir'] . DIRECTORY_SEPARATOR . PMXI_Plugin::FILES_DIRECTORY . DIRECTORY_SEPARATOR); ?></label>
297
  </div>
298
  <div class="input">
299
  <input type="text" name="<?php echo esc_attr($params['field_name']); ?>" style="width:100%;" placeholder="" value="<?php echo esc_attr($params['field_value']); ?>"/>
273
  <div class="input" style="margin: 0px;">
274
  <?php $wp_uploads = wp_upload_dir(); ?>
275
  <input type="radio" name="<?php echo esc_attr($params['addon_prefix']);?>[download_image][<?php echo esc_attr($params['field_key']);?>]" value="no" id="<?php echo sanitize_title(esc_attr($params['field_name'])); ?>_no" <?php echo ("yes" != $params['download_image']) ? 'checked="checked"' : '';?>/>
276
+ <label for="<?php echo sanitize_title(esc_attr($params['field_name'])); ?>_no"><?php printf(__('Use image(s) currently uploaded in %s', 'wp_all_import_plugin'), esc_url($wp_uploads['basedir'] . DIRECTORY_SEPARATOR . PMXI_Plugin::FILES_DIRECTORY . DIRECTORY_SEPARATOR)); ?></label>
277
  </div>
278
  <div class="input">
279
  <input type="text" name="<?php echo esc_attr($params['field_name']); ?>" style="width:100%;" placeholder="" value="<?php echo esc_attr($params['field_value']); ?>"/>
293
  <div class="input" style="margin: 0px;">
294
  <?php $wp_uploads = wp_upload_dir(); ?>
295
  <input type="radio" name="<?php echo esc_attr($params['addon_prefix']);?>[download_image][<?php echo esc_attr($params['field_key']);?>]" value="no" id="<?php echo sanitize_title(esc_attr($params['field_name'])); ?>_no" <?php echo ("yes" != $params['download_image']) ? 'checked="checked"' : '';?>/>
296
+ <label for="<?php echo sanitize_title(esc_attr($params['field_name'])); ?>_no"><?php printf(__('Use file(s) currently uploaded in %s', 'wp_all_import_plugin'), esc_url($wp_uploads['basedir'] . DIRECTORY_SEPARATOR . PMXI_Plugin::FILES_DIRECTORY . DIRECTORY_SEPARATOR)); ?></label>
297
  </div>
298
  <div class="input">
299
  <input type="text" name="<?php echo esc_attr($params['field_name']); ?>" style="width:100%;" placeholder="" value="<?php echo esc_attr($params['field_value']); ?>"/>
classes/render.php CHANGED
@@ -47,7 +47,7 @@ if ( ! class_exists('PMXI_Render')){
47
  $path .= "[$ind]";
48
  }
49
 
50
- echo '<div class="xml-element csv_element lvl-' . $lvl . ' lvl-mod4-' . ($lvl % 4) . '" title="' . esc_attr($path) . '">';
51
  if ($el->hasChildNodes()) {
52
  $is_render_collapsed = $ind > 1;
53
  if ($lvl) echo '<div class="csv-tag opening"><span class="csv-tag-name">' . esc_html($el->nodeName) . '</span>'; echo '</div>';
@@ -79,7 +79,7 @@ if ( ! class_exists('PMXI_Render')){
79
  }
80
  //echo '<div class="xml-tag closing"><span class="xml-tag-name">' . $el->nodeName . '</span></div>';
81
  } else {
82
- echo '<div class="xml-tag opening empty"><span class="xml-tag-name">' . $el->nodeName . '</span>'; self::render_xml_attributes($el); echo '</div>';
83
  }
84
  echo '</div>';
85
  }
@@ -102,7 +102,7 @@ if ( ! class_exists('PMXI_Render')){
102
  $is_short = strlen($text) <= 40;
103
  $newtext = htmlspecialchars($text);
104
  //$newtext = preg_replace('%(?<!\s)\b(?!\s|\W[\w\s])|\w{20}%', '$0&#8203;', $newtext); // put explicit breaks for xml content to wrap
105
- echo '<div class="xml-content textonly' . ($is_short ? ' short' : '') . ($is_render_collapsed ? ' collapsed' : '') . ' '. (is_numeric($text) ? 'is_numeric' : '') .'">' . $newtext . $more . '</div>';
106
  }
107
  public static $option_paths = array();
108
  public static function render_xml_elements_for_filtring(DOMElement $el, $originPath ='', $lvl = 0){
@@ -113,16 +113,16 @@ if ( ! class_exists('PMXI_Render')){
113
  self::$option_paths[$path] = 1;
114
  else
115
  self::$option_paths[$path]++;
116
- echo '<option value="'.$path.'['. self::$option_paths[$path] .']">' .$path . '['. self::$option_paths[$path] .']</option>';
117
  }
118
  else $path = $el->nodeName;
119
 
120
  foreach ($el->attributes as $attr) {
121
  if (empty($originPath)){
122
- echo '<option value="@' . $attr->nodeName.'">@' . $attr->nodeName . '</option>';
123
  }
124
  else{
125
- echo '<option value="'.$path .'['. self::$option_paths[$path] .']'. '/@' . $attr->nodeName.'">'. $path .'['. self::$option_paths[$path] .']'. '@' . $attr->nodeName . '</option>';
126
  }
127
  }
128
  if ($el->hasChildNodes()) {
@@ -143,7 +143,7 @@ if ( ! class_exists('PMXI_Render')){
143
  $path .= "[$ind]";
144
  }
145
 
146
- echo '<div class="xml-element lvl-' . $lvl . ' lvl-mod4-' . ($lvl % 4) . '" title="' . $path . '">';
147
  //if ($el->hasAttributes()){
148
  echo '<div class="xml-element-xpaths">'; self::render_element_xpaths($el, $alternativePath, $ind, $lvl); echo '</div>';
149
  //}
@@ -152,7 +152,7 @@ if ( ! class_exists('PMXI_Render')){
152
  if ($el->childNodes->length > 1 or ! $el->childNodes->item(0) instanceof DOMText or strlen(trim($el->childNodes->item(0)->wholeText)) > 40) {
153
  echo '<div class="xml-expander">' . ($is_render_collapsed ? '+' : '-') . '</div>';
154
  }
155
- echo '<div class="xml-tag opening">&lt;<span class="xml-tag-name">' . $el->nodeName . '</span>'; self::render_xml_attributes($el, $path . '/'); echo '&gt;</div>';
156
  if (1 == $el->childNodes->length and $el->childNodes->item(0) instanceof DOMText) {
157
  $item = $el->childNodes->item(0);
158
  if (!empty($item->wholeText)){
@@ -191,9 +191,9 @@ if ( ! class_exists('PMXI_Render')){
191
  }
192
  echo '</div>';
193
  }
194
- echo '<div class="xml-tag closing">&lt;/<span class="xml-tag-name">' . $el->nodeName . '</span>&gt;</div>';
195
  } else {
196
- echo '<div class="xml-tag opening empty">&lt;<span class="xml-tag-name">' . $el->nodeName . '</span>'; self::render_xml_attributes($el); echo '/&gt;</div>';
197
  }
198
  echo '</div>';
199
  }
@@ -219,7 +219,7 @@ if ( ! class_exists('PMXI_Render')){
219
  $text = "<span class='wpallimport-cdata'>" . htmlspecialchars("<![CDATA[") . "</span> " . $text . " <span class='wpallimport-cdata'>" . htmlspecialchars("]]>") . "</span>";
220
  }
221
  //$text = preg_replace('%(?<!\s)\b(?!\s|\W[\w\s])|\w{20}%', '$0&#8203;', $text); // put explicit breaks for xml content to wrap
222
- echo '<div class="xml-content textonly' . ($is_short ? ' short' : '') . ($is_render_collapsed ? ' collapsed' : '') . '">' . $text . $more . '</div>';
223
  }
224
 
225
  public static function get_xml_path(DOMElement $el, DOMXPath $xpath)
@@ -238,7 +238,7 @@ if ( ! class_exists('PMXI_Render')){
238
  protected static function render_xml_attributes(DOMElement $el, $path = '/')
239
  {
240
  foreach ($el->attributes as $attr) {
241
- echo ' <span class="xml-attr" title="' . $path . '@' . $attr->nodeName . '"><span class="xml-attr-name">' . $attr->nodeName . '</span>=<span class="xml-attr-value">"' . esc_attr($attr->value) . '"</span></span>';
242
  }
243
  }
244
 
@@ -246,11 +246,11 @@ if ( ! class_exists('PMXI_Render')){
246
  ?>
247
  <ul id="menu-<?php echo str_replace('/', '-', esc_attr($path)); ?>" class="ui-helper-hidden">
248
  <?php foreach ($el->attributes as $attr) : if ( empty($attr->value) ) continue; ?>
249
- <li data-command="action1" title="<?php echo esc_attr($path . '[@'. $attr->nodeName .' = "' . esc_attr($attr->value) . '"]'); ?>">
250
- <a href="#"><?php echo esc_html($path) . '[@'. $attr->nodeName .' = "' . esc_attr($attr->value) . '"]'; ?></a>
251
  </li>
252
- <li data-command="action2" title="<?php echo esc_attr($path . '[@'. $attr->nodeName .'[contains(.,"' . esc_attr($attr->value) . '")]]'); ?>">
253
- <a href="#"><?php echo esc_html($path) . '[@'. $attr->nodeName .'[contains(.,"' . esc_attr($attr->value) . '")]]'; ?></a>
254
  </li>
255
  <?php endforeach; ?>
256
  <?php
47
  $path .= "[$ind]";
48
  }
49
 
50
+ echo '<div class="xml-element csv_element lvl-' . esc_attr($lvl) . ' lvl-mod4-' . ($lvl % 4) . '" title="' . esc_attr($path) . '">';
51
  if ($el->hasChildNodes()) {
52
  $is_render_collapsed = $ind > 1;
53
  if ($lvl) echo '<div class="csv-tag opening"><span class="csv-tag-name">' . esc_html($el->nodeName) . '</span>'; echo '</div>';
79
  }
80
  //echo '<div class="xml-tag closing"><span class="xml-tag-name">' . $el->nodeName . '</span></div>';
81
  } else {
82
+ echo '<div class="xml-tag opening empty"><span class="xml-tag-name">' . wp_kses_post($el->nodeName) . '</span>'; self::render_xml_attributes($el); echo '</div>';
83
  }
84
  echo '</div>';
85
  }
102
  $is_short = strlen($text) <= 40;
103
  $newtext = htmlspecialchars($text);
104
  //$newtext = preg_replace('%(?<!\s)\b(?!\s|\W[\w\s])|\w{20}%', '$0&#8203;', $newtext); // put explicit breaks for xml content to wrap
105
+ echo '<div class="xml-content textonly' . ($is_short ? ' short' : '') . ($is_render_collapsed ? ' collapsed' : '') . ' '. (is_numeric($text) ? 'is_numeric' : '') .'">' . wp_kses_post($newtext . $more) . '</div>';
106
  }
107
  public static $option_paths = array();
108
  public static function render_xml_elements_for_filtring(DOMElement $el, $originPath ='', $lvl = 0){
113
  self::$option_paths[$path] = 1;
114
  else
115
  self::$option_paths[$path]++;
116
+ echo '<option value="'. esc_attr($path) .'['. esc_attr(self::$option_paths[$path]) .']">' . esc_html($path) . '['. esc_html(self::$option_paths[$path]) .']</option>';
117
  }
118
  else $path = $el->nodeName;
119
 
120
  foreach ($el->attributes as $attr) {
121
  if (empty($originPath)){
122
+ echo '<option value="@' . esc_attr($attr->nodeName).'">@' . esc_html($attr->nodeName) . '</option>';
123
  }
124
  else{
125
+ echo '<option value="'. esc_attr($path) .'['. esc_attr(self::$option_paths[$path]) .']'. '/@' . esc_attr($attr->nodeName).'">'. esc_html($path) .'['. esc_html(self::$option_paths[$path]) .']'. '@' . esc_html($attr->nodeName) . '</option>';
126
  }
127
  }
128
  if ($el->hasChildNodes()) {
143
  $path .= "[$ind]";
144
  }
145
 
146
+ echo '<div class="xml-element lvl-' . esc_attr($lvl) . ' lvl-mod4-' . esc_attr($lvl % 4) . '" title="' . esc_attr($path) . '">';
147
  //if ($el->hasAttributes()){
148
  echo '<div class="xml-element-xpaths">'; self::render_element_xpaths($el, $alternativePath, $ind, $lvl); echo '</div>';
149
  //}
152
  if ($el->childNodes->length > 1 or ! $el->childNodes->item(0) instanceof DOMText or strlen(trim($el->childNodes->item(0)->wholeText)) > 40) {
153
  echo '<div class="xml-expander">' . ($is_render_collapsed ? '+' : '-') . '</div>';
154
  }
155
+ echo '<div class="xml-tag opening">&lt;<span class="xml-tag-name">' . esc_html($el->nodeName) . '</span>'; self::render_xml_attributes($el, $path . '/'); echo '&gt;</div>';
156
  if (1 == $el->childNodes->length and $el->childNodes->item(0) instanceof DOMText) {
157
  $item = $el->childNodes->item(0);
158
  if (!empty($item->wholeText)){
191
  }
192
  echo '</div>';
193
  }
194
+ echo '<div class="xml-tag closing">&lt;/<span class="xml-tag-name">' . esc_html($el->nodeName) . '</span>&gt;</div>';
195
  } else {
196
+ echo '<div class="xml-tag opening empty">&lt;<span class="xml-tag-name">' . esc_html($el->nodeName) . '</span>'; self::render_xml_attributes($el); echo '/&gt;</div>';
197
  }
198
  echo '</div>';
199
  }
219
  $text = "<span class='wpallimport-cdata'>" . htmlspecialchars("<![CDATA[") . "</span> " . $text . " <span class='wpallimport-cdata'>" . htmlspecialchars("]]>") . "</span>";
220
  }
221
  //$text = preg_replace('%(?<!\s)\b(?!\s|\W[\w\s])|\w{20}%', '$0&#8203;', $text); // put explicit breaks for xml content to wrap
222
+ echo '<div class="xml-content textonly' . ($is_short ? ' short' : '') . ($is_render_collapsed ? ' collapsed' : '') . '">' . esc_html($text . $more) . '</div>';
223
  }
224
 
225
  public static function get_xml_path(DOMElement $el, DOMXPath $xpath)
238
  protected static function render_xml_attributes(DOMElement $el, $path = '/')
239
  {
240
  foreach ($el->attributes as $attr) {
241
+ echo ' <span class="xml-attr" title="' . esc_attr($path) . '@' . esc_attr($attr->nodeName) . '"><span class="xml-attr-name">' . esc_html($attr->nodeName) . '</span>=<span class="xml-attr-value">"' . esc_attr($attr->value) . '"</span></span>';
242
  }
243
  }
244
 
246
  ?>
247
  <ul id="menu-<?php echo str_replace('/', '-', esc_attr($path)); ?>" class="ui-helper-hidden">
248
  <?php foreach ($el->attributes as $attr) : if ( empty($attr->value) ) continue; ?>
249
+ <li data-command="action1" title="<?php echo esc_attr($path . '[@'. $attr->nodeName .' = "' . $attr->value . '"]'); ?>">
250
+ <a href="#"><?php echo wp_kses_post($path . '[@'. $attr->nodeName .' = "' . $attr->value) . '"]'; ?></a>
251
  </li>
252
+ <li data-command="action2" title="<?php echo esc_attr($path . '[@'. $attr->nodeName .'[contains(.,"' . $attr->value . '")]]'); ?>">
253
+ <a href="#"><?php echo wp_kses_post($path . '[@'. $attr->nodeName .'[contains(.,"' . $attr->value) . '")]]'; ?></a>
254
  </li>
255
  <?php endforeach; ?>
256
  <?php
controllers/admin/settings.php CHANGED
@@ -767,7 +767,7 @@ class PMXI_Admin_Settings extends PMXI_Controller_Admin {
767
 
768
  $file_type = strtoupper(pmxi_getExtension($upload_result['source']['path']));
769
 
770
- $error_message = sprintf(__("Please verify that the file you uploading is a valid %s file.", "wp_all_import_plugin"), $file_type);
771
 
772
  exit(json_encode(array("jsonrpc" => "2.0", "error" => array("code" => 102, "message" => $error_message), "is_valid" => false, "id" => "id")));
773
 
767
 
768
  $file_type = strtoupper(pmxi_getExtension($upload_result['source']['path']));
769
 
770
+ $error_message = sprintf(__("Please verify that the file you uploading is a valid %s file.", "wp_all_import_plugin"), esc_attr($file_type));
771
 
772
  exit(json_encode(array("jsonrpc" => "2.0", "error" => array("code" => 102, "message" => $error_message), "is_valid" => false, "id" => "id")));
773
 
helpers/wp_all_import_addon_notifications.php CHANGED
@@ -149,11 +149,11 @@ if ( ! function_exists('wp_all_import_addon_notifications') ){
149
  foreach ($recommended_addons as $addon) {
150
  if ( ! get_option(sanitize_key($addon['title']) . '_notice_ignore')) {
151
  ?>
152
- <div class="updated notice is-dismissible wpallimport-dismissible" rel="<?php echo sanitize_key($addon['title']); ?>"><p>
153
  <?php printf(
154
  __('Make imports easier with the <strong>free %s Add-On</strong> for WP All Import: <a href="%s" target="_blank">Get Add-On</a>', 'wp_all_import_plugin'),
155
- $addon['title'],
156
- $addon['url']
157
  );
158
  ?>
159
  </p></div>
149
  foreach ($recommended_addons as $addon) {
150
  if ( ! get_option(sanitize_key($addon['title']) . '_notice_ignore')) {
151
  ?>
152
+ <div class="updated notice is-dismissible wpallimport-dismissible" rel="<?php echo sanitize_key(esc_attr($addon['title'])); ?>"><p>
153
  <?php printf(
154
  __('Make imports easier with the <strong>free %s Add-On</strong> for WP All Import: <a href="%s" target="_blank">Get Add-On</a>', 'wp_all_import_plugin'),
155
+ wp_kses_post($addon['title']),
156
+ esc_url($addon['url'])
157
  );
158
  ?>
159
  </p></div>
helpers/wp_all_import_template_notifications.php CHANGED
@@ -11,7 +11,7 @@ if ( ! function_exists('wp_all_import_template_notifications') )
11
  {
12
  if (class_exists($key)) continue;
13
 
14
- $notifications[] = sprintf(__('The import template you are using requires the %s. If you continue without it your data may import incorrectly.<br/><br/><a href="%s" target="_blank">' . ($addon['paid'] ? 'Purchase' : 'Download') . ' the %s</a>.', 'wp_all_import_plugin'), $addon['name'], $addon['url'], $addon['name']);
15
  }
16
  }
17
  else // Custom Import Template
11
  {
12
  if (class_exists($key)) continue;
13
 
14
+ $notifications[] = sprintf(__('The import template you are using requires the %s. If you continue without it your data may import incorrectly.<br/><br/><a href="%s" target="_blank">' . ($addon['paid'] ? 'Purchase' : 'Download') . ' the %s</a>.', 'wp_all_import_plugin'), esc_attr($addon['name']), esc_url($addon['url']), esc_attr($addon['name']));
15
  }
16
  }
17
  else // Custom Import Template
plugin.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WP All Import
4
  Plugin URI: http://www.wpallimport.com/wordpress-xml-csv-import/?utm_source=import-plugin-free&utm_medium=wp-plugins-page&utm_campaign=upgrade-to-pro
5
  Description: The most powerful solution for importing XML and CSV files to WordPress. Create Posts and Pages with content from any XML or CSV file. A paid upgrade to WP All Import Pro is available for support and additional features.
6
- Version: 3.6.4
7
  Author: Soflyy
8
  */
9
 
@@ -25,7 +25,7 @@ define('WP_ALL_IMPORT_ROOT_URL', rtrim(plugin_dir_url(__FILE__), '/'));
25
  */
26
  define('WP_ALL_IMPORT_PREFIX', 'pmxi_');
27
 
28
- define('PMXI_VERSION', '3.6.4');
29
 
30
  define('PMXI_EDITION', 'free');
31
 
@@ -897,11 +897,11 @@ final class PMXI_Plugin {
897
  $uploads = wp_upload_dir();
898
 
899
  if ( ! is_dir($uploads['basedir'] . DIRECTORY_SEPARATOR . self::LOGS_DIRECTORY) or ! is_writable($uploads['basedir'] . DIRECTORY_SEPARATOR . self::LOGS_DIRECTORY)) {
900
- die(sprintf(__('Uploads folder %s must be writable', 'wp_all_import_plugin'), $uploads['basedir'] . DIRECTORY_SEPARATOR . self::LOGS_DIRECTORY));
901
  }
902
 
903
  if ( ! is_dir($uploads['basedir'] . DIRECTORY_SEPARATOR . WP_ALL_IMPORT_UPLOADS_BASE_DIRECTORY) or ! is_writable($uploads['basedir'] . DIRECTORY_SEPARATOR . WP_ALL_IMPORT_UPLOADS_BASE_DIRECTORY)) {
904
- die(sprintf(__('Uploads folder %s must be writable', 'wp_all_import_plugin'), $uploads['basedir'] . DIRECTORY_SEPARATOR . WP_ALL_IMPORT_UPLOADS_BASE_DIRECTORY));
905
  }
906
 
907
  // create/update required database tables
@@ -1072,7 +1072,7 @@ final class PMXI_Plugin {
1072
  <div class="error"><p>
1073
  <?php printf(
1074
  __('<b>%s Plugin</b>: Current sql user %s doesn\'t have ALTER privileges', 'pmwi_plugin'),
1075
- self::getInstance()->getName(), DB_USER
1076
  ) ?>
1077
  </p></div>
1078
  <?php
3
  Plugin Name: WP All Import
4
  Plugin URI: http://www.wpallimport.com/wordpress-xml-csv-import/?utm_source=import-plugin-free&utm_medium=wp-plugins-page&utm_campaign=upgrade-to-pro
5
  Description: The most powerful solution for importing XML and CSV files to WordPress. Create Posts and Pages with content from any XML or CSV file. A paid upgrade to WP All Import Pro is available for support and additional features.
6
+ Version: 3.6.5
7
  Author: Soflyy
8
  */
9
 
25
  */
26
  define('WP_ALL_IMPORT_PREFIX', 'pmxi_');
27
 
28
+ define('PMXI_VERSION', '3.6.5');
29
 
30
  define('PMXI_EDITION', 'free');
31
 
897
  $uploads = wp_upload_dir();
898
 
899
  if ( ! is_dir($uploads['basedir'] . DIRECTORY_SEPARATOR . self::LOGS_DIRECTORY) or ! is_writable($uploads['basedir'] . DIRECTORY_SEPARATOR . self::LOGS_DIRECTORY)) {
900
+ die(sprintf(__('Uploads folder %s must be writable', 'wp_all_import_plugin'), esc_attr($uploads['basedir'] . DIRECTORY_SEPARATOR . self::LOGS_DIRECTORY)));
901
  }
902
 
903
  if ( ! is_dir($uploads['basedir'] . DIRECTORY_SEPARATOR . WP_ALL_IMPORT_UPLOADS_BASE_DIRECTORY) or ! is_writable($uploads['basedir'] . DIRECTORY_SEPARATOR . WP_ALL_IMPORT_UPLOADS_BASE_DIRECTORY)) {
904
+ die(sprintf(__('Uploads folder %s must be writable', 'wp_all_import_plugin'), esc_attr($uploads['basedir'] . DIRECTORY_SEPARATOR . WP_ALL_IMPORT_UPLOADS_BASE_DIRECTORY)));
905
  }
906
 
907
  // create/update required database tables
1072
  <div class="error"><p>
1073
  <?php printf(
1074
  __('<b>%s Plugin</b>: Current sql user %s doesn\'t have ALTER privileges', 'pmwi_plugin'),
1075
+ esc_attr(self::getInstance()->getName()), esc_attr(DB_USER)
1076
  ) ?>
1077
  </p></div>
1078
  <?php
readme.txt CHANGED
@@ -2,7 +2,7 @@
2
  Contributors: soflyy, wpallimport
3
  Requires at least: 4.1
4
  Tested up to: 5.8
5
- Stable tag: 3.6.4
6
  Tags: wordpress csv import, wordpress xml import, xml, csv, datafeed, import, migrate, import csv to wordpress, import xml to wordpress, advanced xml import, advanced csv import, bulk csv import, bulk xml import, bulk data import, xml to custom post type, csv to custom post type, woocommerce csv import, woocommerce xml import, csv import, import csv, xml import, import xml, csv importer
7
 
8
  WP All Import is an extremely powerful importer that makes it easy to import any XML or CSV file to WordPress.
@@ -105,6 +105,9 @@ Does it work with special character encoding like Hebrew, Arabic, Chinese, etc?
105
 
106
  == Changelog ==
107
 
 
 
 
108
  = 3.6.4 =
109
  * improvement: better sanitization and escaping of data in WP All Import interface
110
  * improvement: use libraries included in WordPress Core
2
  Contributors: soflyy, wpallimport
3
  Requires at least: 4.1
4
  Tested up to: 5.8
5
+ Stable tag: 3.6.5
6
  Tags: wordpress csv import, wordpress xml import, xml, csv, datafeed, import, migrate, import csv to wordpress, import xml to wordpress, advanced xml import, advanced csv import, bulk csv import, bulk xml import, bulk data import, xml to custom post type, csv to custom post type, woocommerce csv import, woocommerce xml import, csv import, import csv, xml import, import xml, csv importer
7
 
8
  WP All Import is an extremely powerful importer that makes it easy to import any XML or CSV file to WordPress.
105
 
106
  == Changelog ==
107
 
108
+ = 3.6.5 =
109
+ * improvement: better sanitization and escaping of data in WP All Import interface
110
+
111
  = 3.6.4 =
112
  * improvement: better sanitization and escaping of data in WP All Import interface
113
  * improvement: use libraries included in WordPress Core
views/admin/history/index.php CHANGED
@@ -1,8 +1,8 @@
1
  <h4>
2
  <?php if ($import->friendly_name): ?>
3
- <em><?php printf(__('%s - ID: %s Import History', 'wp_all_import_plugin'), $import->friendly_name, $import->id); ?></em>
4
  <?php else: ?>
5
- <em><?php printf(__('%s - ID: %s Import History', 'wp_all_import_plugin'), $import->name, $import->id); ?></em>
6
  <?php endif ?>
7
  </h4>
8
 
@@ -170,7 +170,7 @@ $columns = array(
170
  $log_file = wp_all_import_secure_file( $wp_uploads['basedir'] . DIRECTORY_SEPARATOR . PMXI_Plugin::LOGS_DIRECTORY, $item['id'], false, false ) . DIRECTORY_SEPARATOR . $item['id'] . '.html';
171
  if (file_exists($log_file)){
172
  ?>
173
- <a href="<?php echo add_query_arg(array('id' => $import->id, 'action' => 'log', 'history_id' => $item['id'], '_wpnonce' => wp_create_nonce( '_wpnonce-download_log' )), $this->baseUrl); ?>"><?php _e('Download Log', 'wp_all_import_plugin'); ?></a>
174
  <?php
175
  }
176
  else {
1
  <h4>
2
  <?php if ($import->friendly_name): ?>
3
+ <em><?php printf(__('%s - ID: %s Import History', 'wp_all_import_plugin'), esc_attr($import->friendly_name), intval($import->id)); ?></em>
4
  <?php else: ?>
5
+ <em><?php printf(__('%s - ID: %s Import History', 'wp_all_import_plugin'), esc_attr($import->name), intval($import->id)); ?></em>
6
  <?php endif ?>
7
  </h4>
8
 
170
  $log_file = wp_all_import_secure_file( $wp_uploads['basedir'] . DIRECTORY_SEPARATOR . PMXI_Plugin::LOGS_DIRECTORY, $item['id'], false, false ) . DIRECTORY_SEPARATOR . $item['id'] . '.html';
171
  if (file_exists($log_file)){
172
  ?>
173
+ <a href="<?php echo esc_url(add_query_arg(array('id' => $import->id, 'action' => 'log', 'history_id' => $item['id'], '_wpnonce' => wp_create_nonce( '_wpnonce-download_log' )), $this->baseUrl)); ?>"><?php _e('Download Log', 'wp_all_import_plugin'); ?></a>
174
  <?php
175
  }
176
  else {
views/admin/import/confirm.php CHANGED
@@ -88,7 +88,7 @@
88
  </div>
89
  <input type="submit" class="rad10" value="<?php _e('Continue Import', 'wp_all_import_plugin') ?>" style="margin-left: 0px; float: right;"/>
90
  <!--div class="input" style="margin-top:20px;">
91
- <a href="<?php echo add_query_arg(array('id' => $import->id, 'action' => 'update', 'continue' => 'no'), $this->baseUrl); ?>" id="entire_run"><?php _e('Run entire import from the beginning', 'wp_all_import_plugin'); ?></a>
92
  </div-->
93
  </form>
94
  <?php endif; ?>
@@ -107,13 +107,13 @@
107
  <div class="wpallimport-section" style="margin-top: -20px;">
108
  <div class="wpallimport-content-section">
109
  <div class="wpallimport-collapsed-header" style="padding-left: 30px;">
110
- <h3 style="color: #425e99;"><?php _e('Import Summary', 'wp_all_import_plugin'); ?> <?php if (!$isWizard):?><span style="color:#000;"><?php printf(__(" - ID: %s - %s"), $import->id, empty($import->friendly_name) ? $import->name : $import->friendly_name);?></span><?php endif;?></h3>
111
  </div>
112
  <div class="wpallimport-collapsed-content" style="padding: 15px 25px 25px;">
113
 
114
  <!-- Warnings -->
115
  <?php if ($max_execution_time != -1): ?>
116
- <p><?php printf(__('Your max_execution_time is %s seconds', 'wp_all_import_plugin'), $max_execution_time); ?></p>
117
  <?php endif;?>
118
 
119
  <!-- General -->
@@ -137,18 +137,18 @@
137
  }
138
  if ( in_array($import_type, array('upload', 'file'))){ $path = preg_replace('%.*wp-content/%', 'wp-content/', $path); }
139
  ?>
140
- <p><?php printf(__('WP All Import will import the file <span style="color:#40acad;">%s</span>, which is <span style="color:#000; font-weight:bold;">%s</span>', 'wp_all_import_plugin'), $path, (isset($locfilePath)) ? pmxi_human_filesize(filesize($locfilePath)) : __('undefined', 'wp_all_import_plugin')); ?></p>
141
 
142
  <?php if ( strpos($xpath, '[') !== false){ ?>
143
- <p><?php printf(__('WP All Import will process the records matching the XPath expression: <span style="color:#46ba69; font-weight:bold;">%s</span>', 'wp_all_import_plugin'), $xpath); ?></p>
144
  <?php } elseif ($post['delimiter'] and $isWizard ) { ?>
145
- <p><?php printf(__('WP All Import will process <span style="color:#46ba69; font-weight:bold;">%s</span> rows in your file', 'wp_all_import_plugin'), $count); ?></p>
146
  <?php } elseif ( $isWizard ) { ?>
147
- <p><?php printf(__('WP All Import will process all %s <span style="color:#46ba69; font-weight:bold;">&lt;%s&gt;</span> records in your file', 'wp_all_import_plugin'), $count, $source['root_element']); ?></p>
148
  <?php } ?>
149
 
150
  <?php if ( $post['is_import_specified']): ?>
151
- <p><?php printf(__('WP All Import will process only specified records: %s', 'wp_all_import_plugin'), $post['import_specified']); ?></p>
152
  <?php endif;?>
153
 
154
  <!-- Record Matching -->
@@ -160,18 +160,18 @@
160
 
161
  <?php if ( ! $isWizard and !empty($custom_type)): ?>
162
 
163
- <p><?php printf(__('%ss previously imported by this import (ID: %s) with the same unique key will be updated.', 'wp_all_import_plugin'), $custom_type->labels->singular_name, $import->id); ?></p>
164
 
165
  <?php if ( $post['is_delete_missing'] and ! $post['is_update_missing_cf'] and ! $post['set_missing_to_draft']): ?>
166
- <p><?php printf(__('%ss previously imported by this import (ID: %s) that aren\'t present for this run of the import will be deleted.', 'wp_all_import_plugin'), $custom_type->labels->singular_name, $import->id); ?></p>
167
  <?php endif; ?>
168
 
169
  <?php if ( $post['is_delete_missing'] and $post['set_missing_to_draft']): ?>
170
- <p><?php printf(__('%ss previously imported by this import (ID: %s) that aren\'t present for this run of the import will be set to draft.', 'wp_all_import_plugin'), $custom_type->labels->singular_name, $import->id); ?></p>
171
  <?php endif; ?>
172
 
173
  <?php if ( $post['create_new_records']): ?>
174
- <p><?php printf(__('Records with unique keys that don\'t match any unique keys from %ss created by previous runs of this import (ID: %s) will be created.', 'wp_all_import_plugin'), $custom_type->labels->singular_name, $import->id); ?></p>
175
  <?php endif; ?>
176
 
177
  <?php endif; ?>
@@ -205,13 +205,13 @@
205
  }
206
  if ( 'custom field' == $post['duplicate_indicator']) $criteria = 'has Custom Field named "'. $post['custom_duplicate_name'] .'" with value = ' . $post['custom_duplicate_value'];
207
  ?>
208
- <p><?php printf(__('WP All Import will merge data into existing %ss, matching the following criteria: %s', 'wp_all_import_plugin'), $custom_type->labels->singular_name, $criteria); ?></p>
209
 
210
  <?php if ( "no" == $post['is_keep_former_posts'] and "yes" == $post['update_all_data']){ ?>
211
  <p><?php _e('Existing data will be updated with the data specified in this import.', 'wp_all_import_plugin'); ?></p>
212
  <?php } elseif ("no" == $post['is_keep_former_posts'] and "no" == $post['update_all_data']){?>
213
  <div>
214
- <p><?php printf(__('Next %s data will be updated, <strong>all other data will be left alone</strong>', 'wp_all_import_plugin'), $custom_type->labels->singular_name); ?></p>
215
  <?php if ( in_array('data_to_import', $visible_sections)):?>
216
  <ul style="padding-left: 35px;">
217
  <?php if ( $post['is_update_status']): ?>
@@ -264,10 +264,10 @@
264
  _e('only ACF presented in import options', 'wp_all_import_plugin');
265
  break;
266
  case 'only':
267
- printf(__('only these ACF : %s', 'wp_all_import_plugin'), $post['acf_only_list']);
268
  break;
269
  case 'all_except':
270
- printf(__('all ACF except these: %s', 'wp_all_import_plugin'), $post['acf_except_list']);
271
  break;
272
  } ?>
273
  </li>
@@ -293,10 +293,10 @@
293
  _e('all custom fields', 'wp_all_import_plugin');
294
  break;
295
  case 'only':
296
- printf(__('only these custom fields : %s', 'wp_all_import_plugin'), $post['custom_fields_only_list']);
297
  break;
298
  case 'all_except':
299
- printf(__('all cusom fields except these: %s', 'wp_all_import_plugin'), $post['custom_fields_except_list']);
300
  break;
301
  } ?>
302
  </li>
@@ -312,10 +312,10 @@
312
  _e('only add new', 'wp_all_import_plugin');
313
  break;
314
  case 'only':
315
- printf(__('update only these taxonomies: %s , leave the rest alone', 'wp_all_import_plugin'), $post['taxonomies_only_list']);
316
  break;
317
  case 'all_except':
318
- printf(__('leave these taxonomies: %s alone, update all others', 'wp_all_import_plugin'), $post['taxonomies_except_list']);
319
  break;
320
  } ?>
321
  </li>
@@ -326,7 +326,7 @@
326
  </div>
327
  <?php } ?>
328
  <?php if ( $post['create_new_records']): ?>
329
- <p><?php printf(__('New %ss will be created from records that don\'t match the above criteria.', 'wp_all_import_plugin'), $custom_type->labels->singular_name); ?></p>
330
  <?php endif; ?>
331
  <?php endif; ?>
332
 
@@ -334,11 +334,11 @@
334
  <?php if ( "default" == $post['import_processing']): ?>
335
  <p><?php _e('High-Speed, Small File Processing enabled. Your import will fail if it takes longer than your server\'s max_execution_time.', 'wp_all_import_plugin'); ?></p>
336
  <?php else: ?>
337
- <p><?php printf(__('Piece By Piece Processing enabled. %s records will be processed each iteration. If it takes longer than your server\'s max_execution_time to process %s records, your import will fail.', 'wp_all_import_plugin'), $post['records_per_request'], $post['records_per_request']); ?></p>
338
  <?php endif; ?>
339
 
340
  <?php if ($post['chuncking'] and "default" != $post['import_processing']):?>
341
- <p><?php printf(__('Your file will be split into %s records chunks before processing.', 'wp_all_import_plugin'), PMXI_Plugin::getInstance()->getOption('large_feed_limit')); ?></p>
342
  <?php endif; ?>
343
 
344
  <?php if ($post['is_fast_mode']):?>
@@ -361,9 +361,9 @@
361
  <input type="submit" class="rad10" value="<?php _e('Confirm & Run Import', 'wp_all_import_plugin') ?>" />
362
  <p>
363
  <?php if ($isWizard): ?>
364
- <a href="<?php echo apply_filters('pmxi_options_back_link', add_query_arg('action', 'options', $this->baseUrl), $isWizard); ?>"><?php _e('or go back to Step 4', 'wp_all_import_plugin') ?></a>
365
  <?php else:?>
366
- <a href="<?php echo apply_filters('pmxi_options_back_link', remove_query_arg('id', remove_query_arg('action', $this->baseUrl)), $isWizard); ?>"><?php _e('or go back to Manage Imports', 'wp_all_import_plugin') ?></a>
367
  <?php endif; ?>
368
  </p>
369
  </form>
88
  </div>
89
  <input type="submit" class="rad10" value="<?php _e('Continue Import', 'wp_all_import_plugin') ?>" style="margin-left: 0px; float: right;"/>
90
  <!--div class="input" style="margin-top:20px;">
91
+ <a href="<?php echo esc_url(add_query_arg(array('id' => $import->id, 'action' => 'update', 'continue' => 'no'), $this->baseUrl)); ?>" id="entire_run"><?php _e('Run entire import from the beginning', 'wp_all_import_plugin'); ?></a>
92
  </div-->
93
  </form>
94
  <?php endif; ?>
107
  <div class="wpallimport-section" style="margin-top: -20px;">
108
  <div class="wpallimport-content-section">
109
  <div class="wpallimport-collapsed-header" style="padding-left: 30px;">
110
+ <h3 style="color: #425e99;"><?php _e('Import Summary', 'wp_all_import_plugin'); ?> <?php if (!$isWizard):?><span style="color:#000;"><?php printf(__(" - ID: %s - %s"), intval($import->id), empty($import->friendly_name) ? esc_attr($import->name) : esc_attr($import->friendly_name));?></span><?php endif;?></h3>
111
  </div>
112
  <div class="wpallimport-collapsed-content" style="padding: 15px 25px 25px;">
113
 
114
  <!-- Warnings -->
115
  <?php if ($max_execution_time != -1): ?>
116
+ <p><?php printf(__('Your max_execution_time is %s seconds', 'wp_all_import_plugin'), esc_attr($max_execution_time)); ?></p>
117
  <?php endif;?>
118
 
119
  <!-- General -->
137
  }
138
  if ( in_array($import_type, array('upload', 'file'))){ $path = preg_replace('%.*wp-content/%', 'wp-content/', $path); }
139
  ?>
140
+ <p><?php printf(__('WP All Import will import the file <span style="color:#40acad;">%s</span>, which is <span style="color:#000; font-weight:bold;">%s</span>', 'wp_all_import_plugin'), esc_attr($path), (isset($locfilePath)) ? pmxi_human_filesize(filesize($locfilePath)) : __('undefined', 'wp_all_import_plugin')); ?></p>
141
 
142
  <?php if ( strpos($xpath, '[') !== false){ ?>
143
+ <p><?php printf(__('WP All Import will process the records matching the XPath expression: <span style="color:#46ba69; font-weight:bold;">%s</span>', 'wp_all_import_plugin'), esc_attr($xpath)); ?></p>
144
  <?php } elseif ($post['delimiter'] and $isWizard ) { ?>
145
+ <p><?php printf(__('WP All Import will process <span style="color:#46ba69; font-weight:bold;">%s</span> rows in your file', 'wp_all_import_plugin'), intval($count)); ?></p>
146
  <?php } elseif ( $isWizard ) { ?>
147
+ <p><?php printf(__('WP All Import will process all %s <span style="color:#46ba69; font-weight:bold;">&lt;%s&gt;</span> records in your file', 'wp_all_import_plugin'), intval($count), $source['root_element']); ?></p>
148
  <?php } ?>
149
 
150
  <?php if ( $post['is_import_specified']): ?>
151
+ <p><?php printf(__('WP All Import will process only specified records: %s', 'wp_all_import_plugin'), esc_attr($post['import_specified'])); ?></p>
152
  <?php endif;?>
153
 
154
  <!-- Record Matching -->
160
 
161
  <?php if ( ! $isWizard and !empty($custom_type)): ?>
162
 
163
+ <p><?php printf(__('%ss previously imported by this import (ID: %s) with the same unique key will be updated.', 'wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name), esc_attr($import->id)); ?></p>
164
 
165
  <?php if ( $post['is_delete_missing'] and ! $post['is_update_missing_cf'] and ! $post['set_missing_to_draft']): ?>
166
+ <p><?php printf(__('%ss previously imported by this import (ID: %s) that aren\'t present for this run of the import will be deleted.', 'wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name), esc_attr($import->id)); ?></p>
167
  <?php endif; ?>
168
 
169
  <?php if ( $post['is_delete_missing'] and $post['set_missing_to_draft']): ?>
170
+ <p><?php printf(__('%ss previously imported by this import (ID: %s) that aren\'t present for this run of the import will be set to draft.', 'wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name), esc_attr($import->id)); ?></p>
171
  <?php endif; ?>
172
 
173
  <?php if ( $post['create_new_records']): ?>
174
+ <p><?php printf(__('Records with unique keys that don\'t match any unique keys from %ss created by previous runs of this import (ID: %s) will be created.', 'wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name), esc_attr($import->id)); ?></p>
175
  <?php endif; ?>
176
 
177
  <?php endif; ?>
205
  }
206
  if ( 'custom field' == $post['duplicate_indicator']) $criteria = 'has Custom Field named "'. $post['custom_duplicate_name'] .'" with value = ' . $post['custom_duplicate_value'];
207
  ?>
208
+ <p><?php printf(__('WP All Import will merge data into existing %ss, matching the following criteria: %s', 'wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name), esc_attr($criteria)); ?></p>
209
 
210
  <?php if ( "no" == $post['is_keep_former_posts'] and "yes" == $post['update_all_data']){ ?>
211
  <p><?php _e('Existing data will be updated with the data specified in this import.', 'wp_all_import_plugin'); ?></p>
212
  <?php } elseif ("no" == $post['is_keep_former_posts'] and "no" == $post['update_all_data']){?>
213
  <div>
214
+ <p><?php printf(__('Next %s data will be updated, <strong>all other data will be left alone</strong>', 'wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name)); ?></p>
215
  <?php if ( in_array('data_to_import', $visible_sections)):?>
216
  <ul style="padding-left: 35px;">
217
  <?php if ( $post['is_update_status']): ?>
264
  _e('only ACF presented in import options', 'wp_all_import_plugin');
265
  break;
266
  case 'only':
267
+ printf(__('only these ACF : %s', 'wp_all_import_plugin'), esc_attr($post['acf_only_list']));
268
  break;
269
  case 'all_except':
270
+ printf(__('all ACF except these: %s', 'wp_all_import_plugin'), esc_attr($post['acf_except_list']));
271
  break;
272
  } ?>
273
  </li>
293
  _e('all custom fields', 'wp_all_import_plugin');
294
  break;
295
  case 'only':
296
+ printf(__('only these custom fields : %s', 'wp_all_import_plugin'), esc_attr($post['custom_fields_only_list']));
297
  break;
298
  case 'all_except':
299
+ printf(__('all cusom fields except these: %s', 'wp_all_import_plugin'), esc_attr($post['custom_fields_except_list']));
300
  break;
301
  } ?>
302
  </li>
312
  _e('only add new', 'wp_all_import_plugin');
313
  break;
314
  case 'only':
315
+ printf(__('update only these taxonomies: %s , leave the rest alone', 'wp_all_import_plugin'), esc_attr($post['taxonomies_only_list']));
316
  break;
317
  case 'all_except':
318
+ printf(__('leave these taxonomies: %s alone, update all others', 'wp_all_import_plugin'), esc_attr($post['taxonomies_except_list']));
319
  break;
320
  } ?>
321
  </li>
326
  </div>
327
  <?php } ?>
328
  <?php if ( $post['create_new_records']): ?>
329
+ <p><?php printf(__('New %ss will be created from records that don\'t match the above criteria.', 'wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name)); ?></p>
330
  <?php endif; ?>
331
  <?php endif; ?>
332
 
334
  <?php if ( "default" == $post['import_processing']): ?>
335
  <p><?php _e('High-Speed, Small File Processing enabled. Your import will fail if it takes longer than your server\'s max_execution_time.', 'wp_all_import_plugin'); ?></p>
336
  <?php else: ?>
337
+ <p><?php printf(__('Piece By Piece Processing enabled. %s records will be processed each iteration. If it takes longer than your server\'s max_execution_time to process %s records, your import will fail.', 'wp_all_import_plugin'), esc_attr($post['records_per_request']), esc_attr($post['records_per_request'])); ?></p>
338
  <?php endif; ?>
339
 
340
  <?php if ($post['chuncking'] and "default" != $post['import_processing']):?>
341
+ <p><?php printf(__('Your file will be split into %s records chunks before processing.', 'wp_all_import_plugin'), esc_attr(PMXI_Plugin::getInstance()->getOption('large_feed_limit'))); ?></p>
342
  <?php endif; ?>
343
 
344
  <?php if ($post['is_fast_mode']):?>
361
  <input type="submit" class="rad10" value="<?php _e('Confirm & Run Import', 'wp_all_import_plugin') ?>" />
362
  <p>
363
  <?php if ($isWizard): ?>
364
+ <a href="<?php echo esc_url(apply_filters('pmxi_options_back_link', add_query_arg('action', 'options', $this->baseUrl), $isWizard)); ?>"><?php _e('or go back to Step 4', 'wp_all_import_plugin') ?></a>
365
  <?php else:?>
366
+ <a href="<?php echo esc_url(apply_filters('pmxi_options_back_link', remove_query_arg('id', remove_query_arg('action', $this->baseUrl)), $isWizard)); ?>"><?php _e('or go back to Manage Imports', 'wp_all_import_plugin') ?></a>
367
  <?php endif; ?>
368
  </p>
369
  </form>
views/admin/import/element.php CHANGED
@@ -57,11 +57,11 @@
57
  <td class="txt_center">
58
 
59
  <p class="wpallimport-root-element">
60
- <?php echo PMXI_Plugin::$session->source['root_element'];?>
61
  </p>
62
  <input type="text" id="goto_element" value="1"/>
63
  <span class="wpallimport-elements-information">
64
- <?php printf(__('of <span class="wpallimport-elements-count-info">%s</span>','wp_all_import_plugin'), PMXI_Plugin::$session->count);?>
65
  </span>
66
 
67
  </td>
@@ -100,11 +100,11 @@
100
  <div class="import_information">
101
  <?php if (PMXI_Plugin::$session->wizard_type == 'new') :?>
102
  <h3>
103
- <?php printf(__('Each <span>&lt;<span class="root_element">%s</span>&gt;</span> element will be imported into a <span>New %s</span>'), PMXI_Plugin::$session->source['root_element'], $custom_type->labels->singular_name); ?>
104
  </h3>
105
  <?php else: ?>
106
  <h3>
107
- <?php printf(__('Data in <span>&lt;<span class="root_element">%s</span>&gt;</span> elements will be imported to <span>%s</span>'), PMXI_Plugin::$session->source['root_element'], $custom_type->labels->name); ?>
108
  </h3>
109
  <?php endif; ?>
110
 
@@ -171,7 +171,7 @@
171
  <td style="width:5%; font-weight:bold; color: #000;"><?php _e('XPath','wp_all_import_plugin');?></td>
172
  <td style="width:95%;">
173
  <input type="text" name="xpath" value="<?php echo esc_attr($post['xpath']) ?>" style="max-width:none;" />
174
- <input type="hidden" id="root_element" name="root_element" value="<?php echo PMXI_Plugin::$session->source['root_element']; ?>"/>
175
  </td>
176
  </tr>
177
  </table>
@@ -202,7 +202,7 @@
202
  <hr>
203
 
204
  <p class="wpallimport-submit-buttons" style="text-align:center;">
205
- <a href="<?php echo add_query_arg('action', 'index', $this->baseUrl); ?>" class="back rad3"><?php _e('Back to Step 1','wp_all_import_plugin');?></a>
206
  &nbsp;
207
  <input type="hidden" name="is_submitted" value="1" />
208
  <?php wp_nonce_field('choose-elements', '_wpnonce_choose-elements') ?>
57
  <td class="txt_center">
58
 
59
  <p class="wpallimport-root-element">
60
+ <?php echo wp_kses_post(PMXI_Plugin::$session->source['root_element']);?>
61
  </p>
62
  <input type="text" id="goto_element" value="1"/>
63
  <span class="wpallimport-elements-information">
64
+ <?php printf(__('of <span class="wpallimport-elements-count-info">%s</span>','wp_all_import_plugin'), intval(PMXI_Plugin::$session->count));?>
65
  </span>
66
 
67
  </td>
100
  <div class="import_information">
101
  <?php if (PMXI_Plugin::$session->wizard_type == 'new') :?>
102
  <h3>
103
+ <?php printf(__('Each <span>&lt;<span class="root_element">%s</span>&gt;</span> element will be imported into a <span>New %s</span>'), esc_attr(PMXI_Plugin::$session->source['root_element']), esc_attr($custom_type->labels->singular_name)); ?>
104
  </h3>
105
  <?php else: ?>
106
  <h3>
107
+ <?php printf(__('Data in <span>&lt;<span class="root_element">%s</span>&gt;</span> elements will be imported to <span>%s</span>'), esc_attr(PMXI_Plugin::$session->source['root_element']), esc_attr($custom_type->labels->name)); ?>
108
  </h3>
109
  <?php endif; ?>
110
 
171
  <td style="width:5%; font-weight:bold; color: #000;"><?php _e('XPath','wp_all_import_plugin');?></td>
172
  <td style="width:95%;">
173
  <input type="text" name="xpath" value="<?php echo esc_attr($post['xpath']) ?>" style="max-width:none;" />
174
+ <input type="hidden" id="root_element" name="root_element" value="<?php echo esc_attr(PMXI_Plugin::$session->source['root_element']); ?>"/>
175
  </td>
176
  </tr>
177
  </table>
202
  <hr>
203
 
204
  <p class="wpallimport-submit-buttons" style="text-align:center;">
205
+ <a href="<?php echo esc_url(add_query_arg('action', 'index', $this->baseUrl)); ?>" class="back rad3"><?php _e('Back to Step 1','wp_all_import_plugin');?></a>
206
  &nbsp;
207
  <input type="hidden" name="is_submitted" value="1" />
208
  <?php wp_nonce_field('choose-elements', '_wpnonce_choose-elements') ?>
views/admin/import/evaluate.php CHANGED
@@ -1,8 +1,8 @@
1
  <div class="updated found_records">
2
  <?php if ($is_csv):?>
3
- <h3><?php printf(__('<span class="matches_count">%s</span> <strong>%s</strong> will be imported', 'wp_all_import_plugin'), $node_list_count, _n('row', 'rows', $node_list_count, 'wp_all_import_plugin')); ?></h3>
4
  <?php else:?>
5
- <h3><?php printf(__('<span class="matches_count">%s</span> <strong>%s</strong> %s will be imported', 'wp_all_import_plugin'), $node_list_count, PMXI_Plugin::$session->source['root_element'], _n('element', 'elements', $node_list_count, 'wp_all_import_plugin')); ?></h3>
6
  <?php endif; ?>
7
  <h4><?php _e('Click an element to select it, or scroll down to add filtering options.', 'wp_all_import_plugin'); ?></h4>
8
  <?php if (PMXI_Plugin::getInstance()->getOption('highlight_limit') and $elements->length > PMXI_Plugin::getInstance()->getOption('highlight_limit')): ?>
1
  <div class="updated found_records">
2
  <?php if ($is_csv):?>
3
+ <h3><?php printf(__('<span class="matches_count">%s</span> <strong>%s</strong> will be imported', 'wp_all_import_plugin'), intval($node_list_count), _n('row', 'rows', $node_list_count, 'wp_all_import_plugin')); ?></h3>
4
  <?php else:?>
5
+ <h3><?php printf(__('<span class="matches_count">%s</span> <strong>%s</strong> %s will be imported', 'wp_all_import_plugin'), intval($node_list_count), PMXI_Plugin::$session->source['root_element'], _n('element', 'elements', $node_list_count, 'wp_all_import_plugin')); ?></h3>
6
  <?php endif; ?>
7
  <h4><?php _e('Click an element to select it, or scroll down to add filtering options.', 'wp_all_import_plugin'); ?></h4>
8
  <?php if (PMXI_Plugin::getInstance()->getOption('highlight_limit') and $elements->length > PMXI_Plugin::getInstance()->getOption('highlight_limit')): ?>
views/admin/import/evaluate_variations.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php if (!empty($variation_list_count)):?>
2
  <div class="updated">
3
- <p><?php printf(__('Current selection matches <span class="matches_count">%s</span> %s.', 'wp_all_import_plugin'), $variation_list_count, _n('element', 'elements', $variation_list_count, 'wp_all_import_plugin')) ?></p>
4
  <?php if (PMXI_Plugin::getInstance()->getOption('highlight_limit') and $variation_list_count > PMXI_Plugin::getInstance()->getOption('highlight_limit')): ?>
5
  <p><?php _e('<strong>Note</strong>: Highlighting is turned off since can be very slow on large sets of elements.', 'wp_all_import_plugin') ?></p>
6
  <?php endif ?>
@@ -11,7 +11,7 @@
11
  <div class="title">
12
  <div class="navigation">
13
  <?php if ($tagno > 0): ?><a href="#variation_prev" class="previous_element">&nbsp;</a><?php else: ?><span class="previous_element">&nbsp;</span><?php endif ?>
14
- <?php printf(__('#<strong>%s</strong> out of <strong>%s</strong>', 'wp_all_import_plugin'), $tagno + 1, $variation_list_count); ?>
15
  <?php if ($tagno < $variation_list_count - 1): ?><a href="#variation_next" class="next_element">&nbsp;</a><?php else: ?><span class="next_element">&nbsp;</span><?php endif ?>
16
  </div>
17
  </div>
1
  <?php if (!empty($variation_list_count)):?>
2
  <div class="updated">
3
+ <p><?php printf(__('Current selection matches <span class="matches_count">%s</span> %s.', 'wp_all_import_plugin'), intval($variation_list_count), _n('element', 'elements', $variation_list_count, 'wp_all_import_plugin')) ?></p>
4
  <?php if (PMXI_Plugin::getInstance()->getOption('highlight_limit') and $variation_list_count > PMXI_Plugin::getInstance()->getOption('highlight_limit')): ?>
5
  <p><?php _e('<strong>Note</strong>: Highlighting is turned off since can be very slow on large sets of elements.', 'wp_all_import_plugin') ?></p>
6
  <?php endif ?>
11
  <div class="title">
12
  <div class="navigation">
13
  <?php if ($tagno > 0): ?><a href="#variation_prev" class="previous_element">&nbsp;</a><?php else: ?><span class="previous_element">&nbsp;</span><?php endif ?>
14
+ <?php printf(__('#<strong>%s</strong> out of <strong>%s</strong>', 'wp_all_import_plugin'), $tagno + 1, intval($variation_list_count)); ?>
15
  <?php if ($tagno < $variation_list_count - 1): ?><a href="#variation_next" class="next_element">&nbsp;</a><?php else: ?><span class="next_element">&nbsp;</span><?php endif ?>
16
  </div>
17
  </div>
views/admin/import/index.php CHANGED
@@ -1,9 +1,9 @@
1
  <!-- Preload Images -->
2
 
3
- <img src="<?php echo PMXI_Plugin::ROOT_URL . '/static/img/soflyy-logo.svg'; ?>" class="wpallimport-preload-image"/>
4
 
5
  <script type="text/javascript">
6
- var plugin_url = '<?php echo WP_ALL_IMPORT_ROOT_URL; ?>';
7
  </script>
8
 
9
  <table class="wpallimport-layout wpallimport-step-1">
@@ -67,7 +67,7 @@
67
  <a id="select-files" href="javascript:void(0);" <?php if (empty($post['filepath'])):?>style="display:none;"<?php endif; ?> /><?php _e('Click here to select file from your computer...', 'wp_all_import_plugin'); ?></a>
68
  <div id="progressbar" class="wpallimport-progressbar">
69
  <?php if (!empty($post['filepath'])):?>
70
- <span><?php _e('Upload Complete', 'wp_all_import_plugin');?></span> - <?php echo basename($post['filepath']); ?>
71
  <?php endif; ?>
72
  </div>
73
  <div id="progress" class="wpallimport-progress" <?php if (!empty($post['filepath'])):?>style="visibility: visible; display: block;"<?php endif; ?>>
@@ -110,7 +110,7 @@
110
  <input type="hidden" name="file" value="<?php echo esc_attr($post['file']); ?>"/>
111
 
112
  <div class="wpallimport-note" style="margin: 0 auto; font-size: 13px;">
113
- <?php printf(__('Files uploaded to <strong>%s</strong> will appear in this list.', 'wp_all_import_plugin'), $upload_dir['basedir'] . '/wpallimport/files') ?>
114
  <div class="wpallimport-free-edition-notice">
115
  <a href="https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707176&edd_options%5Bprice_id%5D=1&utm_source=import-plugin-free&utm_medium=upgrade-notice&utm_campaign=use-existing-file" target="_blank" class="upgrade_link"><?php _e('Upgrade to the Pro edition of WP All Import to Use Existing Files', 'wp_all_import_plugin');?></a>
116
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
@@ -474,7 +474,7 @@
474
  <?php
475
  if ( ! empty($upload_validation) ):
476
  $file_type = strtoupper(pmxi_getExtension($post['file']));
477
- printf(__('Please verify that the file you using is a valid %s file.', 'wp_all_import_plugin'), $file_type);
478
  endif;
479
  ?>
480
  </h4>
1
  <!-- Preload Images -->
2
 
3
+ <img src="<?php echo esc_url(PMXI_Plugin::ROOT_URL . '/static/img/soflyy-logo.svg'); ?>" class="wpallimport-preload-image"/>
4
 
5
  <script type="text/javascript">
6
+ var plugin_url = '<?php echo esc_url(WP_ALL_IMPORT_ROOT_URL); ?>';
7
  </script>
8
 
9
  <table class="wpallimport-layout wpallimport-step-1">
67
  <a id="select-files" href="javascript:void(0);" <?php if (empty($post['filepath'])):?>style="display:none;"<?php endif; ?> /><?php _e('Click here to select file from your computer...', 'wp_all_import_plugin'); ?></a>
68
  <div id="progressbar" class="wpallimport-progressbar">
69
  <?php if (!empty($post['filepath'])):?>
70
+ <span><?php _e('Upload Complete', 'wp_all_import_plugin');?></span> - <?php echo esc_attr(basename($post['filepath'])); ?>
71
  <?php endif; ?>
72
  </div>
73
  <div id="progress" class="wpallimport-progress" <?php if (!empty($post['filepath'])):?>style="visibility: visible; display: block;"<?php endif; ?>>
110
  <input type="hidden" name="file" value="<?php echo esc_attr($post['file']); ?>"/>
111
 
112
  <div class="wpallimport-note" style="margin: 0 auto; font-size: 13px;">
113
+ <?php printf(__('Files uploaded to <strong>%s</strong> will appear in this list.', 'wp_all_import_plugin'), esc_attr($upload_dir['basedir'] . '/wpallimport/files')) ?>
114
  <div class="wpallimport-free-edition-notice">
115
  <a href="https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707176&edd_options%5Bprice_id%5D=1&utm_source=import-plugin-free&utm_medium=upgrade-notice&utm_campaign=use-existing-file" target="_blank" class="upgrade_link"><?php _e('Upgrade to the Pro edition of WP All Import to Use Existing Files', 'wp_all_import_plugin');?></a>
116
  <p><?php _e('If you already own it, remove the free edition and install the Pro edition.', 'wp_all_import_plugin'); ?></p>
474
  <?php
475
  if ( ! empty($upload_validation) ):
476
  $file_type = strtoupper(pmxi_getExtension($post['file']));
477
+ printf(__('Please verify that the file you using is a valid %s file.', 'wp_all_import_plugin'), esc_attr($file_type));
478
  endif;
479
  ?>
480
  </h4>
views/admin/import/options/_buttons_template.php CHANGED
@@ -8,7 +8,7 @@
8
 
9
  <?php if ($isWizard): ?>
10
 
11
- <a href="<?php echo apply_filters('pmxi_options_back_link', add_query_arg('action', 'template', $this->baseUrl), $isWizard); ?>" class="back rad3"><?php _e('Back to Step 3', 'wp_all_import_plugin') ?></a>
12
 
13
  <?php if (isset($source_type) and in_array($source_type, array('url', 'ftp', 'file'))): ?>
14
  <!--input type="hidden" class="save_only" value="0" name="save_only"/-->
@@ -18,7 +18,7 @@
18
  <input type="submit" class="button button-primary button-hero wpallimport-large-button" value="<?php _e('Continue', 'wp_all_import_plugin') ?>" />
19
 
20
  <?php else: ?>
21
- <a href="<?php echo apply_filters('pmxi_options_back_link', remove_query_arg('id', remove_query_arg('action', $this->baseUrl)), $isWizard); ?>" class="back rad3"><?php _e('Back to Manage Imports', 'wp_all_import_plugin') ?></a>
22
  <input type="submit" class="button button-primary button-hero wpallimport-large-button" value="<?php _e('Save Import Configuration', 'wp_all_import_plugin') ?>" />
23
  <?php endif ?>
24
  </p>
8
 
9
  <?php if ($isWizard): ?>
10
 
11
+ <a href="<?php echo esc_url(apply_filters('pmxi_options_back_link', add_query_arg('action', 'template', $this->baseUrl), $isWizard)); ?>" class="back rad3"><?php _e('Back to Step 3', 'wp_all_import_plugin') ?></a>
12
 
13
  <?php if (isset($source_type) and in_array($source_type, array('url', 'ftp', 'file'))): ?>
14
  <!--input type="hidden" class="save_only" value="0" name="save_only"/-->
18
  <input type="submit" class="button button-primary button-hero wpallimport-large-button" value="<?php _e('Continue', 'wp_all_import_plugin') ?>" />
19
 
20
  <?php else: ?>
21
+ <a href="<?php echo esc_url(apply_filters('pmxi_options_back_link', remove_query_arg('id', remove_query_arg('action', $this->baseUrl)), $isWizard)); ?>" class="back rad3"><?php _e('Back to Manage Imports', 'wp_all_import_plugin') ?></a>
22
  <input type="submit" class="button button-primary button-hero wpallimport-large-button" value="<?php _e('Save Import Configuration', 'wp_all_import_plugin') ?>" />
23
  <?php endif ?>
24
  </p>
views/admin/import/options/_import_file.php CHANGED
@@ -1,5 +1,5 @@
1
  <script type="text/javascript">
2
- var plugin_url = '<?php echo WP_ALL_IMPORT_ROOT_URL; ?>';
3
  </script>
4
 
5
  <div class="change_file">
@@ -22,7 +22,7 @@
22
  <?php
23
  if ( ! empty($upload_validation) ):
24
  $file_type = strtoupper(pmxi_getExtension($post['file']));
25
- printf(__('This %s file has errors and is not valid.', 'wp_all_import_plugin'), $file_type);
26
  endif;
27
  ?>
28
  </h4>
@@ -102,7 +102,7 @@
102
  <input type="hidden" name="file" value="<?php if ('file' == $import->type) echo esc_attr($import->path); ?>"/>
103
 
104
  <div class="wpallimport-note" style="margin: 0 auto; ">
105
- <?php printf(__('Files uploaded to <strong>%s</strong> will appear in this list.', 'wp_all_import_plugin'), $upload_dir['basedir'] . '/wpallimport/files'); ?>
106
  </div>
107
  <div class="wpallimport-free-edition-notice">
108
  <a href="https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707176&edd_options%5Bprice_id%5D=1&utm_source=import-plugin-free&utm_medium=error&utm_campaign=use-existing-file" target="_blank" class="upgrade_link"><?php _e('Upgrade to the Pro edition of WP All Import to Use Existing Files', 'wp_all_import_plugin');?></a>
1
  <script type="text/javascript">
2
+ var plugin_url = '<?php echo esc_url(WP_ALL_IMPORT_ROOT_URL); ?>';
3
  </script>
4
 
5
  <div class="change_file">
22
  <?php
23
  if ( ! empty($upload_validation) ):
24
  $file_type = strtoupper(pmxi_getExtension($post['file']));
25
+ printf(__('This %s file has errors and is not valid.', 'wp_all_import_plugin'), esc_attr($file_type));
26
  endif;
27
  ?>
28
  </h4>
102
  <input type="hidden" name="file" value="<?php if ('file' == $import->type) echo esc_attr($import->path); ?>"/>
103
 
104
  <div class="wpallimport-note" style="margin: 0 auto; ">
105
+ <?php printf(__('Files uploaded to <strong>%s</strong> will appear in this list.', 'wp_all_import_plugin'), esc_attr($upload_dir['basedir'] . '/wpallimport/files')); ?>
106
  </div>
107
  <div class="wpallimport-free-edition-notice">
108
  <a href="https://www.wpallimport.com/checkout/?edd_action=add_to_cart&download_id=2707176&edd_options%5Bprice_id%5D=1&utm_source=import-plugin-free&utm_medium=error&utm_campaign=use-existing-file" target="_blank" class="upgrade_link"><?php _e('Upgrade to the Pro edition of WP All Import to Use Existing Files', 'wp_all_import_plugin');?></a>
views/admin/import/options/_reimport_options.php CHANGED
@@ -17,7 +17,7 @@
17
  <div class="input">
18
  <input type="hidden" name="create_new_records" value="0" />
19
  <input type="checkbox" id="create_new_records" name="create_new_records" value="1" <?php echo $post['create_new_records'] ? 'checked="checked"' : '' ?> />
20
- <label for="create_new_records"><?php printf(__('Create new %s from records newly present in your file', 'wp_all_import_plugin'), $cpt_name) ?></label>
21
  <?php if ( ! empty(PMXI_Plugin::$session->deligate) and PMXI_Plugin::$session->deligate == 'wpallexport' ): ?>
22
  <a href="#help" class="wpallimport-help" title="<?php _e('New posts will only be created when ID column is present and value in ID column is unique.', 'wp_all_import_plugin') ?>" style="top: -1px;">?</a>
23
  <?php endif; ?>
@@ -26,7 +26,7 @@
26
  <div class="input">
27
  <input type="hidden" name="is_delete_missing" value="0" />
28
  <input type="checkbox" id="is_delete_missing" name="is_delete_missing" value="1" <?php echo $post['is_delete_missing'] ? 'checked="checked"': '' ?> class="switcher" <?php if ( "new" != $post['wizard_type']): ?>disabled="disabled"<?php endif; ?>/>
29
- <label for="is_delete_missing" <?php if ( "new" != $post['wizard_type']): ?>style="color:#ccc;"<?php endif; ?>><?php printf(__('Delete %s that are no longer present in your file', 'wp_all_import_plugin'), $cpt_name) ?></label>
30
  <?php if ( "new" != $post['wizard_type']): ?>
31
  <a href="#help" class="wpallimport-help" title="<?php _e('Records removed from the import file can only be deleted when importing into New Items. This feature cannot be enabled when importing into Existing Items.', 'wp_all_import_plugin') ?>" style="position:relative; top: -1px;">?</a>
32
  <?php endif; ?>
@@ -65,16 +65,16 @@
65
  <div class="input">
66
  <input type="hidden" id="is_keep_former_posts" name="is_keep_former_posts" value="yes" />
67
  <input type="checkbox" id="is_not_keep_former_posts" name="is_keep_former_posts" value="no" <?php echo "yes" != $post['is_keep_former_posts'] ? 'checked="checked"': '' ?> class="switcher" />
68
- <label for="is_not_keep_former_posts"><?php printf(__('Update existing %s with changed data in your file', 'wp_all_import_plugin'), $cpt_name) ?></label>
69
  <?php if ( $this->isWizard and "new" == $post['wizard_type'] and empty(PMXI_Plugin::$session->deligate)): ?>
70
- <a href="#help" class="wpallimport-help" style="position: relative; top: -2px;" title="<?php printf(__('These options will only be used if you run this import again later. All data is imported the first time you run an import.<br/><br/>Note that WP All Import will only update/remove %s created by this import. If you want to match to %s that already exist on this site, use Existing Items in Step 1.', 'wp_all_import_plugin'), $cpt_name, $cpt_name) ?>">?</a>
71
  <?php endif; ?>
72
  <div class="switcher-target-is_not_keep_former_posts" style="padding-left:17px;">
73
 
74
  <div class="input" style="margin-left: 4px;">
75
  <input type="hidden" name="is_selective_hashing" value="0" />
76
  <input type="checkbox" id="is_selective_hashing" name="is_selective_hashing" value="1" <?php echo $post['is_selective_hashing'] ? 'checked="checked"': '' ?> class="switcher"/>
77
- <label for="is_selective_hashing"><?php printf(__('Skip %s if their data in your file has not changed', 'wp_all_import_plugin'), strtolower($custom_type->labels->name)); ?></label>
78
  <a href="#help" class="wpallimport-help" style="position: relative; top: -2px;" title="<?php _e('When enabled, WP All Import will keep track of every post\'s data as it is imported. When the import is run again, posts will be skipped if their data in the import file has not changed since the last run.<br/><br/>Posts will not be skipped if the import template or settings change, or if you make changes to the custom code in the Function Editor.', 'wp_all_import_plugin') ?>">?</a>
79
  <div class="switcher-target-is_selective_hashing" style="padding-left:17px;">
80
  <div class="wpallimport-free-edition-notice" style="margin: 20px 0;">
17
  <div class="input">
18
  <input type="hidden" name="create_new_records" value="0" />
19
  <input type="checkbox" id="create_new_records" name="create_new_records" value="1" <?php echo $post['create_new_records'] ? 'checked="checked"' : '' ?> />
20
+ <label for="create_new_records"><?php printf(__('Create new %s from records newly present in your file', 'wp_all_import_plugin'), esc_attr($cpt_name)) ?></label>
21
  <?php if ( ! empty(PMXI_Plugin::$session->deligate) and PMXI_Plugin::$session->deligate == 'wpallexport' ): ?>
22
  <a href="#help" class="wpallimport-help" title="<?php _e('New posts will only be created when ID column is present and value in ID column is unique.', 'wp_all_import_plugin') ?>" style="top: -1px;">?</a>
23
  <?php endif; ?>
26
  <div class="input">
27
  <input type="hidden" name="is_delete_missing" value="0" />
28
  <input type="checkbox" id="is_delete_missing" name="is_delete_missing" value="1" <?php echo $post['is_delete_missing'] ? 'checked="checked"': '' ?> class="switcher" <?php if ( "new" != $post['wizard_type']): ?>disabled="disabled"<?php endif; ?>/>
29
+ <label for="is_delete_missing" <?php if ( "new" != $post['wizard_type']): ?>style="color:#ccc;"<?php endif; ?>><?php printf(__('Delete %s that are no longer present in your file', 'wp_all_import_plugin'), esc_attr($cpt_name)) ?></label>
30
  <?php if ( "new" != $post['wizard_type']): ?>
31
  <a href="#help" class="wpallimport-help" title="<?php _e('Records removed from the import file can only be deleted when importing into New Items. This feature cannot be enabled when importing into Existing Items.', 'wp_all_import_plugin') ?>" style="position:relative; top: -1px;">?</a>
32
  <?php endif; ?>
65
  <div class="input">
66
  <input type="hidden" id="is_keep_former_posts" name="is_keep_former_posts" value="yes" />
67
  <input type="checkbox" id="is_not_keep_former_posts" name="is_keep_former_posts" value="no" <?php echo "yes" != $post['is_keep_former_posts'] ? 'checked="checked"': '' ?> class="switcher" />
68
+ <label for="is_not_keep_former_posts"><?php printf(__('Update existing %s with changed data in your file', 'wp_all_import_plugin'), esc_attr($cpt_name)) ?></label>
69
  <?php if ( $this->isWizard and "new" == $post['wizard_type'] and empty(PMXI_Plugin::$session->deligate)): ?>
70
+ <a href="#help" class="wpallimport-help" style="position: relative; top: -2px;" title="<?php printf(__('These options will only be used if you run this import again later. All data is imported the first time you run an import.<br/><br/>Note that WP All Import will only update/remove %s created by this import. If you want to match to %s that already exist on this site, use Existing Items in Step 1.', 'wp_all_import_plugin'), esc_attr($cpt_name), esc_attr($cpt_name)) ?>">?</a>
71
  <?php endif; ?>
72
  <div class="switcher-target-is_not_keep_former_posts" style="padding-left:17px;">
73
 
74
  <div class="input" style="margin-left: 4px;">
75
  <input type="hidden" name="is_selective_hashing" value="0" />
76
  <input type="checkbox" id="is_selective_hashing" name="is_selective_hashing" value="1" <?php echo $post['is_selective_hashing'] ? 'checked="checked"': '' ?> class="switcher"/>
77
+ <label for="is_selective_hashing"><?php printf(__('Skip %s if their data in your file has not changed', 'wp_all_import_plugin'), esc_attr(strtolower($custom_type->labels->name))); ?></label>
78
  <a href="#help" class="wpallimport-help" style="position: relative; top: -2px;" title="<?php _e('When enabled, WP All Import will keep track of every post\'s data as it is imported. When the import is run again, posts will be skipped if their data in the import file has not changed since the last run.<br/><br/>Posts will not be skipped if the import template or settings change, or if you make changes to the custom code in the Function Editor.', 'wp_all_import_plugin') ?>">?</a>
79
  <div class="switcher-target-is_selective_hashing" style="padding-left:17px;">
80
  <div class="wpallimport-free-edition-notice" style="margin: 20px 0;">
views/admin/import/options/_reimport_template.php CHANGED
@@ -25,7 +25,7 @@
25
  else
26
  {
27
  ?>
28
- <h3 style="padding-left:0;"><?php printf(__('WP All Import will create new %s for each unique record in your file.','wp_all_import_plugin'), $custom_type->labels->name);?></h3>
29
  <?php
30
  }
31
  }
@@ -38,7 +38,7 @@
38
  <td>
39
  <input type="hidden" name="duplicate_matching" value="auto"/>
40
  <?php if ( ! $this->isWizard ):?>
41
- <h4><?php printf(__('WP All Import will associate records in your file with %s it has already created from previous runs of this import based on the Unique Identifier.','wp_all_import_plugin'), $custom_type->labels->name);?></h4>
42
  <?php endif; ?>
43
  <div class="wpallimport-unique-key-wrapper" <?php if (!empty(PMXI_Plugin::$session->deligate)):?>style="display:none;"<?php endif; ?>>
44
  <label style="font-weight: bold;"><?php _e("Unique Identifier", "pmxi_plugin"); ?></label>
@@ -52,8 +52,8 @@
52
  <?php if ( ! empty($post['unique_key']) ): ?>
53
  <a href="javascript:void(0);" class="wpallimport-change-unique-key"><?php _e('Edit', 'wp_all_import_plugin'); ?></a>
54
  <div id="dialog-confirm" title="<?php _e('Warning: Are you sure you want to edit the Unique Identifier?','wp_all_import_plugin');?>" style="display:none;">
55
- <p><?php printf(__('It is recommended you delete all %s associated with this import before editing the unique identifier.', 'wp_all_import_plugin'), strtolower($custom_type->labels->name)); ?></p>
56
- <p><?php printf(__('Editing the unique identifier will dissociate all existing %s linked to this import. Future runs of the import will result in duplicates, as WP All Import will no longer be able to update these %s.', 'wp_all_import_plugin'), strtolower($custom_type->labels->name), strtolower($custom_type->labels->name)); ?></p>
57
  <p><?php _e('You really should just re-create your import, and pick the right unique identifier to start with.', 'wp_all_import_plugin'); ?></p>
58
  </div>
59
  <?php else:?>
@@ -65,8 +65,8 @@
65
  <p>&nbsp;</p>
66
  <?php if ( $this->isWizard ):?>
67
  <p class="drag_an_element_ico"><?php _e('Drag an element, or combo of elements, to the box above. The Unique Identifier should be unique for each record in your file, and should stay the same even if your file is updated. Things like product IDs, titles, and SKUs are good Unique Identifiers because they probably won\'t change. Don\'t use a description or price, since that might be changed.', 'wp_all_import_plugin'); ?></p>
68
- <p class="info_ico"><?php printf(__('If you run this import again with an updated file, the Unique Identifier allows WP All Import to correctly link the records in your updated file with the %s it will create right now. If multiple records in this file have the same Unique Identifier, only the first will be created. The others will be detected as duplicates.', 'wp_all_import_plugin'), $custom_type->labels->name); ?></p>
69
- <p class="new_element_ico"><?php printf(__('In Step 1 you selected New Items. So, if you run this import again WP All Import will only try to update records that were created by this import. It will never update, modify, or remove %s that were not created by this import. If you want to match records in your file to records that already exist on this site, select Existing Items in Step 1.', 'wp_all_import_plugin'), $custom_type->labels->name); ?></p>
70
  <?php endif; ?>
71
  </div>
72
 
@@ -81,7 +81,7 @@
81
  <?php if ( ! $this->isWizard ):?>
82
  <h3><?php _e('Record Matching', 'wp_all_import_plugin'); ?></h3>
83
  <?php else: ?>
84
- <h3 style="padding-left:0;"><?php printf(__('WP All Import will merge data into existing %s.','wp_all_import_plugin'), $custom_type->labels->name);?></h3>
85
  <?php endif; ?>
86
  </div>
87
  <div class="wpallimport-collapsed-content" style="padding:0;">
@@ -91,7 +91,7 @@
91
  <td>
92
  <div class="input" style="margin-bottom:15px; position:relative;">
93
  <input type="hidden" name="duplicate_matching" value="manual"/>
94
- <h4><?php printf(__('Records in your file will be matched with %ss on your site based on...', 'wp_all_import_plugin' ), $custom_type->labels->singular_name);?></h4>
95
  <div style="margin-left: -4px;">
96
  <div class="input">
97
 
25
  else
26
  {
27
  ?>
28
+ <h3 style="padding-left:0;"><?php printf(__('WP All Import will create new %s for each unique record in your file.','wp_all_import_plugin'), esc_attr($custom_type->labels->name));?></h3>
29
  <?php
30
  }
31
  }
38
  <td>
39
  <input type="hidden" name="duplicate_matching" value="auto"/>
40
  <?php if ( ! $this->isWizard ):?>
41
+ <h4><?php printf(__('WP All Import will associate records in your file with %s it has already created from previous runs of this import based on the Unique Identifier.','wp_all_import_plugin'), esc_attr($custom_type->labels->name));?></h4>
42
  <?php endif; ?>
43
  <div class="wpallimport-unique-key-wrapper" <?php if (!empty(PMXI_Plugin::$session->deligate)):?>style="display:none;"<?php endif; ?>>
44
  <label style="font-weight: bold;"><?php _e("Unique Identifier", "pmxi_plugin"); ?></label>
52
  <?php if ( ! empty($post['unique_key']) ): ?>
53
  <a href="javascript:void(0);" class="wpallimport-change-unique-key"><?php _e('Edit', 'wp_all_import_plugin'); ?></a>
54
  <div id="dialog-confirm" title="<?php _e('Warning: Are you sure you want to edit the Unique Identifier?','wp_all_import_plugin');?>" style="display:none;">
55
+ <p><?php printf(__('It is recommended you delete all %s associated with this import before editing the unique identifier.', 'wp_all_import_plugin'), esc_attr(strtolower($custom_type->labels->name))); ?></p>
56
+ <p><?php printf(__('Editing the unique identifier will dissociate all existing %s linked to this import. Future runs of the import will result in duplicates, as WP All Import will no longer be able to update these %s.', 'wp_all_import_plugin'), esc_attr(strtolower($custom_type->labels->name)), esc_attr(strtolower($custom_type->labels->name))); ?></p>
57
  <p><?php _e('You really should just re-create your import, and pick the right unique identifier to start with.', 'wp_all_import_plugin'); ?></p>
58
  </div>
59
  <?php else:?>
65
  <p>&nbsp;</p>
66
  <?php if ( $this->isWizard ):?>
67
  <p class="drag_an_element_ico"><?php _e('Drag an element, or combo of elements, to the box above. The Unique Identifier should be unique for each record in your file, and should stay the same even if your file is updated. Things like product IDs, titles, and SKUs are good Unique Identifiers because they probably won\'t change. Don\'t use a description or price, since that might be changed.', 'wp_all_import_plugin'); ?></p>
68
+ <p class="info_ico"><?php printf(__('If you run this import again with an updated file, the Unique Identifier allows WP All Import to correctly link the records in your updated file with the %s it will create right now. If multiple records in this file have the same Unique Identifier, only the first will be created. The others will be detected as duplicates.', 'wp_all_import_plugin'), esc_attr($custom_type->labels->name)); ?></p>
69
+ <p class="new_element_ico"><?php printf(__('In Step 1 you selected New Items. So, if you run this import again WP All Import will only try to update records that were created by this import. It will never update, modify, or remove %s that were not created by this import. If you want to match records in your file to records that already exist on this site, select Existing Items in Step 1.', 'wp_all_import_plugin'), esc_attr($custom_type->labels->name)); ?></p>
70
  <?php endif; ?>
71
  </div>
72
 
81
  <?php if ( ! $this->isWizard ):?>
82
  <h3><?php _e('Record Matching', 'wp_all_import_plugin'); ?></h3>
83
  <?php else: ?>
84
+ <h3 style="padding-left:0;"><?php printf(__('WP All Import will merge data into existing %s.','wp_all_import_plugin'), esc_attr($custom_type->labels->name));?></h3>
85
  <?php endif; ?>
86
  </div>
87
  <div class="wpallimport-collapsed-content" style="padding:0;">
91
  <td>
92
  <div class="input" style="margin-bottom:15px; position:relative;">
93
  <input type="hidden" name="duplicate_matching" value="manual"/>
94
+ <h4><?php printf(__('Records in your file will be matched with %ss on your site based on...', 'wp_all_import_plugin' ), esc_attr($custom_type->labels->singular_name));?></h4>
95
  <div style="margin-left: -4px;">
96
  <div class="input">
97
 
views/admin/import/options/_settings_template.php CHANGED
@@ -36,11 +36,11 @@
36
  <p><?php _e('Editing this will change the post type of the posts processed by this import. Re-run the import for the changes to take effect.', 'wp_all_import_plugin');?></p> <br>
37
  <?php endif; ?>
38
 
39
- <input type="hidden" name="custom_type" value="<?php echo sanitize_key($post['custom_type']);?>">
40
 
41
  <?php if ( 'taxonomies' == $post['custom_type'] ):?>
42
  <div class="wp_all_import_change_taxonomy_type">
43
- <input type="hidden" name="taxonomy_type" value="<?php echo sanitize_key($post['taxonomy_type']);?>">
44
  <select id="taxonomy_to_import">
45
  <option value=""><?php _e('Select Taxonomy', 'wp_all_export_plugin'); ?></option>
46
  <?php $options = wp_all_import_get_taxonomies(); ?>
@@ -249,8 +249,8 @@
249
  <h4><?php _e('Downloads', 'wp_all_import_plugin'); ?></h4>
250
 
251
  <div class="input">
252
- <button class="button button-primary download_import_template" rel="<?php echo add_query_arg(array('page' => 'pmxi-admin-manage', 'id' => intval($_GET['id']), 'action' => 'get_template', '_wpnonce' => wp_create_nonce( '_wpnonce-download_template' )), $this->baseUrl); ?>" style="background-image: none;"><?php _e('Import Template', 'wp_all_import_plugin'); ?></button>
253
- <button class="button button-primary download_import_bundle" rel="<?php echo add_query_arg(array('page' => 'pmxi-admin-manage', 'id' => intval($_GET['id']), 'action' => 'bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_bundle' )), $this->baseUrl); ?>" style="background-image: none;"><?php _e('Import Bundle', 'wp_all_import_plugin'); ?></button>
254
  </div>
255
  <?php endif; ?>
256
  <h4><?php _e('Other', 'wp_all_import_plugin'); ?></h4>
36
  <p><?php _e('Editing this will change the post type of the posts processed by this import. Re-run the import for the changes to take effect.', 'wp_all_import_plugin');?></p> <br>
37
  <?php endif; ?>
38
 
39
+ <input type="hidden" name="custom_type" value="<?php echo sanitize_key(esc_attr($post['custom_type']));?>">
40
 
41
  <?php if ( 'taxonomies' == $post['custom_type'] ):?>
42
  <div class="wp_all_import_change_taxonomy_type">
43
+ <input type="hidden" name="taxonomy_type" value="<?php echo sanitize_key(esc_attr($post['taxonomy_type']));?>">
44
  <select id="taxonomy_to_import">
45
  <option value=""><?php _e('Select Taxonomy', 'wp_all_export_plugin'); ?></option>
46
  <?php $options = wp_all_import_get_taxonomies(); ?>
249
  <h4><?php _e('Downloads', 'wp_all_import_plugin'); ?></h4>
250
 
251
  <div class="input">
252
+ <button class="button button-primary download_import_template" rel="<?php echo esc_url(add_query_arg(array('page' => 'pmxi-admin-manage', 'id' => intval($_GET['id']), 'action' => 'get_template', '_wpnonce' => wp_create_nonce( '_wpnonce-download_template' )), $this->baseUrl)); ?>" style="background-image: none;"><?php _e('Import Template', 'wp_all_import_plugin'); ?></button>
253
+ <button class="button button-primary download_import_bundle" rel="<?php echo esc_url(add_query_arg(array('page' => 'pmxi-admin-manage', 'id' => intval($_GET['id']), 'action' => 'bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_bundle' )), $this->baseUrl)); ?>" style="background-image: none;"><?php _e('Import Bundle', 'wp_all_import_plugin'); ?></button>
254
  </div>
255
  <?php endif; ?>
256
  <h4><?php _e('Other', 'wp_all_import_plugin'); ?></h4>
views/admin/import/preview.php CHANGED
@@ -3,7 +3,7 @@
3
  <div class="title">
4
  <div class="navigation">
5
  <?php if ($tagno > 1): ?><a href="#prev" class="previous_element">&nbsp;</a><?php else: ?><span class="previous_element">&nbsp;</span><?php endif ?>
6
- <?php printf(__('<strong><input type="text" value="%s" name="tagno" class="tagno"/></strong><span class="out_of"> of <strong class="pmxi_count">%s</strong></span>', 'wp_all_import_plugin'), $tagno, PMXI_Plugin::$session->count); ?>
7
  <?php if ($tagno < PMXI_Plugin::$session->count): ?><a href="#next" class="next_element">&nbsp;</a><?php else: ?><span class="next_element">&nbsp;</span><?php endif ?>
8
  </div>
9
  </div>
3
  <div class="title">
4
  <div class="navigation">
5
  <?php if ($tagno > 1): ?><a href="#prev" class="previous_element">&nbsp;</a><?php else: ?><span class="previous_element">&nbsp;</span><?php endif ?>
6
+ <?php printf(__('<strong><input type="text" value="%s" name="tagno" class="tagno"/></strong><span class="out_of"> of <strong class="pmxi_count">%s</strong></span>', 'wp_all_import_plugin'), intval($tagno), intval(PMXI_Plugin::$session->count)); ?>
7
  <?php if ($tagno < PMXI_Plugin::$session->count): ?><a href="#next" class="next_element">&nbsp;</a><?php else: ?><span class="next_element">&nbsp;</span><?php endif ?>
8
  </div>
9
  </div>
views/admin/import/preview_images.php CHANGED
@@ -3,7 +3,7 @@
3
  <div class="title">
4
  <div class="navigation">
5
  <?php if ($tagno > 1): ?><a href="#prev" class="previous_element">&nbsp;</a><?php else: ?><span class="previous_element">&nbsp;</span><?php endif ?>
6
- <?php printf(__('<strong><input type="text" value="%s" name="tagno" class="tagno"/></strong><span class="out_of"> of <strong class="pmxi_count">%s</strong></span>', 'wp_all_import_plugin'), $tagno, PMXI_Plugin::$session->count); ?>
7
  <?php if ($tagno < PMXI_Plugin::$session->count): ?><a href="#next" class="next_element">&nbsp;</a><?php else: ?><span class="next_element">&nbsp;</span><?php endif ?>
8
  </div>
9
  </div>
3
  <div class="title">
4
  <div class="navigation">
5
  <?php if ($tagno > 1): ?><a href="#prev" class="previous_element">&nbsp;</a><?php else: ?><span class="previous_element">&nbsp;</span><?php endif ?>
6
+ <?php printf(__('<strong><input type="text" value="%s" name="tagno" class="tagno"/></strong><span class="out_of"> of <strong class="pmxi_count">%s</strong></span>', 'wp_all_import_plugin'), intval($tagno), intval(PMXI_Plugin::$session->count)); ?>
7
  <?php if ($tagno < PMXI_Plugin::$session->count): ?><a href="#next" class="next_element">&nbsp;</a><?php else: ?><span class="next_element">&nbsp;</span><?php endif ?>
8
  </div>
9
  </div>
views/admin/import/preview_prices.php CHANGED
@@ -3,7 +3,7 @@
3
  <div class="title">
4
  <div class="navigation">
5
  <?php if ($tagno > 1): ?><a href="#prev" class="previous_element">&nbsp;</a><?php else: ?><span class="previous_element">&nbsp;</span><?php endif ?>
6
- <?php printf(__('<strong><input type="text" value="%s" name="tagno" class="tagno"/></strong><span class="out_of"> of <strong class="pmxi_count">%s</strong></span>', 'wp_all_import_plugin'), $tagno, PMXI_Plugin::$session->count); ?>
7
  <?php if ($tagno < PMXI_Plugin::$session->count): ?><a href="#next" class="next_element">&nbsp;</a><?php else: ?><span class="next_element">&nbsp;</span><?php endif ?>
8
  </div>
9
  </div>
3
  <div class="title">
4
  <div class="navigation">
5
  <?php if ($tagno > 1): ?><a href="#prev" class="previous_element">&nbsp;</a><?php else: ?><span class="previous_element">&nbsp;</span><?php endif ?>
6
+ <?php printf(__('<strong><input type="text" value="%s" name="tagno" class="tagno"/></strong><span class="out_of"> of <strong class="pmxi_count">%s</strong></span>', 'wp_all_import_plugin'), intval($tagno), intval(PMXI_Plugin::$session->count)); ?>
7
  <?php if ($tagno < PMXI_Plugin::$session->count): ?><a href="#next" class="next_element">&nbsp;</a><?php else: ?><span class="next_element">&nbsp;</span><?php endif ?>
8
  </div>
9
  </div>
views/admin/import/preview_taxonomies.php CHANGED
@@ -3,7 +3,7 @@
3
  <div class="title">
4
  <div class="navigation">
5
  <?php if ($tagno > 1): ?><a href="#prev" class="previous_element">&nbsp;</a><?php else: ?><span class="previous_element">&nbsp;</span><?php endif ?>
6
- <?php printf(__('<strong><input type="text" value="%s" name="tagno" class="tagno"/></strong><span class="out_of"> of <strong class="pmxi_count">%s</strong></span>', 'wp_all_import_plugin'), $tagno, PMXI_Plugin::$session->count); ?>
7
  <?php if ($tagno < PMXI_Plugin::$session->count): ?><a href="#next" class="next_element">&nbsp;</a><?php else: ?><span class="next_element">&nbsp;</span><?php endif ?>
8
  </div>
9
  </div>
3
  <div class="title">
4
  <div class="navigation">
5
  <?php if ($tagno > 1): ?><a href="#prev" class="previous_element">&nbsp;</a><?php else: ?><span class="previous_element">&nbsp;</span><?php endif ?>
6
+ <?php printf(__('<strong><input type="text" value="%s" name="tagno" class="tagno"/></strong><span class="out_of"> of <strong class="pmxi_count">%s</strong></span>', 'wp_all_import_plugin'), intval($tagno), intval(PMXI_Plugin::$session->count)); ?>
7
  <?php if ($tagno < PMXI_Plugin::$session->count): ?><a href="#next" class="next_element">&nbsp;</a><?php else: ?><span class="next_element">&nbsp;</span><?php endif ?>
8
  </div>
9
  </div>
views/admin/import/process.php CHANGED
@@ -53,40 +53,40 @@
53
  <div id="import_finished">
54
  <h1><?php _e('Import Complete!', 'wp_all_import_plugin'); ?></h1>
55
  <div class="wpallimport-content-section wpallimport-complete-statistics">
56
- <p><?php printf(__('All <b>%s</b> records from <b>%s</b> were successfully processed.', 'wp_all_import_plugin'), '<span class="processed_count"></span>', (PMXI_Plugin::$session->source['type'] != 'url') ? basename(PMXI_Plugin::$session->source['path']) : PMXI_Plugin::$session->source['path']); ?></p>
57
  <p class="wpallimport-complete-details">
58
  <?php _e('WP All Import', 'wp_all_import_plugin'); ?>
59
  <span class="created_count complete-details-item" style="display: none;"><?php printf(__('created <b>%s</b> new records','wp_all_import_plugin'), '<span class="created_records_count"></span>');?></span><span class="updated_count complete-details-item" style="display: none;"><?php printf(__('updated <b>%s</b> records','wp_all_import_plugin'), '<span class="updated_records_count"></span>');?></span><span class="deleted_count complete-details-item" style="display: none;"><?php printf(__('deleted <b>%s</b> records','wp_all_import_plugin'), '<span class="deleted_records_count"></span>');?></span><span class="skipped_count complete-details-item" style="display: none;"><?php printf(__('skipped <b>%s</b> records','wp_all_import_plugin'), '<span class="skipped_records_count"></span>');?></span>
60
  </p>
61
  <?php if (!empty($update_previous->options['is_selective_hashing'])): ?>
62
  <p class="wpallimport-skipped-notice">
63
- <b><span class="skipped_by_hash_records_count"></span></b> <?php printf(__('records were skipped because their data in <b>%s</b> hasn\'t changed.', 'wp_all_import_plugin'), (PMXI_Plugin::$session->source['type'] != 'url') ? basename(PMXI_Plugin::$session->source['path']) : PMXI_Plugin::$session->source['path']); ?><br/><a href="<?php echo add_query_arg(array('id' => $update_previous->id, 'page' => 'pmxi-admin-manage', 'action' => 'disable_skip_posts'), $this->baseUrl); ?>"><?php _e('Run this import again without skipping records ›', 'wp_all_import_plugin'); ?></a>
64
  </p>
65
  <?php endif; ?>
66
  </div>
67
  <div class="wpallimport-content-section wpallimport-console wpallimport-complete-warning">
68
  <h3><?php _e('Duplicate records detected during import', 'wp_all_import_plugin'); ?><a href="#help" class="wpallimport-help" title="<?php _e('The unique identifier is how WP All Import tells two items in your import file apart. If it is the same for two items, then the first item will be overwritten when the second is imported.', 'wp_all_import_plugin') ?>">?</a></h3>
69
  <h4>
70
- <?php printf(__('The file you are importing has %s records, but WP All Import only created <span class="inserted_count"></span> %s. It detected the other records in your file as duplicates. This could be because they actually are duplicates or it could be because your Unique Identifier is not unique for each record.<br><br>If your import file has no duplicates and you want to import all %s records, you should delete everything that was just imported and then edit your Unique Identifier so it\'s unique for each item.', 'wp_all_import_plugin'), $update_previous->count, $custom_type->labels->name, $update_previous->count); ?>
71
  </h4>
72
- <input type="button" class="button button-primary button-hero wpallimport-large-button wpallimport-delete-and-edit" rel="<?php echo add_query_arg(array('id' => $update_previous->id, 'page' => 'pmxi-admin-manage', 'action' => 'delete_and_edit'), $this->baseUrl); ?>" value="<?php _e('Delete & Edit', 'wp_all_import_plugin'); ?>"/>
73
  </div>
74
  <div class="wpallimport-content-section wpallimport-console wpallimport-orders-complete-warning">
75
- <h3><?php printf(__('<span class="skipped_records_count">%s</span> orders were skipped during this import', 'wp_all_import_plugin'), $update_previous->skipped); ?></h3>
76
  <h4>
77
- <?php printf(__('WP All Import is unable to import an order when it cannot match the products or customer specified. <a href="%s" style="margin: 0;">See the import log</a> for a list of which orders were skipped and why.', 'wp_all_import_plugin'), add_query_arg(array('id' => $update_previous->id, 'page' => 'pmxi-admin-history', 'action' => 'log', 'history_id' => PMXI_Plugin::$session->history_id, '_wpnonce' => wp_create_nonce( '_wpnonce-download_log' )), $this->baseUrl)); ?>
78
  </h4>
79
- <input type="button" class="button button-primary button-hero wpallimport-large-button wpallimport-delete-and-edit" rel="<?php echo add_query_arg(array('id' => $update_previous->id, 'page' => 'pmxi-admin-manage', 'action' => 'delete_and_edit'), $this->baseUrl); ?>" value="<?php _e('Delete & Edit', 'wp_all_import_plugin'); ?>"/>
80
  </div>
81
  <!-- <h3 class="wpallimport-complete-success">--><?php //printf(__('WP All Import successfully imported your file <span>%s</span> into your WordPress installation!','wp_all_import_plugin'), (PMXI_Plugin::$session->source['type'] != 'url') ? basename(PMXI_Plugin::$session->source['path']) : PMXI_Plugin::$session->source['path'])?><!--</h3> -->
82
  <?php if ($ajax_processing): ?>
83
  <p class="wpallimport-log-details"><?php printf(__('There were <span class="wpallimport-errors-count">%s</span> errors and <span class="wpallimport-warnings-count">%s</span> warnings in this import. You can see these in the import log.', 'wp_all_import_plugin'), 0, 0); ?></p>
84
  <?php elseif ((int) PMXI_Plugin::$session->errors or (int) PMXI_Plugin::$session->warnings): ?>
85
- <p class="wpallimport-log-details" style="display:block;"><?php printf(__('There were <span class="wpallimport-errors-count">%s</span> errors and <span class="wpallimport-warnings-count">%s</span> warnings in this import. You can see these in the import log.', 'wp_all_import_plugin'), PMXI_Plugin::$session->errors, PMXI_Plugin::$session->warnings); ?></p>
86
  <?php endif; ?>
87
  <hr>
88
- <a href="<?php echo add_query_arg(array('id' => $update_previous->id, 'page' => 'pmxi-admin-history'), $this->baseUrl); ?>" id="download_log"><?php _e('View Logs','wp_all_import_plugin');?></a>
89
- <a href="<?php echo add_query_arg(array('page' => 'pmxi-admin-manage'), remove_query_arg(array('id','page'), $this->baseUrl)); ?>" id="manage_imports"><?php _e('Manage Imports', 'wp_all_import_plugin') ?></a>
90
  </div>
91
 
92
  </div>
53
  <div id="import_finished">
54
  <h1><?php _e('Import Complete!', 'wp_all_import_plugin'); ?></h1>
55
  <div class="wpallimport-content-section wpallimport-complete-statistics">
56
+ <p><?php printf(__('All <b>%s</b> records from <b>%s</b> were successfully processed.', 'wp_all_import_plugin'), '<span class="processed_count"></span>', esc_attr((PMXI_Plugin::$session->source['type'] != 'url') ? basename(PMXI_Plugin::$session->source['path']) : PMXI_Plugin::$session->source['path'])); ?></p>
57
  <p class="wpallimport-complete-details">
58
  <?php _e('WP All Import', 'wp_all_import_plugin'); ?>
59
  <span class="created_count complete-details-item" style="display: none;"><?php printf(__('created <b>%s</b> new records','wp_all_import_plugin'), '<span class="created_records_count"></span>');?></span><span class="updated_count complete-details-item" style="display: none;"><?php printf(__('updated <b>%s</b> records','wp_all_import_plugin'), '<span class="updated_records_count"></span>');?></span><span class="deleted_count complete-details-item" style="display: none;"><?php printf(__('deleted <b>%s</b> records','wp_all_import_plugin'), '<span class="deleted_records_count"></span>');?></span><span class="skipped_count complete-details-item" style="display: none;"><?php printf(__('skipped <b>%s</b> records','wp_all_import_plugin'), '<span class="skipped_records_count"></span>');?></span>
60
  </p>
61
  <?php if (!empty($update_previous->options['is_selective_hashing'])): ?>
62
  <p class="wpallimport-skipped-notice">
63
+ <b><span class="skipped_by_hash_records_count"></span></b> <?php printf(__('records were skipped because their data in <b>%s</b> hasn\'t changed.', 'wp_all_import_plugin'), esc_url((PMXI_Plugin::$session->source['type'] != 'url') ? basename(PMXI_Plugin::$session->source['path']) : PMXI_Plugin::$session->source['path'])); ?><br/><a href="<?php echo esc_url(add_query_arg(array('id' => $update_previous->id, 'page' => 'pmxi-admin-manage', 'action' => 'disable_skip_posts'), $this->baseUrl)); ?>"><?php _e('Run this import again without skipping records ›', 'wp_all_import_plugin'); ?></a>
64
  </p>
65
  <?php endif; ?>
66
  </div>
67
  <div class="wpallimport-content-section wpallimport-console wpallimport-complete-warning">
68
  <h3><?php _e('Duplicate records detected during import', 'wp_all_import_plugin'); ?><a href="#help" class="wpallimport-help" title="<?php _e('The unique identifier is how WP All Import tells two items in your import file apart. If it is the same for two items, then the first item will be overwritten when the second is imported.', 'wp_all_import_plugin') ?>">?</a></h3>
69
  <h4>
70
+ <?php printf(__('The file you are importing has %s records, but WP All Import only created <span class="inserted_count"></span> %s. It detected the other records in your file as duplicates. This could be because they actually are duplicates or it could be because your Unique Identifier is not unique for each record.<br><br>If your import file has no duplicates and you want to import all %s records, you should delete everything that was just imported and then edit your Unique Identifier so it\'s unique for each item.', 'wp_all_import_plugin'), esc_attr($update_previous->count), esc_attr($custom_type->labels->name), esc_attr($update_previous->count)); ?>
71
  </h4>
72
+ <input type="button" class="button button-primary button-hero wpallimport-large-button wpallimport-delete-and-edit" rel="<?php echo esc_url(add_query_arg(array('id' => $update_previous->id, 'page' => 'pmxi-admin-manage', 'action' => 'delete_and_edit'), $this->baseUrl)); ?>" value="<?php _e('Delete & Edit', 'wp_all_import_plugin'); ?>"/>
73
  </div>
74
  <div class="wpallimport-content-section wpallimport-console wpallimport-orders-complete-warning">
75
+ <h3><?php printf(__('<span class="skipped_records_count">%s</span> orders were skipped during this import', 'wp_all_import_plugin'), esc_attr($update_previous->skipped)); ?></h3>
76
  <h4>
77
+ <?php printf(__('WP All Import is unable to import an order when it cannot match the products or customer specified. <a href="%s" style="margin: 0;">See the import log</a> for a list of which orders were skipped and why.', 'wp_all_import_plugin'), esc_url(add_query_arg(array('id' => $update_previous->id, 'page' => 'pmxi-admin-history', 'action' => 'log', 'history_id' => PMXI_Plugin::$session->history_id, '_wpnonce' => wp_create_nonce( '_wpnonce-download_log' )), $this->baseUrl))); ?>
78
  </h4>
79
+ <input type="button" class="button button-primary button-hero wpallimport-large-button wpallimport-delete-and-edit" rel="<?php echo esc_url(add_query_arg(array('id' => $update_previous->id, 'page' => 'pmxi-admin-manage', 'action' => 'delete_and_edit'), $this->baseUrl)); ?>" value="<?php _e('Delete & Edit', 'wp_all_import_plugin'); ?>"/>
80
  </div>
81
  <!-- <h3 class="wpallimport-complete-success">--><?php //printf(__('WP All Import successfully imported your file <span>%s</span> into your WordPress installation!','wp_all_import_plugin'), (PMXI_Plugin::$session->source['type'] != 'url') ? basename(PMXI_Plugin::$session->source['path']) : PMXI_Plugin::$session->source['path'])?><!--</h3> -->
82
  <?php if ($ajax_processing): ?>
83
  <p class="wpallimport-log-details"><?php printf(__('There were <span class="wpallimport-errors-count">%s</span> errors and <span class="wpallimport-warnings-count">%s</span> warnings in this import. You can see these in the import log.', 'wp_all_import_plugin'), 0, 0); ?></p>
84
  <?php elseif ((int) PMXI_Plugin::$session->errors or (int) PMXI_Plugin::$session->warnings): ?>
85
+ <p class="wpallimport-log-details" style="display:block;"><?php printf(__('There were <span class="wpallimport-errors-count">%s</span> errors and <span class="wpallimport-warnings-count">%s</span> warnings in this import. You can see these in the import log.', 'wp_all_import_plugin'), esc_attr(PMXI_Plugin::$session->errors), esc_attr(PMXI_Plugin::$session->warnings)); ?></p>
86
  <?php endif; ?>
87
  <hr>
88
+ <a href="<?php echo esc_url(add_query_arg(array('id' => $update_previous->id, 'page' => 'pmxi-admin-history'), $this->baseUrl)); ?>" id="download_log"><?php _e('View Logs','wp_all_import_plugin');?></a>
89
+ <a href="<?php echo esc_url(add_query_arg(array('page' => 'pmxi-admin-manage'), remove_query_arg(array('id','page'), $this->baseUrl))); ?>" id="manage_imports"><?php _e('Manage Imports', 'wp_all_import_plugin') ?></a>
90
  </div>
91
 
92
  </div>
views/admin/import/tag.php CHANGED
@@ -5,7 +5,7 @@
5
  <!--h3><?php _e('Elements', 'wp_all_import_plugin'); ?></h3-->
6
  <div class="navigation">
7
  <?php if ($tagno > 1): ?><a href="#prev" class="previous_element">&nbsp;</a><?php else: ?><span class="previous_element">&nbsp;</span><?php endif ?>
8
- <?php printf(__('<strong><input type="text" value="%s" name="tagno" class="tagno"/></strong><span class="out_of"> of <strong class="pmxi_count">%s</strong></span>', 'wp_all_import_plugin'), $tagno, PMXI_Plugin::$session->count); ?>
9
  <?php if ($tagno < PMXI_Plugin::$session->count): ?><a href="#next" class="next_element">&nbsp;</a><?php else: ?><span class="next_element">&nbsp;</span><?php endif ?>
10
  </div>
11
  </div>
5
  <!--h3><?php _e('Elements', 'wp_all_import_plugin'); ?></h3-->
6
  <div class="navigation">
7
  <?php if ($tagno > 1): ?><a href="#prev" class="previous_element">&nbsp;</a><?php else: ?><span class="previous_element">&nbsp;</span><?php endif ?>
8
+ <?php printf(__('<strong><input type="text" value="%s" name="tagno" class="tagno"/></strong><span class="out_of"> of <strong class="pmxi_count">%s</strong></span>', 'wp_all_import_plugin'), intval($tagno), intval(PMXI_Plugin::$session->count)); ?>
9
  <?php if ($tagno < PMXI_Plugin::$session->count): ?><a href="#next" class="next_element">&nbsp;</a><?php else: ?><span class="next_element">&nbsp;</span><?php endif ?>
10
  </div>
11
  </div>
views/admin/import/template.php CHANGED
@@ -168,7 +168,7 @@
168
 
169
  <div class="input" style="display:inline-block; margin-right: 20px;">
170
  <input type="button" class="button-primary wp_all_import_save_functions" disabled="disabled" value="<?php _e("Save Functions", 'wp_all_import_plugin'); ?>"/>
171
- <a href="#help" class="wpallimport-help" title="<?php printf(__("Add functions here for use during your import. You can access this file at %s", "wp_all_import_plugin"), preg_replace("%.*wp-content%", "wp-content", $functions));?>" style="top: 0;">?</a>
172
  <div class="wp_all_import_functions_preloader"></div>
173
  </div>
174
  <div class="input wp_all_import_saving_status" style="display:inline-block;">
@@ -230,9 +230,9 @@
230
  <input type="hidden" name="security" value="<?php echo wp_create_nonce( "wp_all_import_preview" ); ?>" />
231
 
232
  <?php if ($this->isWizard):?>
233
- <a href="<?php echo add_query_arg('action', 'element', $this->baseUrl) ?>" class="back rad3" style="float:none;"><?php _e('Back to Step 2', 'wp_all_import_plugin') ?></a>
234
  <?php else: ?>
235
- <a href="<?php echo remove_query_arg('id', remove_query_arg('action', $this->baseUrl)); ?>" class="back rad3" style="float:none;"><?php _e('Back to Manage Imports', 'wp_all_import_plugin') ?></a>
236
  <?php endif; ?>
237
  <input type="submit" class="button button-primary button-hero wpallimport-large-button" value="<?php _e( ($this->isWizard) ? 'Continue to Step 4' : 'Update Template', 'wp_all_import_plugin') ?>" />
238
  </div>
168
 
169
  <div class="input" style="display:inline-block; margin-right: 20px;">
170
  <input type="button" class="button-primary wp_all_import_save_functions" disabled="disabled" value="<?php _e("Save Functions", 'wp_all_import_plugin'); ?>"/>
171
+ <a href="#help" class="wpallimport-help" title="<?php printf(__("Add functions here for use during your import. You can access this file at %s", "wp_all_import_plugin"), esc_attr(preg_replace("%.*wp-content%", "wp-content", $functions)));?>" style="top: 0;">?</a>
172
  <div class="wp_all_import_functions_preloader"></div>
173
  </div>
174
  <div class="input wp_all_import_saving_status" style="display:inline-block;">
230
  <input type="hidden" name="security" value="<?php echo wp_create_nonce( "wp_all_import_preview" ); ?>" />
231
 
232
  <?php if ($this->isWizard):?>
233
+ <a href="<?php echo esc_url(add_query_arg('action', 'element', $this->baseUrl)); ?>" class="back rad3" style="float:none;"><?php _e('Back to Step 2', 'wp_all_import_plugin') ?></a>
234
  <?php else: ?>
235
+ <a href="<?php echo esc_url(remove_query_arg('id', remove_query_arg('action', $this->baseUrl))); ?>" class="back rad3" style="float:none;"><?php _e('Back to Manage Imports', 'wp_all_import_plugin') ?></a>
236
  <?php endif; ?>
237
  <input type="submit" class="button button-primary button-hero wpallimport-large-button" value="<?php _e( ($this->isWizard) ? 'Continue to Step 4' : 'Update Template', 'wp_all_import_plugin') ?>" />
238
  </div>
views/admin/import/template/_custom_fields_template.php CHANGED
@@ -16,11 +16,11 @@
16
  <?php if (empty($post['custom_name'])): ?>
17
  <div class="input cf_welcome">
18
  <?php if ( ! empty($meta_keys) ):?>
19
- <h1 style="font-size:23px; color:#40acad;"><?php printf(__('Your website is using Custom Fields to store data for %s.', 'wp_all_import_plugin'), $custom_type->labels->name); ?></h1>
20
  <a class="autodetect_cf auto_detect_cf" href="javascript:void(0);" rel="auto_detect_cf"><?php _e('See Detected Fields', 'wp_all_import_plugin'); ?></a>
21
  <?php else: ?>
22
- <h1 style="font-size:23px; color:#40acad;"><?php printf(__('No Custom Fields are present in your database for %s.', 'wp_all_import_plugin'), $custom_type->labels->name); ?></h1>
23
- <p class="wpallimport-note"><?php printf(__('Manually create a %s, and fill out each field you want to import data to. WP All Import will then display these fields as available for import below.', 'wp_all_import_plugin'), $custom_type->labels->singular_name); ?></p>
24
  <?php endif;?>
25
  <a href="javascript:void(0);" class="wpallimport-dismiss-cf-welcome"><?php _e('Hide Notice', 'wp_all_import_plugin'); ?></a>
26
  </div>
@@ -29,7 +29,7 @@
29
  <span class="cf_detected"></span>
30
  <a class="autodetect_cf clear_detected_cf" href="javascript:void(0);" rel="clear_detected_cf"><?php _e('Clear All Fields', 'wp_all_import_plugin'); ?></a>
31
  </h1>
32
- <p class="wpallimport-note"><?php printf(__('If not all fields were detected, manually create a %s, and fill out each field you want to import data to. Then create a new import, and WP All Import will display these fields as available for import below.', 'wp_all_import_plugin'), $custom_type->labels->singular_name); ?></p>
33
  <a href="javascript:void(0);" class="wpallimport-dismiss-cf-welcome"><?php _e('Hide Notice', 'wp_all_import_plugin'); ?></a>
34
  </div>
35
  <?php endif; ?>
@@ -196,7 +196,7 @@
196
  <input type="text" class="mapping_from widefat" value="<?php echo esc_attr($k); ?>">
197
  </td>
198
  <td>
199
- <input type="text" class="mapping_to widefat" value="<?php echo (is_array($value)) ? $value[$k] : $value; ?>">
200
  </td>
201
  <td class="action remove">
202
  <a href="#remove" style="right:-10px;"></a>
16
  <?php if (empty($post['custom_name'])): ?>
17
  <div class="input cf_welcome">
18
  <?php if ( ! empty($meta_keys) ):?>
19
+ <h1 style="font-size:23px; color:#40acad;"><?php printf(__('Your website is using Custom Fields to store data for %s.', 'wp_all_import_plugin'), esc_attr($custom_type->labels->name)); ?></h1>
20
  <a class="autodetect_cf auto_detect_cf" href="javascript:void(0);" rel="auto_detect_cf"><?php _e('See Detected Fields', 'wp_all_import_plugin'); ?></a>
21
  <?php else: ?>
22
+ <h1 style="font-size:23px; color:#40acad;"><?php printf(__('No Custom Fields are present in your database for %s.', 'wp_all_import_plugin'), esc_attr($custom_type->labels->name)); ?></h1>
23
+ <p class="wpallimport-note"><?php printf(__('Manually create a %s, and fill out each field you want to import data to. WP All Import will then display these fields as available for import below.', 'wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name)); ?></p>
24
  <?php endif;?>
25
  <a href="javascript:void(0);" class="wpallimport-dismiss-cf-welcome"><?php _e('Hide Notice', 'wp_all_import_plugin'); ?></a>
26
  </div>
29
  <span class="cf_detected"></span>
30
  <a class="autodetect_cf clear_detected_cf" href="javascript:void(0);" rel="clear_detected_cf"><?php _e('Clear All Fields', 'wp_all_import_plugin'); ?></a>
31
  </h1>
32
+ <p class="wpallimport-note"><?php printf(__('If not all fields were detected, manually create a %s, and fill out each field you want to import data to. Then create a new import, and WP All Import will display these fields as available for import below.', 'wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name)); ?></p>
33
  <a href="javascript:void(0);" class="wpallimport-dismiss-cf-welcome"><?php _e('Hide Notice', 'wp_all_import_plugin'); ?></a>
34
  </div>
35
  <?php endif; ?>
196
  <input type="text" class="mapping_from widefat" value="<?php echo esc_attr($k); ?>">
197
  </td>
198
  <td>
199
+ <input type="text" class="mapping_to widefat" value="<?php echo esc_attr((is_array($value)) ? $value[$k] : $value); ?>">
200
  </td>
201
  <td class="action remove">
202
  <a href="#remove" style="right:-10px;"></a>
views/admin/import/template/_featured_template.php CHANGED
@@ -40,7 +40,7 @@
40
  <div class="input">
41
  <?php $wp_uploads = wp_upload_dir(); ?>
42
  <input type="radio" name="<?php echo esc_attr($section_slug); ?>download_images" value="no" class="switcher" id="<?php echo esc_attr($section_slug); ?>download_images_no" <?php echo ("no" == $post[$section_slug . 'download_images']) ? 'checked="checked"' : '';?>/>
43
- <label for="<?php echo esc_attr($section_slug); ?>download_images_no"><?php printf(__('Use images currently uploaded in %s', 'wp_all_import_plugin'), preg_replace('%.*wp-content/%', 'wp-content/', $wp_uploads['basedir'] . DIRECTORY_SEPARATOR . PMXI_Plugin::FILES_DIRECTORY . DIRECTORY_SEPARATOR) ); ?></label>
44
  </div>
45
  <div class="switcher-target-<?php echo esc_attr($section_slug); ?>download_images_no" style="padding-left:27px;">
46
  <label for="<?php echo esc_attr($section_slug); ?>featured_delim"><?php _e('Enter image filenames one per line, or separate them with a ', 'wp_all_import_plugin');?></label>
40
  <div class="input">
41
  <?php $wp_uploads = wp_upload_dir(); ?>
42
  <input type="radio" name="<?php echo esc_attr($section_slug); ?>download_images" value="no" class="switcher" id="<?php echo esc_attr($section_slug); ?>download_images_no" <?php echo ("no" == $post[$section_slug . 'download_images']) ? 'checked="checked"' : '';?>/>
43
+ <label for="<?php echo esc_attr($section_slug); ?>download_images_no"><?php printf(__('Use images currently uploaded in %s', 'wp_all_import_plugin'), preg_replace('%.*wp-content/%', 'wp-content/', esc_attr($wp_uploads['basedir'] . DIRECTORY_SEPARATOR . PMXI_Plugin::FILES_DIRECTORY . DIRECTORY_SEPARATOR)) ); ?></label>
44
  </div>
45
  <div class="switcher-target-<?php echo esc_attr($section_slug); ?>download_images_no" style="padding-left:27px;">
46
  <label for="<?php echo esc_attr($section_slug); ?>featured_delim"><?php _e('Enter image filenames one per line, or separate them with a ', 'wp_all_import_plugin');?></label>
views/admin/import/template/_nested_template.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php $custom_type = get_post_type_object( $post_type ); ?>
2
 
3
  <script type="text/javascript">
4
- var plugin_url = '<?php echo WP_ALL_IMPORT_ROOT_URL; ?>';
5
  </script>
6
 
7
  <div class="wpallimport-collapsed closed nested_options wpallimport-section">
1
  <?php $custom_type = get_post_type_object( $post_type ); ?>
2
 
3
  <script type="text/javascript">
4
+ var plugin_url = '<?php echo esc_url(WP_ALL_IMPORT_ROOT_URL); ?>';
5
  </script>
6
 
7
  <div class="wpallimport-collapsed closed nested_options wpallimport-section">
views/admin/import/template/_other_template.php CHANGED
@@ -5,7 +5,7 @@ $custom_type = get_post_type_object( $post_type );
5
  <div class="wpallimport-collapsed closed wpallimport-section ">
6
  <div class="wpallimport-content-section ">
7
  <div class="wpallimport-collapsed-header">
8
- <h3><?php printf(__('Other %s Options','wp_all_import_plugin'), $custom_type->labels->singular_name);?></h3>
9
  </div>
10
  <div class="wpallimport-collapsed-content" style="padding: 0;">
11
  <div class="wpallimport-collapsed-content-inner">
@@ -148,8 +148,8 @@ $custom_type = get_post_type_object( $post_type );
148
  <?php $post_formats = get_theme_support( 'post-formats' ); ?>
149
 
150
  <div class="input">
151
- <input type="radio" id="post_format_<?php echo "standart_" . $post_type; ?>" name="post_format" value="0" <?php echo (empty($post['post_format']) or ( empty($post_formats) )) ? 'checked="checked"' : '' ?> />
152
- <label for="post_format_<?php echo "standart_" . $post_type; ?>"><?php _e( "Standard", 'wp_all_import_plugin') ?></label>
153
  </div>
154
 
155
  <?php
@@ -158,7 +158,7 @@ $custom_type = get_post_type_object( $post_type );
158
  ?>
159
  <div class="input">
160
  <input type="radio" id="post_format_<?php echo esc_attr($post_format); ?>" name="post_format" value="<?php echo esc_attr($post_format); ?>" <?php echo $post_format == $post['post_format'] ? 'checked="checked"' : '' ?> />
161
- <label for="post_format_<?php echo esc_attr($post_format); ?>"><?php _e( ucfirst($post_format), 'wp_all_import_plugin') ?></label>
162
  </div>
163
  <?php
164
  }
5
  <div class="wpallimport-collapsed closed wpallimport-section ">
6
  <div class="wpallimport-content-section ">
7
  <div class="wpallimport-collapsed-header">
8
+ <h3><?php printf(__('Other %s Options','wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name));?></h3>
9
  </div>
10
  <div class="wpallimport-collapsed-content" style="padding: 0;">
11
  <div class="wpallimport-collapsed-content-inner">
148
  <?php $post_formats = get_theme_support( 'post-formats' ); ?>
149
 
150
  <div class="input">
151
+ <input type="radio" id="post_format_<?php echo "standart_" . esc_attr($post_type); ?>" name="post_format" value="0" <?php echo (empty($post['post_format']) or ( empty($post_formats) )) ? 'checked="checked"' : '' ?> />
152
+ <label for="post_format_<?php echo "standart_" . esc_attr($post_type); ?>"><?php _e( "Standard", 'wp_all_import_plugin') ?></label>
153
  </div>
154
 
155
  <?php
158
  ?>
159
  <div class="input">
160
  <input type="radio" id="post_format_<?php echo esc_attr($post_format); ?>" name="post_format" value="<?php echo esc_attr($post_format); ?>" <?php echo $post_format == $post['post_format'] ? 'checked="checked"' : '' ?> />
161
+ <label for="post_format_<?php echo esc_attr($post_format); ?>"><?php _e( ucfirst(esc_attr($post_format)), 'wp_all_import_plugin') ?></label>
162
  </div>
163
  <?php
164
  }
views/admin/import/template/_taxonomies_template.php CHANGED
@@ -35,7 +35,7 @@ if ( ! empty($post_taxonomies)):
35
  <div class="input sub_input">
36
  <div class="input">
37
  <input type="radio" name="tax_logic[<?php echo esc_attr($ctx->name);?>]" value="single" id="tax_logic_single_<?php echo esc_attr($ctx->name);?>" class="switcher" <?php echo (empty($post['tax_logic'][$ctx->name]) or $post['tax_logic'][$ctx->name] == 'single') ? 'checked="checked"' : ''; ?>/>
38
- <label for="tax_logic_single_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Each %s has just one %s', 'wp_all_import_plugin'), $custom_type->labels->singular_name, $ctx->labels->singular_name); ?></label>
39
  <div class="switcher-target-tax_logic_single_<?php echo esc_attr($ctx->name);?> sub_input">
40
  <input type="hidden" name="term_assing[<?php echo esc_attr($ctx->name);?>]" value="0"/>
41
  <input type="checkbox" name="term_assing[<?php echo esc_attr($ctx->name);?>]" <?php echo (isset($post['term_assing'][$ctx->name])) ? (( ! empty($post['term_assing'][$ctx->name]) ) ? 'checked="checked"' : '') : 'checked="checked"'; ?> title="<?php _e('Assign post to the taxonomy.','wp_all_import_plugin');?>" value="1"/>
@@ -43,12 +43,12 @@ if ( ! empty($post_taxonomies)):
43
  <div class="input tax_is_full_search_single" style="margin: 10px 0;">
44
  <input type="hidden" name="tax_is_full_search_single[<?php echo esc_attr($ctx->name); ?>]" value="0"/>
45
  <input type="checkbox" id="tax_is_full_search_single_<?php echo esc_attr($ctx->name); ?>" class="switcher" <?php if ( ! empty($post['tax_is_full_search_single'][$ctx->name]) ) echo "checked='checked'"; ?> name="tax_is_full_search_single[<?php echo esc_attr($ctx->name); ?>]" value="1"/>
46
- <label for="tax_is_full_search_single_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Try to match terms to existing child %s', 'wp_all_import_plugin'), $ctx->labels->name); ?></label>
47
  <div class="switcher-target-tax_is_full_search_single_<?php echo esc_attr($ctx->name); ?> sub_input">
48
  <div class="input tax_assign_to_one_term_single" style="margin: 10px 0;">
49
  <input type="hidden" name="tax_assign_to_one_term_single[<?php echo esc_attr($ctx->name); ?>]" value="0"/>
50
  <input type="checkbox" id="tax_assign_to_one_term_single_<?php echo esc_attr($ctx->name); ?>" <?php if ( ! empty($post['tax_assign_to_one_term_single'][$ctx->name]) ) echo "checked='checked'"; ?> name="tax_assign_to_one_term_single[<?php echo esc_attr($ctx->name); ?>]" value="1"/>
51
- <label for="tax_assign_to_one_term_single_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Only assign %s to the imported %s, not the entire hierarchy', 'wp_all_import_plugin'), $custom_type->labels->name, $ctx->labels->singular_name); ?></label>
52
  <a href="#help" class="wpallimport-help" title="<?php _e('By default all categories above the matched category will also be assigned to the post. If enabled, only the imported category will be assigned to the post.', 'wp_all_import_plugin'); ?>" style="position:relative; top: -1px;">?</a>
53
  </div>
54
  </div>
@@ -57,21 +57,21 @@ if ( ! empty($post_taxonomies)):
57
  </div>
58
  <div class="input">
59
  <input type="radio" name="tax_logic[<?php echo esc_attr($ctx->name);?>]" value="multiple" id="tax_logic_multiple_<?php echo esc_attr($ctx->name);?>" class="switcher" <?php echo (!empty($post['tax_logic'][$ctx->name]) and $post['tax_logic'][$ctx->name] == 'multiple') ? 'checked="checked"' : ''; ?>/>
60
- <label for="tax_logic_multiple_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Each %s has multiple %s', 'wp_all_import_plugin'), $custom_type->labels->singular_name, $ctx->labels->name); ?></label>
61
  <div class="switcher-target-tax_logic_multiple_<?php echo esc_attr($ctx->name);?> sub_input">
62
  <input type="hidden" name="multiple_term_assing[<?php echo esc_attr($ctx->name);?>]" value="1"/>
63
  <input type="text" class="widefat multiple_xpath_field" name="tax_multiple_xpath[<?php echo esc_attr($ctx->name); ?>]" value="<?php echo ( ! empty($post['tax_multiple_xpath'][$ctx->name])) ? esc_textarea($post['tax_multiple_xpath'][$ctx->name]) : ''; ?>" style="width:50%;"/>
64
  <label><?php _e('Separated by', 'wp_all_import_plugin'); ?></label>
65
- <input type="text" class="small tax_delim" name="tax_multiple_delim[<?php echo esc_attr($ctx->name); ?>]" value="<?php echo ( ! empty($post['tax_multiple_delim'][$ctx->name]) ) ? str_replace("&amp;","&", htmlentities(htmlentities($post['tax_multiple_delim'][$ctx->name]))) : ',' ?>" />
66
  <div class="input tax_is_full_search_multiple" style="margin: 10px 0;">
67
  <input type="hidden" name="tax_is_full_search_multiple[<?php echo esc_attr($ctx->name); ?>]" value="0"/>
68
  <input type="checkbox" id="tax_is_full_search_multiple_<?php echo esc_attr($ctx->name); ?>" class="switcher" <?php if ( ! empty($post['tax_is_full_search_multiple'][$ctx->name]) ) echo "checked='checked'"; ?> name="tax_is_full_search_multiple[<?php echo esc_attr($ctx->name); ?>]" value="1"/>
69
- <label for="tax_is_full_search_multiple_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Try to match terms to existing child %s', 'wp_all_import_plugin'), $ctx->labels->name); ?></label>
70
  <div class="switcher-target-tax_is_full_search_multiple_<?php echo esc_attr($ctx->name); ?> sub_input">
71
  <div class="input tax_assign_to_one_term_multiple" style="margin: 10px 0;">
72
  <input type="hidden" name="tax_assign_to_one_term_multiple[<?php echo esc_attr($ctx->name); ?>]" value="0"/>
73
  <input type="checkbox" id="tax_assign_to_one_term_multiple_<?php echo esc_attr($ctx->name); ?>" <?php if ( ! empty($post['tax_assign_to_one_term_multiple'][$ctx->name]) ) echo "checked='checked'"; ?> name="tax_assign_to_one_term_multiple[<?php echo esc_attr($ctx->name); ?>]" value="1"/>
74
- <label for="tax_assign_to_one_term_multiple_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Only assign %s to the imported %s, not the entire hierarchy', 'wp_all_import_plugin'), $custom_type->labels->name, $ctx->labels->singular_name); ?></label>
75
  <a href="#help" class="wpallimport-help" title="<?php _e('By default all categories above the matched category will also be assigned to the post. If enabled, only the imported category will be assigned to the post.', 'wp_all_import_plugin'); ?>" style="position:relative; top: -1px;">?</a>
76
  </div>
77
  </div>
@@ -81,7 +81,7 @@ if ( ! empty($post_taxonomies)):
81
  <?php if ($ctx->hierarchical): ?>
82
  <div class="input">
83
  <input type="radio" name="tax_logic[<?php echo esc_attr($ctx->name);?>]" value="hierarchical" id="tax_logic_hierarchical_<?php echo esc_attr($ctx->name);?>" class="switcher" <?php echo (!empty($post['tax_logic'][$ctx->name]) and $post['tax_logic'][$ctx->name] == 'hierarchical') ? 'checked="checked"' : ''; ?>/>
84
- <label for="tax_logic_hierarchical_<?php echo esc_attr($ctx->name);?>"><?php printf(__('%ss have hierarchical (parent/child) %s (i.e. Sports > Golf > Clubs > Putters)', 'wp_all_import_plugin'), $custom_type->labels->singular_name, $ctx->labels->name); ?></label>
85
  <div class="switcher-target-tax_logic_hierarchical_<?php echo esc_attr($ctx->name);?> sub_input">
86
  <div class="input">
87
  <input type="hidden" name="tax_hierarchical_logic_entire[<?php echo esc_attr($ctx->name);?>]" value="0" />
@@ -120,15 +120,15 @@ if ( ! empty($post_taxonomies)):
120
  <div class="input">
121
  <input type="hidden" name="tax_hierarchical_last_level_assign[<?php echo esc_attr($ctx->name); ?>]" value="0" />
122
  <input type="checkbox" id="tax_hierarchical_last_level_assign_<?php echo esc_attr($ctx->name); ?>" name="tax_hierarchical_last_level_assign[<?php echo esc_attr($ctx->name); ?>]" value="1" <?php echo ( ! empty($post['tax_hierarchical_last_level_assign'][$ctx->name])) ? 'checked="checked"': '' ?> />
123
- <label for="tax_hierarchical_last_level_assign_<?php echo esc_attr($ctx->name); ?>"><?php printf(__('Only assign %s to the bottom level term in the hierarchy', 'wp_all_import_plugin'), $custom_type->label) ?></label>
124
  </div>
125
  <div class="input">
126
  <input type="hidden" name="is_tax_hierarchical_group_delim[<?php echo esc_attr($ctx->name); ?>]" value="0" />
127
  <input type="checkbox" id="is_tax_hierarchical_group_delim_<?php echo esc_attr($ctx->name); ?>" name="is_tax_hierarchical_group_delim[<?php echo esc_attr($ctx->name); ?>]" value="1" class="switcher" <?php echo ( ! empty($post['is_tax_hierarchical_group_delim'][$ctx->name])) ? 'checked="checked"': '' ?> />
128
- <label for="is_tax_hierarchical_group_delim_<?php echo esc_attr($ctx->name); ?>"><?php printf(__('Separate hierarchy groups via symbol', 'wp_all_import_plugin'), $custom_type->label) ?></label>
129
  <div class="switcher-target-is_tax_hierarchical_group_delim_<?php echo esc_attr($ctx->name);?> sub_input">
130
  <label><?php _e('Separated by', 'wp_all_import_plugin'); ?></label>
131
- <input type="text" class="small tax_delim" name="tax_hierarchical_group_delim[<?php echo esc_attr($ctx->name); ?>]" value="<?php echo ( ! empty($post['tax_hierarchical_group_delim'][$ctx->name]) ) ? str_replace("&amp;","&", htmlentities(htmlentities($post['tax_hierarchical_group_delim'][$ctx->name]))) : '|' ?>" />
132
  </div>
133
  </div>
134
  <a class="preview_taxonomies" href="javascript:void(0);" style="top:-35px; float: right; position: relative;" rel="preview_taxonomies"><?php _e('Preview', 'wp_all_import_plugin'); ?></a>
@@ -142,7 +142,7 @@ if ( ! empty($post_taxonomies)):
142
  <input type="checkbox" name="tax_hierarchical_logic_manual[<?php echo esc_attr($ctx->name);?>]" value="1" id="hierarchical_logic_manual_<?php echo esc_attr($ctx->name);?>" class="switcher" <?php echo (!empty($post['tax_hierarchical_logic_manual'][$ctx->name])) ? 'checked="checked"' : ''; ?>/>
143
  <label for="hierarchical_logic_manual_<?php echo esc_attr($ctx->name);?>"><?php _e('Manually design the hierarchy with drag & drop', 'wp_all_import_plugin'); ?></label>
144
  <div class="switcher-target-hierarchical_logic_manual_<?php echo esc_attr($ctx->name);?> sub_input">
145
- <p style="margin-bottom: 10px;"><?php printf(__('Drag the <img src="%s" class="wpallimport-drag-icon"/> to the right to create a child, drag up and down to re-order.'), WP_ALL_IMPORT_ROOT_URL . '/static/img/drag.png'); ?></p>
146
  <ol class="sortable no-margin" style="margin-left: 20px;">
147
  <?php
148
  if ( ! empty($post['post_taxonomies'][$ctx->name]) ):
@@ -206,7 +206,7 @@ if ( ! empty($post_taxonomies)):
206
  <?php do_action('pmxi_category_options_view', ((!empty($post['post_taxonomies'][$ctx->name])) ? $post['post_taxonomies'][$ctx->name] : false), $ctx->name, $post_type, $ctx->labels->name); ?>
207
  <div class="input" style="margin-left:17px;">
208
  <label><?php _e('Separated by', 'wp_all_import_plugin'); ?></label>
209
- <input type="text" class="small tax_delim" name="tax_manualhierarchy_delim[<?php echo esc_attr($ctx->name); ?>]" value="<?php echo ( ! empty($post['tax_manualhierarchy_delim'][$ctx->name]) ) ? str_replace("&amp;","&", htmlentities(htmlentities($post['tax_manualhierarchy_delim'][$ctx->name]))) : ',' ?>" />
210
  </div>
211
  <a href="javascript:void(0);" class="icon-item add-new-ico"><?php _e('Add Another Row','wp_all_import_plugin');?></a>
212
  </div>
@@ -220,7 +220,7 @@ if ( ! empty($post_taxonomies)):
220
  ?>
221
  <input type="hidden" name="tax_enable_mapping[<?php echo esc_attr($ctx->name); ?>]" value="0"/>
222
  <input type="checkbox" id="tax_mapping_<?php echo esc_attr($ctx->name); ?>" class="pmxi_tax_mapping switcher" <?php if ( ! empty($post['tax_enable_mapping'][$ctx->name]) ) echo "checked='checked'"; ?> name="tax_enable_mapping[<?php echo esc_attr($ctx->name); ?>]" value="1"/>
223
- <label for="tax_mapping_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Enable Mapping for %s', 'wp_all_import_plugin'), $ctx->labels->name); ?></label>
224
  <div class="switcher-target-tax_mapping_<?php echo esc_attr($ctx->name);?> sub_input custom_type" rel="tax_mapping">
225
  <fieldset style="padding: 0;">
226
  <table cellpadding="0" cellspacing="5" class="tax-form-table" rel="tax_mapping_<?php echo esc_attr($ctx->name); ?>" style="width: 100%;">
35
  <div class="input sub_input">
36
  <div class="input">
37
  <input type="radio" name="tax_logic[<?php echo esc_attr($ctx->name);?>]" value="single" id="tax_logic_single_<?php echo esc_attr($ctx->name);?>" class="switcher" <?php echo (empty($post['tax_logic'][$ctx->name]) or $post['tax_logic'][$ctx->name] == 'single') ? 'checked="checked"' : ''; ?>/>
38
+ <label for="tax_logic_single_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Each %s has just one %s', 'wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name), esc_attr($ctx->labels->singular_name)); ?></label>
39
  <div class="switcher-target-tax_logic_single_<?php echo esc_attr($ctx->name);?> sub_input">
40
  <input type="hidden" name="term_assing[<?php echo esc_attr($ctx->name);?>]" value="0"/>
41
  <input type="checkbox" name="term_assing[<?php echo esc_attr($ctx->name);?>]" <?php echo (isset($post['term_assing'][$ctx->name])) ? (( ! empty($post['term_assing'][$ctx->name]) ) ? 'checked="checked"' : '') : 'checked="checked"'; ?> title="<?php _e('Assign post to the taxonomy.','wp_all_import_plugin');?>" value="1"/>
43
  <div class="input tax_is_full_search_single" style="margin: 10px 0;">
44
  <input type="hidden" name="tax_is_full_search_single[<?php echo esc_attr($ctx->name); ?>]" value="0"/>
45
  <input type="checkbox" id="tax_is_full_search_single_<?php echo esc_attr($ctx->name); ?>" class="switcher" <?php if ( ! empty($post['tax_is_full_search_single'][$ctx->name]) ) echo "checked='checked'"; ?> name="tax_is_full_search_single[<?php echo esc_attr($ctx->name); ?>]" value="1"/>
46
+ <label for="tax_is_full_search_single_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Try to match terms to existing child %s', 'wp_all_import_plugin'), esc_attr($ctx->labels->name)); ?></label>
47
  <div class="switcher-target-tax_is_full_search_single_<?php echo esc_attr($ctx->name); ?> sub_input">
48
  <div class="input tax_assign_to_one_term_single" style="margin: 10px 0;">
49
  <input type="hidden" name="tax_assign_to_one_term_single[<?php echo esc_attr($ctx->name); ?>]" value="0"/>
50
  <input type="checkbox" id="tax_assign_to_one_term_single_<?php echo esc_attr($ctx->name); ?>" <?php if ( ! empty($post['tax_assign_to_one_term_single'][$ctx->name]) ) echo "checked='checked'"; ?> name="tax_assign_to_one_term_single[<?php echo esc_attr($ctx->name); ?>]" value="1"/>
51
+ <label for="tax_assign_to_one_term_single_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Only assign %s to the imported %s, not the entire hierarchy', 'wp_all_import_plugin'), esc_attr($custom_type->labels->name), esc_attr($ctx->labels->singular_name)); ?></label>
52
  <a href="#help" class="wpallimport-help" title="<?php _e('By default all categories above the matched category will also be assigned to the post. If enabled, only the imported category will be assigned to the post.', 'wp_all_import_plugin'); ?>" style="position:relative; top: -1px;">?</a>
53
  </div>
54
  </div>
57
  </div>
58
  <div class="input">
59
  <input type="radio" name="tax_logic[<?php echo esc_attr($ctx->name);?>]" value="multiple" id="tax_logic_multiple_<?php echo esc_attr($ctx->name);?>" class="switcher" <?php echo (!empty($post['tax_logic'][$ctx->name]) and $post['tax_logic'][$ctx->name] == 'multiple') ? 'checked="checked"' : ''; ?>/>
60
+ <label for="tax_logic_multiple_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Each %s has multiple %s', 'wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name), esc_attr($ctx->labels->name)); ?></label>
61
  <div class="switcher-target-tax_logic_multiple_<?php echo esc_attr($ctx->name);?> sub_input">
62
  <input type="hidden" name="multiple_term_assing[<?php echo esc_attr($ctx->name);?>]" value="1"/>
63
  <input type="text" class="widefat multiple_xpath_field" name="tax_multiple_xpath[<?php echo esc_attr($ctx->name); ?>]" value="<?php echo ( ! empty($post['tax_multiple_xpath'][$ctx->name])) ? esc_textarea($post['tax_multiple_xpath'][$ctx->name]) : ''; ?>" style="width:50%;"/>
64
  <label><?php _e('Separated by', 'wp_all_import_plugin'); ?></label>
65
+ <input type="text" class="small tax_delim" name="tax_multiple_delim[<?php echo esc_attr($ctx->name); ?>]" value="<?php echo esc_attr(( ! empty($post['tax_multiple_delim'][$ctx->name]) ) ? str_replace("&amp;","&", htmlentities(htmlentities($post['tax_multiple_delim'][$ctx->name]))) : ','); ?>" />
66
  <div class="input tax_is_full_search_multiple" style="margin: 10px 0;">
67
  <input type="hidden" name="tax_is_full_search_multiple[<?php echo esc_attr($ctx->name); ?>]" value="0"/>
68
  <input type="checkbox" id="tax_is_full_search_multiple_<?php echo esc_attr($ctx->name); ?>" class="switcher" <?php if ( ! empty($post['tax_is_full_search_multiple'][$ctx->name]) ) echo "checked='checked'"; ?> name="tax_is_full_search_multiple[<?php echo esc_attr($ctx->name); ?>]" value="1"/>
69
+ <label for="tax_is_full_search_multiple_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Try to match terms to existing child %s', 'wp_all_import_plugin'), esc_attr($ctx->labels->name)); ?></label>
70
  <div class="switcher-target-tax_is_full_search_multiple_<?php echo esc_attr($ctx->name); ?> sub_input">
71
  <div class="input tax_assign_to_one_term_multiple" style="margin: 10px 0;">
72
  <input type="hidden" name="tax_assign_to_one_term_multiple[<?php echo esc_attr($ctx->name); ?>]" value="0"/>
73
  <input type="checkbox" id="tax_assign_to_one_term_multiple_<?php echo esc_attr($ctx->name); ?>" <?php if ( ! empty($post['tax_assign_to_one_term_multiple'][$ctx->name]) ) echo "checked='checked'"; ?> name="tax_assign_to_one_term_multiple[<?php echo esc_attr($ctx->name); ?>]" value="1"/>
74
+ <label for="tax_assign_to_one_term_multiple_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Only assign %s to the imported %s, not the entire hierarchy', 'wp_all_import_plugin'), esc_attr($custom_type->labels->name), esc_attr($ctx->labels->singular_name)); ?></label>
75
  <a href="#help" class="wpallimport-help" title="<?php _e('By default all categories above the matched category will also be assigned to the post. If enabled, only the imported category will be assigned to the post.', 'wp_all_import_plugin'); ?>" style="position:relative; top: -1px;">?</a>
76
  </div>
77
  </div>
81
  <?php if ($ctx->hierarchical): ?>
82
  <div class="input">
83
  <input type="radio" name="tax_logic[<?php echo esc_attr($ctx->name);?>]" value="hierarchical" id="tax_logic_hierarchical_<?php echo esc_attr($ctx->name);?>" class="switcher" <?php echo (!empty($post['tax_logic'][$ctx->name]) and $post['tax_logic'][$ctx->name] == 'hierarchical') ? 'checked="checked"' : ''; ?>/>
84
+ <label for="tax_logic_hierarchical_<?php echo esc_attr($ctx->name);?>"><?php printf(__('%ss have hierarchical (parent/child) %s (i.e. Sports > Golf > Clubs > Putters)', 'wp_all_import_plugin'), esc_attr($custom_type->labels->singular_name), esc_attr($ctx->labels->name)); ?></label>
85
  <div class="switcher-target-tax_logic_hierarchical_<?php echo esc_attr($ctx->name);?> sub_input">
86
  <div class="input">
87
  <input type="hidden" name="tax_hierarchical_logic_entire[<?php echo esc_attr($ctx->name);?>]" value="0" />
120
  <div class="input">
121
  <input type="hidden" name="tax_hierarchical_last_level_assign[<?php echo esc_attr($ctx->name); ?>]" value="0" />
122
  <input type="checkbox" id="tax_hierarchical_last_level_assign_<?php echo esc_attr($ctx->name); ?>" name="tax_hierarchical_last_level_assign[<?php echo esc_attr($ctx->name); ?>]" value="1" <?php echo ( ! empty($post['tax_hierarchical_last_level_assign'][$ctx->name])) ? 'checked="checked"': '' ?> />
123
+ <label for="tax_hierarchical_last_level_assign_<?php echo esc_attr($ctx->name); ?>"><?php printf(__('Only assign %s to the bottom level term in the hierarchy', 'wp_all_import_plugin'), esc_attr($custom_type->label)); ?></label>
124
  </div>
125
  <div class="input">
126
  <input type="hidden" name="is_tax_hierarchical_group_delim[<?php echo esc_attr($ctx->name); ?>]" value="0" />
127
  <input type="checkbox" id="is_tax_hierarchical_group_delim_<?php echo esc_attr($ctx->name); ?>" name="is_tax_hierarchical_group_delim[<?php echo esc_attr($ctx->name); ?>]" value="1" class="switcher" <?php echo ( ! empty($post['is_tax_hierarchical_group_delim'][$ctx->name])) ? 'checked="checked"': '' ?> />
128
+ <label for="is_tax_hierarchical_group_delim_<?php echo esc_attr($ctx->name); ?>"><?php printf(__('Separate hierarchy groups via symbol', 'wp_all_import_plugin'), esc_attr($custom_type->label)) ?></label>
129
  <div class="switcher-target-is_tax_hierarchical_group_delim_<?php echo esc_attr($ctx->name);?> sub_input">
130
  <label><?php _e('Separated by', 'wp_all_import_plugin'); ?></label>
131
+ <input type="text" class="small tax_delim" name="tax_hierarchical_group_delim[<?php echo esc_attr($ctx->name); ?>]" value="<?php echo esc_attr(( ! empty($post['tax_hierarchical_group_delim'][$ctx->name]) ) ? str_replace("&amp;","&", htmlentities(htmlentities($post['tax_hierarchical_group_delim'][$ctx->name]))) : '|'); ?>" />
132
  </div>
133
  </div>
134
  <a class="preview_taxonomies" href="javascript:void(0);" style="top:-35px; float: right; position: relative;" rel="preview_taxonomies"><?php _e('Preview', 'wp_all_import_plugin'); ?></a>
142
  <input type="checkbox" name="tax_hierarchical_logic_manual[<?php echo esc_attr($ctx->name);?>]" value="1" id="hierarchical_logic_manual_<?php echo esc_attr($ctx->name);?>" class="switcher" <?php echo (!empty($post['tax_hierarchical_logic_manual'][$ctx->name])) ? 'checked="checked"' : ''; ?>/>
143
  <label for="hierarchical_logic_manual_<?php echo esc_attr($ctx->name);?>"><?php _e('Manually design the hierarchy with drag & drop', 'wp_all_import_plugin'); ?></label>
144
  <div class="switcher-target-hierarchical_logic_manual_<?php echo esc_attr($ctx->name);?> sub_input">
145
+ <p style="margin-bottom: 10px;"><?php printf(__('Drag the <img src="%s" class="wpallimport-drag-icon"/> to the right to create a child, drag up and down to re-order.'), esc_url(WP_ALL_IMPORT_ROOT_URL . '/static/img/drag.png')); ?></p>
146
  <ol class="sortable no-margin" style="margin-left: 20px;">
147
  <?php
148
  if ( ! empty($post['post_taxonomies'][$ctx->name]) ):
206
  <?php do_action('pmxi_category_options_view', ((!empty($post['post_taxonomies'][$ctx->name])) ? $post['post_taxonomies'][$ctx->name] : false), $ctx->name, $post_type, $ctx->labels->name); ?>
207
  <div class="input" style="margin-left:17px;">
208
  <label><?php _e('Separated by', 'wp_all_import_plugin'); ?></label>
209
+ <input type="text" class="small tax_delim" name="tax_manualhierarchy_delim[<?php echo esc_attr($ctx->name); ?>]" value="<?php echo esc_attr(( ! empty($post['tax_manualhierarchy_delim'][$ctx->name]) ) ? str_replace("&amp;","&", htmlentities(htmlentities($post['tax_manualhierarchy_delim'][$ctx->name]))) : ','); ?>" />
210
  </div>
211
  <a href="javascript:void(0);" class="icon-item add-new-ico"><?php _e('Add Another Row','wp_all_import_plugin');?></a>
212
  </div>
220
  ?>
221
  <input type="hidden" name="tax_enable_mapping[<?php echo esc_attr($ctx->name); ?>]" value="0"/>
222
  <input type="checkbox" id="tax_mapping_<?php echo esc_attr($ctx->name); ?>" class="pmxi_tax_mapping switcher" <?php if ( ! empty($post['tax_enable_mapping'][$ctx->name]) ) echo "checked='checked'"; ?> name="tax_enable_mapping[<?php echo esc_attr($ctx->name); ?>]" value="1"/>
223
+ <label for="tax_mapping_<?php echo esc_attr($ctx->name);?>"><?php printf(__('Enable Mapping for %s', 'wp_all_import_plugin'), esc_attr($ctx->labels->name)); ?></label>
224
  <div class="switcher-target-tax_mapping_<?php echo esc_attr($ctx->name);?> sub_input custom_type" rel="tax_mapping">
225
  <fieldset style="padding: 0;">
226
  <table cellpadding="0" cellspacing="5" class="tax-form-table" rel="tax_mapping_<?php echo esc_attr($ctx->name); ?>" style="width: 100%;">
views/admin/manage/bulk.php CHANGED
@@ -7,7 +7,7 @@
7
  <input type="hidden" name="items[]" value="<?php echo esc_attr($id) ?>" />
8
  <?php endforeach ?>
9
 
10
- <p><?php printf(__('Are you sure you want to delete <strong>%s</strong> selected %s?', 'wp_all_import_plugin'), $items->count(), _n('import', 'imports', $items->count(), 'wp_all_import_plugin')) ?></p>
11
  <div class="input">
12
  <input type="checkbox" id="is_delete_posts" name="is_delete_posts" class="switcher"/> <label for="is_delete_posts"><?php _e('Delete associated posts as well','wp_all_import_plugin');?> </label>
13
  <div class="switcher-target-is_delete_posts" style="padding: 5px 17px;">
@@ -28,7 +28,7 @@
28
  $export = new PMXE_Export_Record();
29
  $export->getById($item->options['export_id']);
30
  if ( ! $export->isEmpty() ){
31
- printf(__('<p class="wpallimport-delete-posts-warning"><strong>Important</strong>: this import was created automatically by WP All Export. All posts exported by the "%s" export job have been automatically associated with this import.</p>', 'wp_all_export_plugin'), $export->friendly_name );
32
  }
33
  ?>
34
  <?php endif; ?>
7
  <input type="hidden" name="items[]" value="<?php echo esc_attr($id) ?>" />
8
  <?php endforeach ?>
9
 
10
+ <p><?php printf(__('Are you sure you want to delete <strong>%s</strong> selected %s?', 'wp_all_import_plugin'), intval($items->count()), _n('import', 'imports', $items->count(), 'wp_all_import_plugin')) ?></p>
11
  <div class="input">
12
  <input type="checkbox" id="is_delete_posts" name="is_delete_posts" class="switcher"/> <label for="is_delete_posts"><?php _e('Delete associated posts as well','wp_all_import_plugin');?> </label>
13
  <div class="switcher-target-is_delete_posts" style="padding: 5px 17px;">
28
  $export = new PMXE_Export_Record();
29
  $export->getById($item->options['export_id']);
30
  if ( ! $export->isEmpty() ){
31
+ printf(__('<p class="wpallimport-delete-posts-warning"><strong>Important</strong>: this import was created automatically by WP All Export. All posts exported by the "%s" export job have been automatically associated with this import.</p>', 'wp_all_export_plugin'), esc_attr($export->friendly_name) );
32
  }
33
  ?>
34
  <?php endif; ?>
views/admin/manage/delete.php CHANGED
@@ -34,7 +34,7 @@ else{
34
  <div class="input">
35
  <input type="hidden" name="is_delete_posts" value="0"/>
36
  <input type="checkbox" id="is_delete_posts" name="is_delete_posts" class="switcher" style="position: relative; top: 2px;" value="1"/>
37
- <label for="is_delete_posts"><?php printf(__('Delete %s created by %s','wp_all_import_plugin'), strtolower($cpt_del_name), empty($item->friendly_name) ? $item->name : $item->friendly_name );?> </label>
38
  </div>
39
  <div class="switcher-target-is_delete_posts" style="padding: 5px 17px;">
40
  <div class="input">
@@ -53,7 +53,7 @@ else{
53
  $export = new PMXE_Export_Record();
54
  $export->getById($item->options['export_id']);
55
  if ( ! $export->isEmpty() ){
56
- printf(__('<p class="wpallimport-delete-posts-warning"><strong>Important</strong>: this import was created automatically by WP All Export. All posts exported by the "%s" export job have been automatically associated with this import.</p>', 'wp_all_export_plugin'), $export->friendly_name );
57
  }
58
  ?>
59
  <?php endif; ?>
@@ -67,7 +67,7 @@ else{
67
  }
68
  ?>
69
 
70
- <p class="wp-all-import-sure-to-delete"><?php _e('Are you sure you want to delete ', 'wp_all_import_plugin'); ?><span class="sure_delete_posts"><?php printf('<strong>%s %s</strong>', $associated_posts, $cpt_name); ?></span><span class="sure_delete_posts_and_import"> <?php _e('and', 'wp_all_import_plugin');?> </span><span class="sure_delete_import"><?php printf(__('the <strong>%s</strong> import'), empty($item->friendly_name) ? $item->name : $item->friendly_name);?></span>?</p>
71
  </div>
72
  <div class="submit" style="width: 90px;">
73
  <?php wp_nonce_field('delete-import', '_wpnonce_delete-import') ?>
34
  <div class="input">
35
  <input type="hidden" name="is_delete_posts" value="0"/>
36
  <input type="checkbox" id="is_delete_posts" name="is_delete_posts" class="switcher" style="position: relative; top: 2px;" value="1"/>
37
+ <label for="is_delete_posts"><?php printf(__('Delete %s created by %s','wp_all_import_plugin'), esc_attr(strtolower($cpt_del_name)), esc_attr(empty($item->friendly_name) ? $item->name : $item->friendly_name ));?> </label>
38
  </div>
39
  <div class="switcher-target-is_delete_posts" style="padding: 5px 17px;">
40
  <div class="input">
53
  $export = new PMXE_Export_Record();
54
  $export->getById($item->options['export_id']);
55
  if ( ! $export->isEmpty() ){
56
+ printf(__('<p class="wpallimport-delete-posts-warning"><strong>Important</strong>: this import was created automatically by WP All Export. All posts exported by the "%s" export job have been automatically associated with this import.</p>', 'wp_all_export_plugin'), esc_attr($export->friendly_name) );
57
  }
58
  ?>
59
  <?php endif; ?>
67
  }
68
  ?>
69
 
70
+ <p class="wp-all-import-sure-to-delete"><?php _e('Are you sure you want to delete ', 'wp_all_import_plugin'); ?><span class="sure_delete_posts"><?php printf('<strong>%s %s</strong>', esc_attr($associated_posts), esc_attr($cpt_name)); ?></span><span class="sure_delete_posts_and_import"> <?php _e('and', 'wp_all_import_plugin');?> </span><span class="sure_delete_import"><?php printf(__('the <strong>%s</strong> import'), empty($item->friendly_name) ? $item->name : $item->friendly_name);?></span>?</p>
71
  </div>
72
  <div class="submit" style="width: 90px;">
73
  <?php wp_nonce_field('delete-import', '_wpnonce_delete-import') ?>
views/admin/manage/index.php CHANGED
@@ -33,7 +33,7 @@ $columns = array(
33
  $columns = apply_filters('pmxi_manage_imports_columns', $columns);
34
 
35
  ?>
36
- <form method="post" id="import-list" action="<?php echo remove_query_arg('pmxi_nt') ?>">
37
  <input type="hidden" name="action" value="bulk" />
38
  <?php wp_nonce_field('bulk-imports', '_wpnonce_bulk-imports') ?>
39
 
@@ -143,7 +143,7 @@ $columns = apply_filters('pmxi_manage_imports_columns', $columns);
143
  case 'name':
144
  ?>
145
  <td>
146
- <strong><?php echo apply_filters("pmxi_import_name", (!empty($item['friendly_name'])) ? $item['friendly_name'] : $item['name'], $item['id']); ?></strong><br>
147
 
148
  <?php if ($item['path']): ?>
149
  <?php if ( in_array($item['type'], array('upload'))): ?>
@@ -159,12 +159,12 @@ $columns = apply_filters('pmxi_manage_imports_columns', $columns);
159
  }
160
  }
161
  ?>
162
- <em><a href="<?php echo add_query_arg(array('id' => $item['id'], 'action' => 'feed', '_wpnonce' => wp_create_nonce( '_wpnonce-download_feed' )), $this->baseUrl); ?>" class="wp_all_import_show_path" rel="<?php echo esc_attr($item['path']); ?>"><?php echo preg_replace('%.*wp-content/%', 'wp-content/', $path); ?></a></em>
163
  <?php elseif (in_array($item['type'], array('file'))):?>
164
  <?php $item['path'] = wp_all_import_get_absolute_path($item['path']); ?>
165
- <em><a href="<?php echo add_query_arg(array('id' => $item['id'], 'action' => 'feed', '_wpnonce' => wp_create_nonce( '_wpnonce-download_feed' )), $this->baseUrl); ?>" class="wp_all_import_show_path" rel="<?php echo esc_attr($item['path']); ?>"><?php echo preg_replace('%.*wp-content/%', 'wp-content/', $item['path']); ?></a></em>
166
  <?php else: ?>
167
- <em><?php echo str_replace("\\", '/', preg_replace('%^(\w+://[^:]+:)[^@]+@%', '$1*****@', $item['path'])); ?></em>
168
  <?php endif; ?>
169
  <?php endif ?>
170
  <div class="row-actions">
@@ -277,8 +277,8 @@ $columns = apply_filters('pmxi_manage_imports_columns', $columns);
277
  $cpt_name = '';
278
  }
279
  printf(__('Last run: %s', 'wp_all_import_plugin'), ($item['registered_on'] == '0000-00-00 00:00:00') ? __('never', 'wp_all_import_plugin') : get_date_from_gmt($item['registered_on'], "m/d/Y g:i a")); echo '<br/>';
280
- printf(__('%d %s created', 'wp_all_import_plugin'), $item['created'], $cpt_name); echo '<br/>';
281
- printf(__('%d updated, %d skipped, %d deleted'), $item['updated'], $item['skipped'], $item['deleted']);
282
  //printf(__('%d records', 'wp_all_import_plugin'), $item['post_count']);
283
  }
284
 
@@ -299,7 +299,7 @@ $columns = apply_filters('pmxi_manage_imports_columns', $columns);
299
  <a href="#" class="scheduling-disabled"><?php _e('Scheduling Options', 'wp_all_import_plugin'); ?></a>
300
  <a href="#help" class="wpallimport-help" style="position: relative; top: -2px; margin-left: 0;" title="<?php _e("To run this import on a schedule you must use the 'Download from URL' or 'Use existing file' option on the Import Settings page.", PMXI_Plugin::LANGUAGE_DOMAIN);?>">?</a>
301
  <br/>
302
- <a href="<?php echo add_query_arg(array('page' => 'pmxi-admin-history', 'id' => $item['id']), remove_query_arg('pagenum', $this->baseUrl))?>"><?php _e('History Logs', 'wp_all_import_plugin'); ?></a>
303
  </td>
304
  <?php
305
  break;
@@ -307,11 +307,11 @@ $columns = apply_filters('pmxi_manage_imports_columns', $columns);
307
  ?>
308
  <td style="width: 130px;">
309
  <?php if ( ! $item['processing'] and ! $item['executing'] ): ?>
310
- <h2 style="float:left;"><a class="add-new-h2" href="<?php echo add_query_arg(array('id' => $item['id'], 'action' => 'update'), remove_query_arg('pagenum', $this->baseUrl)); ?>"><?php _e('Run Import', 'wp_all_import_plugin'); ?></a></h2>
311
  <?php elseif ($item['processing']) : ?>
312
- <h2 style="float:left;"><a class="add-new-h2" href="<?php echo add_query_arg(array('id' => $item['id'], 'action' => 'cancel', '_wpnonce' => wp_create_nonce( '_wpnonce-cancel_import' )), remove_query_arg('pagenum', $this->baseUrl)); ?>"><?php _e('Cancel Cron', 'wp_all_import_plugin'); ?></a></h2>
313
  <?php elseif ($item['executing']) : ?>
314
- <h2 style="float:left;"><a class="add-new-h2" href="<?php echo add_query_arg(array('id' => $item['id'], 'action' => 'cancel', '_wpnonce' => wp_create_nonce( '_wpnonce-cancel_import' )), remove_query_arg('pagenum', $this->baseUrl)); ?>"><?php _e('Cancel', 'wp_all_import_plugin'); ?></a></h2>
315
  <?php endif; ?>
316
  </td>
317
  <?php
33
  $columns = apply_filters('pmxi_manage_imports_columns', $columns);
34
 
35
  ?>
36
+ <form method="post" id="import-list" action="<?php echo esc_url(remove_query_arg('pmxi_nt')); ?>">
37
  <input type="hidden" name="action" value="bulk" />
38
  <?php wp_nonce_field('bulk-imports', '_wpnonce_bulk-imports') ?>
39
 
143
  case 'name':
144
  ?>
145
  <td>
146
+ <strong><?php echo esc_attr(apply_filters("pmxi_import_name", (!empty($item['friendly_name'])) ? $item['friendly_name'] : $item['name'], $item['id'])); ?></strong><br>
147
 
148
  <?php if ($item['path']): ?>
149
  <?php if ( in_array($item['type'], array('upload'))): ?>
159
  }
160
  }
161
  ?>
162
+ <em><a href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'feed', '_wpnonce' => wp_create_nonce( '_wpnonce-download_feed' )), $this->baseUrl)); ?>" class="wp_all_import_show_path" rel="<?php echo esc_attr($item['path']); ?>"><?php echo preg_replace('%.*wp-content/%', 'wp-content/', $path); ?></a></em>
163
  <?php elseif (in_array($item['type'], array('file'))):?>
164
  <?php $item['path'] = wp_all_import_get_absolute_path($item['path']); ?>
165
+ <em><a href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'feed', '_wpnonce' => wp_create_nonce( '_wpnonce-download_feed' )), $this->baseUrl)); ?>" class="wp_all_import_show_path" rel="<?php echo esc_attr($item['path']); ?>"><?php echo preg_replace('%.*wp-content/%', 'wp-content/', $item['path']); ?></a></em>
166
  <?php else: ?>
167
+ <em><?php echo esc_attr(str_replace("\\", '/', preg_replace('%^(\w+://[^:]+:)[^@]+@%', '$1*****@', $item['path']))); ?></em>
168
  <?php endif; ?>
169
  <?php endif ?>
170
  <div class="row-actions">
277
  $cpt_name = '';
278
  }
279
  printf(__('Last run: %s', 'wp_all_import_plugin'), ($item['registered_on'] == '0000-00-00 00:00:00') ? __('never', 'wp_all_import_plugin') : get_date_from_gmt($item['registered_on'], "m/d/Y g:i a")); echo '<br/>';
280
+ printf(__('%d %s created', 'wp_all_import_plugin'), esc_attr($item['created']), esc_attr($cpt_name)); echo '<br/>';
281
+ printf(__('%d updated, %d skipped, %d deleted'), esc_attr($item['updated']), esc_attr($item['skipped']), esc_attr($item['deleted']));
282
  //printf(__('%d records', 'wp_all_import_plugin'), $item['post_count']);
283
  }
284
 
299
  <a href="#" class="scheduling-disabled"><?php _e('Scheduling Options', 'wp_all_import_plugin'); ?></a>
300
  <a href="#help" class="wpallimport-help" style="position: relative; top: -2px; margin-left: 0;" title="<?php _e("To run this import on a schedule you must use the 'Download from URL' or 'Use existing file' option on the Import Settings page.", PMXI_Plugin::LANGUAGE_DOMAIN);?>">?</a>
301
  <br/>
302
+ <a href="<?php echo esc_url(add_query_arg(array('page' => 'pmxi-admin-history', 'id' => $item['id']), remove_query_arg('pagenum', $this->baseUrl))); ?>"><?php _e('History Logs', 'wp_all_import_plugin'); ?></a>
303
  </td>
304
  <?php
305
  break;
307
  ?>
308
  <td style="width: 130px;">
309
  <?php if ( ! $item['processing'] and ! $item['executing'] ): ?>
310
+ <h2 style="float:left;"><a class="add-new-h2" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'update'), remove_query_arg('pagenum', $this->baseUrl))); ?>"><?php _e('Run Import', 'wp_all_import_plugin'); ?></a></h2>
311
  <?php elseif ($item['processing']) : ?>
312
+ <h2 style="float:left;"><a class="add-new-h2" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'cancel', '_wpnonce' => wp_create_nonce( '_wpnonce-cancel_import' )), remove_query_arg('pagenum', $this->baseUrl))); ?>"><?php _e('Cancel Cron', 'wp_all_import_plugin'); ?></a></h2>
313
  <?php elseif ($item['executing']) : ?>
314
+ <h2 style="float:left;"><a class="add-new-h2" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'cancel', '_wpnonce' => wp_create_nonce( '_wpnonce-cancel_import' )), remove_query_arg('pagenum', $this->baseUrl))); ?>"><?php _e('Cancel', 'wp_all_import_plugin'); ?></a></h2>
315
  <?php endif; ?>
316
  </td>
317
  <?php
views/admin/manage/scheduling.php CHANGED
@@ -54,7 +54,7 @@
54
  <?php _e('To schedule this import with a cron job, you must use the "Download from URL" option on the Import Settings screen of WP All Import.', 'wp_all_import_plugin'); ?>
55
  </p>
56
  <p>
57
- <a href="<?php echo add_query_arg(array('id' => $item['id'], 'action' => 'options'), $this->baseUrl); ?>"><?php _e('Go to Import Settings now...', 'wp_all_import_plugin'); ?></a>
58
  </p>
59
 
60
  <?php endif; ?>
54
  <?php _e('To schedule this import with a cron job, you must use the "Download from URL" option on the Import Settings screen of WP All Import.', 'wp_all_import_plugin'); ?>
55
  </p>
56
  <p>
57
+ <a href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'options'), $this->baseUrl)); ?>"><?php _e('Go to Import Settings now...', 'wp_all_import_plugin'); ?></a>
58
  </p>
59
 
60
  <?php endif; ?>
views/admin/manage/update.php CHANGED
@@ -6,8 +6,8 @@
6
 
7
  <?php if ($item->path): ?>
8
  <form method="post">
9
- <p><?php printf(__('Are you sure you want to update <strong>%s</strong> import?', 'wp_all_import_plugin'), $item->name) ?></p>
10
- <p><?php printf(__('Source path is <strong>%s</strong>', 'wp_all_import_plugin'), $item->path) ?></p>
11
 
12
  <p class="submit">
13
  <?php wp_nonce_field('update-import', '_wpnonce_update-import') ?>
6
 
7
  <?php if ($item->path): ?>
8
  <form method="post">
9
+ <p><?php printf(__('Are you sure you want to update <strong>%s</strong> import?', 'wp_all_import_plugin'), esc_attr($item->name)) ?></p>
10
+ <p><?php printf(__('Source path is <strong>%s</strong>', 'wp_all_import_plugin'), esc_attr($item->path)) ?></p>
11
 
12
  <p class="submit">
13
  <?php wp_nonce_field('update-import', '_wpnonce_update-import') ?>
views/admin/settings/index.php CHANGED
@@ -61,7 +61,7 @@
61
  <?php
62
  $wp_uploads = wp_upload_dir();
63
  ?>
64
- <?php printf(__('Imported files, chunks, logs and temporary files will be placed in a folder with a randomized name inside of %s.', 'wp_all_import_plugin'), $wp_uploads['basedir'] . '/wpallimport' ); ?>
65
  </p>
66
  </td>
67
  </tr>
@@ -75,7 +75,7 @@
75
  <tr>
76
  <th scope="row"><label><?php _e('Clean Up Temp Files', 'wp_all_import_plugin'); ?></label></th>
77
  <td>
78
- <a class="button-primary wpallimport-clean-up-tmp-files" href="<?php echo add_query_arg(array('action' => 'cleanup'), $this->baseUrl); ?>"><?php _e('Clean Up', 'wp_all_import_plugin'); ?></a>
79
  <p class="description"><?php _e('Attempt to remove temp files left over by imports that were improperly terminated.', 'wp_all_import_plugin'); ?></p>
80
  </td>
81
  </tr>
@@ -156,7 +156,7 @@
156
 
157
  <div class="input" style="display:inline-block; margin-right: 20px;">
158
  <input type="button" class="button-primary wp_all_import_save_functions" disabled="disabled" value="<?php _e("Save Functions", 'wp_all_import_plugin'); ?>"/>
159
- <a href="#help" class="wpallimport-help" title="<?php printf(__("Add functions here for use during your import. You can access this file at %s", "wp_all_import_plugin"), preg_replace("%.*wp-content%", "wp-content", $functions));?>" style="top: 0;">?</a>
160
  <div class="wp_all_import_functions_preloader"></div>
161
  </div>
162
  <div class="input wp_all_import_saving_status" style="display:inline-block;">
61
  <?php
62
  $wp_uploads = wp_upload_dir();
63
  ?>
64
+ <?php printf(__('Imported files, chunks, logs and temporary files will be placed in a folder with a randomized name inside of %s.', 'wp_all_import_plugin'), esc_attr($wp_uploads['basedir'] . '/wpallimport' )); ?>
65
  </p>
66
  </td>
67
  </tr>
75
  <tr>
76
  <th scope="row"><label><?php _e('Clean Up Temp Files', 'wp_all_import_plugin'); ?></label></th>
77
  <td>
78
+ <a class="button-primary wpallimport-clean-up-tmp-files" href="<?php echo esc_url(add_query_arg(array('action' => 'cleanup'), $this->baseUrl)); ?>"><?php _e('Clean Up', 'wp_all_import_plugin'); ?></a>
79
  <p class="description"><?php _e('Attempt to remove temp files left over by imports that were improperly terminated.', 'wp_all_import_plugin'); ?></p>
80
  </td>
81
  </tr>
156
 
157
  <div class="input" style="display:inline-block; margin-right: 20px;">
158
  <input type="button" class="button-primary wp_all_import_save_functions" disabled="disabled" value="<?php _e("Save Functions", 'wp_all_import_plugin'); ?>"/>
159
+ <a href="#help" class="wpallimport-help" title="<?php printf(__("Add functions here for use during your import. You can access this file at %s", "wp_all_import_plugin"), esc_attr(preg_replace("%.*wp-content%", "wp-content", $functions)));?>" style="top: 0;">?</a>
160
  <div class="wp_all_import_functions_preloader"></div>
161
  </div>
162
  <div class="input wp_all_import_saving_status" style="display:inline-block;">