Export WordPress data to XML/CSV - Version 1.0.3

Version Description

  • fixed manage exports screen: "Info and options" disappears when WPAI plugin is disabled
  • fixed css for WordPress 4.4
  • fixed export ACF repeater field
  • updated re-run export screen
  • added hidden post types to the dropdown list on step 1
  • added export templates
  • added possibility to control main xml tag names & put additional info into xml file: apply_filters('wp_all_export_additional_data', array(), $exportOptions)
  • added pmxe_exported_post action: do_action('pmxe_exported_post', $record->ID );
  • added option 'Create a new export file each time export is run'
  • added option 'Only export posts once'
  • added option 'Split large exports into multiple files'
  • added possibility to change export field name ( related to export WooCommerce orders )
  • added es_ES translation
  • added possibility to add NS to field names
Download this release

Release Info

Developer soflyy
Plugin Icon 128x128 Export WordPress data to XML/CSV
Version 1.0.3
Comparing to
See all releases

Code changes from version 1.0.2 to 1.0.3

Files changed (54) hide show
  1. actions/pmxe_after_export.php +126 -0
  2. actions/pmxe_exported_post.php +15 -0
  3. actions/wp_ajax_export_filtering.php +1 -0
  4. actions/wp_ajax_export_filtering_count.php +68 -14
  5. actions/wp_ajax_export_preview.php +2 -2
  6. actions/wp_ajax_generate_zapier_api_key.php +18 -0
  7. actions/wp_ajax_wpallexport.php +63 -17
  8. classes/XMLWriter.php +30 -0
  9. classes/chunk.php +239 -0
  10. config/options.php +4 -1
  11. controllers/admin/export.php +53 -11
  12. controllers/admin/manage.php +88 -5
  13. controllers/admin/settings.php +77 -0
  14. controllers/controller.php +6 -3
  15. controllers/controller/admin.php +3 -0
  16. helpers/pmxe_export_acf_field_csv.php +51 -9
  17. helpers/pmxe_export_acf_field_xml.php +28 -19
  18. helpers/pmxe_export_csv.php +35 -18
  19. helpers/pmxe_export_xml.php +98 -55
  20. helpers/wp_all_export_generate_export_file.php +27 -0
  21. helpers/wp_all_export_prepare_template_csv.php +7 -2
  22. helpers/wp_all_export_prepare_template_xml.php +8 -3
  23. helpers/wp_all_export_rand_char.php +10 -5
  24. i18n/languages/wp_all_export_plugin-de_DE.mo +0 -0
  25. i18n/languages/wp_all_export_plugin-de_DE.po +1735 -0
  26. i18n/languages/wp_all_export_plugin-es_ES.mo +0 -0
  27. i18n/languages/wp_all_export_plugin-es_ES.po +1450 -0
  28. i18n/languages/wp_all_export_plugin-ru_RU.mo +0 -0
  29. i18n/languages/wp_all_export_plugin-ru_RU.po +4 -4
  30. libraries/XmlExportACF.php +3 -0
  31. libraries/XmlExportEngine.php +10 -6
  32. libraries/XmlExportWooCommerce.php +10 -1
  33. models/export/record.php +13 -1
  34. models/post/list.php +10 -0
  35. models/post/record.php +15 -0
  36. models/template/list.php +8 -0
  37. models/template/record.php +13 -0
  38. readme.txt +29 -7
  39. schema.php +14 -0
  40. static/css/admin-wp-4.4.css +4 -0
  41. static/css/admin.css +26 -4
  42. static/img/exclamation.png +0 -0
  43. static/js/admin.js +127 -27
  44. views/admin/export/index.php +15 -3
  45. views/admin/export/options.php +4 -39
  46. views/admin/export/options/settings.php +59 -0
  47. views/admin/export/process.php +6 -0
  48. views/admin/export/template.php +37 -3
  49. views/admin/export/template/new_field_shop_order.php +3 -3
  50. views/admin/manage/index.php +8 -1
  51. views/admin/manage/scheduling.php +9 -8
  52. views/admin/manage/update.php +213 -12
  53. views/admin/settings/index.php +69 -7
  54. wp-all-export.php +64 -6
actions/pmxe_after_export.php ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ function pmxe_pmxe_after_export($export_id)
4
+ {
5
+ $export = new PMXE_Export_Record();
6
+ $export->getById($export_id);
7
+
8
+ $splitSize = $export->options['split_large_exports_count'];
9
+
10
+ if ( ! $export->isEmpty())
11
+ {
12
+ $export->set(array(
13
+ 'iteration' => $export->options['creata_a_new_export_file'] ? $export->iteration + 1 : 0
14
+ ))->update();
15
+
16
+ $exportOptions = $export->options;
17
+ // remove previously genereted chunks
18
+ if ( ! empty($exportOptions['split_files_list']) and ! $export->options['creata_a_new_export_file'] )
19
+ {
20
+ foreach ($exportOptions['split_files_list'] as $file) {
21
+ @unlink($file);
22
+ }
23
+ }
24
+
25
+ $is_secure_import = PMXE_Plugin::getInstance()->getOption('secure');
26
+
27
+ if ( ! $is_secure_import)
28
+ {
29
+ $filepath = get_attached_file($export->attch_id);
30
+ }
31
+ else
32
+ {
33
+ $filepath = wp_all_export_get_absolute_path($export->options['filepath']);
34
+ }
35
+
36
+ // Split large exports into chunks
37
+ if ( $export->options['split_large_exports'] and $splitSize < $export->exported )
38
+ {
39
+
40
+ $exportOptions['split_files_list'] = array();
41
+
42
+ if ( @file_exists($filepath) )
43
+ {
44
+
45
+ switch ($export->options['export_to'])
46
+ {
47
+ case 'xml':
48
+
49
+ $records_count = 0;
50
+ $chunk_records_count = 0;
51
+ $fileCount = 1;
52
+
53
+ $feed = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" . "\n" . "<".$export->options['main_xml_tag'].">";
54
+
55
+ $file = new PMXE_Chunk($filepath, array('element' => $export->options['record_xml_tag'], 'encoding' => 'UTF-8'));
56
+ // loop through the file until all lines are read
57
+ while ($xml = $file->read()) {
58
+
59
+ if ( ! empty($xml) )
60
+ {
61
+ $chunk = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" . "\n" . $xml;
62
+
63
+ $dom = new DOMDocument('1.0', "UTF-8");
64
+ $old = libxml_use_internal_errors(true);
65
+ $dom->loadXML($chunk); // FIX: libxml xpath doesn't handle default namespace properly, so remove it upon XML load
66
+ libxml_use_internal_errors($old);
67
+ $xpath = new DOMXPath($dom);
68
+
69
+ $records_count++;
70
+ $chunk_records_count++;
71
+ $feed .= $xml;
72
+ }
73
+
74
+ if ( $chunk_records_count == $splitSize or $records_count == $export->exported ){
75
+ $feed .= "</".$export->options['main_xml_tag'].">";
76
+ $outputFile = str_replace(basename($filepath), str_replace('.xml', '', basename($filepath)) . '-' . $fileCount++ . '.xml', $filepath);
77
+ file_put_contents($outputFile, $feed);
78
+ if ( ! in_array($outputFile, $exportOptions['split_files_list']))
79
+ $exportOptions['split_files_list'][] = $outputFile;
80
+ $chunk_records_count = 0;
81
+ $feed = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" . "\n" . "<".$export->options['main_xml_tag'].">";
82
+ }
83
+
84
+ }
85
+ break;
86
+ case 'csv':
87
+ $in = fopen($filepath, 'r');
88
+
89
+ $rowCount = 0;
90
+ $fileCount = 1;
91
+ $headers = fgetcsv($in);
92
+ while (!feof($in)) {
93
+ $data = fgetcsv($in);
94
+ if (empty($data)) continue;
95
+ if (($rowCount % $splitSize) == 0) {
96
+ if ($rowCount > 0) {
97
+ fclose($out);
98
+ }
99
+ $outputFile = str_replace(basename($filepath), str_replace('.csv', '', basename($filepath)) . '-' . $fileCount++ . '.csv', $filepath);
100
+ if ( ! in_array($outputFile, $exportOptions['split_files_list']))
101
+ $exportOptions['split_files_list'][] = $outputFile;
102
+
103
+ $out = fopen($outputFile, 'w');
104
+ }
105
+ if ($data){
106
+ if (($rowCount % $splitSize) == 0) {
107
+ fputcsv($out, $headers);
108
+ }
109
+ fputcsv($out, $data);
110
+ }
111
+ $rowCount++;
112
+ }
113
+
114
+ fclose($out);
115
+ break;
116
+
117
+ default:
118
+
119
+ break;
120
+ }
121
+
122
+ $export->set(array('options' => $exportOptions))->save();
123
+ }
124
+ }
125
+ }
126
+ }
actions/pmxe_exported_post.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ function pmxe_pmxe_exported_post( $pid ){
3
+
4
+ $postRecord = new PMXE_Post_Record();
5
+ $postRecord->getBy(array(
6
+ 'post_id' => $pid,
7
+ 'export_id' => XmlExportEngine::$exportID
8
+ ));
9
+
10
+ $postRecord->isEmpty() and $postRecord->set(array(
11
+ 'post_id' => $pid,
12
+ 'export_id' => XmlExportEngine::$exportID
13
+ ))->insert();
14
+
15
+ }
actions/wp_ajax_export_filtering.php CHANGED
@@ -32,6 +32,7 @@ function pmxe_wp_ajax_export_filtering(){
32
  <div class="wpallexport-collapsed-content">
33
  <div class="wpallexport-free-edition-notice" style="padding: 20px; margin-bottom: 10px;">
34
  <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=filter-rules&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to add filtering rules.','wp_all_export_plugin');?></a>
 
35
  </div>
36
  <div class="wp_all_export_rule_inputs">
37
  <table>
32
  <div class="wpallexport-collapsed-content">
33
  <div class="wpallexport-free-edition-notice" style="padding: 20px; margin-bottom: 10px;">
34
  <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=filter-rules&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to add filtering rules.','wp_all_export_plugin');?></a>
35
+ <p><?php _e('If you already own it, remove the free edition and install the professional edition.', 'wp_all_export_plugin'); ?></p>
36
  </div>
37
  <div class="wp_all_export_rule_inputs">
38
  <table>
actions/wp_ajax_export_filtering_count.php CHANGED
@@ -21,39 +21,93 @@ function pmxe_wp_ajax_export_filtering_count(){
21
  'product_matching_mode' => $post['product_matching_mode']
22
  );
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  XmlExportEngine::$is_user_export = ( 'users' == $post['cpt'] ) ? true : false;
25
  XmlExportEngine::$post_types = array($post['cpt']);
26
-
 
 
 
 
 
 
 
 
27
  $found_records = 0;
28
 
29
  if ( 'users' == $post['cpt'] )
30
- {
 
31
  $exportQuery = new WP_User_Query( array( 'orderby' => 'ID', 'order' => 'ASC', 'number' => 10 ));
32
 
33
  if ( ! empty($exportQuery->results)){
34
  $found_records = $exportQuery->get_total();
35
- }
 
36
  }
37
  else
38
- {
39
- $exportQuery = new WP_Query( array( 'post_type' => $post['cpt'], 'post_status' => 'any', 'orderby' => 'ID', 'order' => 'ASC', 'posts_per_page' => 10 ));
 
 
 
 
 
40
 
41
  if ( ! empty($exportQuery->found_posts)){
42
  $found_records = $exportQuery->found_posts;
43
- }
 
 
 
44
  }
45
 
46
- ?>
47
- <div class="founded_records">
 
 
48
  <?php if ($found_records > 0) :?>
49
- <h3><span class="matches_count"><?php echo $found_records; ?></span> <strong><?php echo wp_all_export_get_cpt_name(array($post['cpt']), $found_records); ?></strong> will be exported</h3>
50
- <h4><?php _e("Continue to Step 2 to choose data to include in the export file."); ?></h4>
51
  <?php else: ?>
52
- <h4 style="line-height:60px;"><?php printf(__("No matching %s found for selected filter rules"), wp_all_export_get_cpt_name(array($post['cpt']))); ?></h4>
 
 
 
 
 
 
53
  <?php endif; ?>
54
- </div>
55
- <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
 
57
- exit(json_encode(array('html' => ob_get_clean()))); die;
58
 
59
  }
21
  'product_matching_mode' => $post['product_matching_mode']
22
  );
23
 
24
+ $input = new PMXE_Input();
25
+ $export_id = $input->get('id', 0);
26
+ if (empty($export_id))
27
+ {
28
+ $export_id = ( ! empty(PMXE_Plugin::$session->update_previous)) ? PMXE_Plugin::$session->update_previous : 0;
29
+ }
30
+
31
+ $export = new PMXE_Export_Record();
32
+ $export->getById($export_id);
33
+ if ( ! $export->isEmpty() ){
34
+ XmlExportEngine::$exportOptions = $export->options + PMXE_Plugin::get_default_import_options();
35
+ XmlExportEngine::$exportOptions['export_only_new_stuff'] = $post['export_only_new_stuff'];
36
+ }
37
+
38
  XmlExportEngine::$is_user_export = ( 'users' == $post['cpt'] ) ? true : false;
39
  XmlExportEngine::$post_types = array($post['cpt']);
40
+
41
+ $filters = new XmlExportFiltering($filter_args);
42
+
43
+ $filters->parseQuery();
44
+
45
+ PMXE_Plugin::$session->set('whereclause', $filters->get('queryWhere'));
46
+ PMXE_Plugin::$session->set('joinclause', $filters->get('queryJoin'));
47
+ PMXE_Plugin::$session->save_data();
48
+
49
  $found_records = 0;
50
 
51
  if ( 'users' == $post['cpt'] )
52
+ {
53
+ add_action('pre_user_query', 'wp_all_export_pre_user_query', 10, 1);
54
  $exportQuery = new WP_User_Query( array( 'orderby' => 'ID', 'order' => 'ASC', 'number' => 10 ));
55
 
56
  if ( ! empty($exportQuery->results)){
57
  $found_records = $exportQuery->get_total();
58
+ }
59
+ remove_action('pre_user_query', 'wp_all_export_pre_user_query');
60
  }
61
  else
62
+ {
63
+ add_filter('posts_where', 'wp_all_export_posts_where', 10, 1);
64
+ add_filter('posts_join', 'wp_all_export_posts_join', 10, 1);
65
+
66
+ $cpt = ($post['cpt'] == 'product') ? array('product', 'product_variation') : $post['cpt'];
67
+
68
+ $exportQuery = new WP_Query( array( 'post_type' => $cpt, 'post_status' => 'any', 'orderby' => 'ID', 'order' => 'ASC', 'posts_per_page' => 10 ));
69
 
70
  if ( ! empty($exportQuery->found_posts)){
71
  $found_records = $exportQuery->found_posts;
72
+ }
73
+
74
+ remove_filter('posts_join', 'wp_all_export_posts_join');
75
+ remove_filter('posts_where', 'wp_all_export_posts_where');
76
  }
77
 
78
+ if ( $post['is_confirm_screen'] )
79
+ {
80
+ ?>
81
+
82
  <?php if ($found_records > 0) :?>
83
+ <h3><?php _e('Your export is ready to run.', 'wp_all_export_plugin'); ?></h3>
84
+ <h4><?php printf(__('WP All Export will export %d %s.', 'wp_all_export_plugin'), $found_records, wp_all_export_get_cpt_name(array($post['cpt']), $found_records)); ?></h4>
85
  <?php else: ?>
86
+ <?php if (! $export->isEmpty() and $export->options['export_only_new_stuff']): ?>
87
+ <h3><?php _e('Nothing to export.', 'wp_all_export_plugin'); ?></h3>
88
+ <h4><?php printf(__("All %s have already been exported.", "wp_all_export_plugin"), wp_all_export_get_cpt_name(array($post['cpt']))); ?></h4>
89
+ <?php else: ?>
90
+ <h3><?php _e('Nothing to export.', 'wp_all_export_plugin'); ?></h3>
91
+ <h4><?php printf(__("No matching %s found for selected filter rules.", "wp_all_export_plugin"), wp_all_export_get_cpt_name(array($post['cpt']))); ?></h4>
92
+ <?php endif; ?>
93
  <?php endif; ?>
94
+
95
+ <?php
96
+ }
97
+ else
98
+ {
99
+ ?>
100
+ <div class="founded_records">
101
+ <?php if ($found_records > 0) :?>
102
+ <h3><span class="matches_count"><?php echo $found_records; ?></span> <strong><?php echo wp_all_export_get_cpt_name(array($post['cpt']), $found_records); ?></strong> will be exported</h3>
103
+ <h4><?php _e("Continue to Step 2 to choose data to include in the export file.", "wp_all_export_plugin"); ?></h4>
104
+ <?php else: ?>
105
+ <h4 style="line-height:60px;"><?php printf(__("No matching %s found for selected filter rules.", "wp_all_export_plugin"), wp_all_export_get_cpt_name(array($post['cpt']))); ?></h4>
106
+ <?php endif; ?>
107
+ </div>
108
+ <?php
109
+ }
110
 
111
+ exit(json_encode(array('html' => ob_get_clean(), 'found_records' => $found_records))); die;
112
 
113
  }
actions/wp_ajax_export_preview.php CHANGED
@@ -68,9 +68,9 @@ function pmxe_wp_ajax_export_preview(){
68
  $dom->loadXML($xml);
69
  libxml_use_internal_errors($old);
70
  $xpath = new DOMXPath($dom);
71
- if (($elements = @$xpath->query('/data')) and $elements->length){
72
  pmxe_render_xml_element($elements->item( 0 ), true);
73
- }
74
 
75
  break;
76
 
68
  $dom->loadXML($xml);
69
  libxml_use_internal_errors($old);
70
  $xpath = new DOMXPath($dom);
71
+ if (($elements = @$xpath->query('/' . $exportOptions['main_xml_tag'])) and $elements->length){
72
  pmxe_render_xml_element($elements->item( 0 ), true);
73
+ }
74
 
75
  break;
76
 
actions/wp_ajax_generate_zapier_api_key.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ function pmxe_wp_ajax_generate_zapier_api_key(){
4
+
5
+ if ( ! check_ajax_referer( 'wp_all_export_secure', 'security', false )){
6
+ exit( json_encode(array('html' => __('Security check', 'wp_all_export_plugin'))) );
7
+ }
8
+
9
+ if ( ! current_user_can('manage_options') ){
10
+ exit( json_encode(array('html' => __('Security check', 'wp_all_export_plugin'))) );
11
+ }
12
+
13
+ $api_key = wp_all_export_rand_char(32);
14
+
15
+ PMXE_Plugin::getInstance()->updateOption('zapier_api_key', $api_key);
16
+
17
+ exit(json_encode(array('api_key' => $api_key)));
18
+ }
actions/wp_ajax_wpallexport.php CHANGED
@@ -35,6 +35,7 @@ function pmxe_wp_ajax_wpallexport(){
35
 
36
  XmlExportEngine::$exportOptions = $exportOptions;
37
  XmlExportEngine::$is_user_export = $exportOptions['is_user_export'];
 
38
 
39
  $posts_per_page = $exportOptions['records_per_iteration'];
40
 
@@ -46,7 +47,7 @@ function pmxe_wp_ajax_wpallexport(){
46
  }
47
  else
48
  {
49
- $exportQuery = eval('return new WP_Query(array(' . $exportOptions['wp_query'] . ', \'orderby\' => \'ID\', \'order\' => \'ASC\', \'offset\' => ' . $export->exported . ', \'posts_per_page\' => ' . $posts_per_page . ' ));');
50
  }
51
  }
52
  else
@@ -71,15 +72,29 @@ function pmxe_wp_ajax_wpallexport(){
71
 
72
  if ( ! $export->exported )
73
  {
74
- if ( ! empty($export->attch_id)){
75
- wp_delete_attachment($export->attch_id, true);
 
 
 
 
 
 
 
76
  }
 
 
 
 
77
 
78
  $is_secure_import = PMXE_Plugin::getInstance()->getOption('secure');
79
 
80
  if ( $is_secure_import and ! empty($exportOptions['filepath'])){
81
 
82
- wp_all_export_remove_source(wp_all_export_get_absolute_path($exportOptions['filepath']));
 
 
 
83
 
84
  $exportOptions['filepath'] = '';
85
 
@@ -140,25 +155,51 @@ function pmxe_wp_ajax_wpallexport(){
140
 
141
  if ( file_exists(PMXE_Plugin::$session->file)){
142
 
143
- if ($exportOptions['export_to'] == 'xml') file_put_contents(PMXE_Plugin::$session->file, '</data>', FILE_APPEND);
144
 
145
  $is_secure_import = PMXE_Plugin::getInstance()->getOption('secure');
146
 
147
  if ( ! $is_secure_import ){
 
 
148
 
149
- $wp_filetype = wp_check_filetype(basename(PMXE_Plugin::$session->file), null );
150
- $attachment_data = array(
151
- 'guid' => $wp_uploads['baseurl'] . '/' . _wp_relative_upload_path( PMXE_Plugin::$session->file ),
152
- 'post_mime_type' => $wp_filetype['type'],
153
- 'post_title' => preg_replace('/\.[^.]+$/', '', basename(PMXE_Plugin::$session->file)),
154
- 'post_content' => '',
155
- 'post_status' => 'inherit'
156
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
 
158
- $attach_id = wp_insert_attachment( $attachment_data, PMXE_Plugin::$session->file );
159
- if ( ! $export->isEmpty() ){
160
  $export->set(array(
161
- 'attch_id' => $attach_id
 
162
  ))->save();
163
  }
164
 
@@ -208,7 +249,7 @@ function pmxe_wp_ajax_wpallexport(){
208
  'is_update_acf' => 0,
209
  'update_acf_logic' => 'only',
210
  'acf_list' => '',
211
- 'is_update_product_type' => 0,
212
  'is_update_attributes' => 0,
213
  'update_attributes_logic' => 'only',
214
  'attributes_list' => '',
@@ -343,6 +384,11 @@ function pmxe_wp_ajax_wpallexport(){
343
 
344
  $csv = new PMXI_CsvParser( array( 'filename' => $xmlPath, 'targetDir' => $target ) );
345
 
 
 
 
 
 
346
  $historyPath = $csv->xml_path;
347
 
348
  $root_element = 'node';
35
 
36
  XmlExportEngine::$exportOptions = $exportOptions;
37
  XmlExportEngine::$is_user_export = $exportOptions['is_user_export'];
38
+ XmlExportEngine::$exportID = $export_id;
39
 
40
  $posts_per_page = $exportOptions['records_per_iteration'];
41
 
47
  }
48
  else
49
  {
50
+ $exportQuery = eval('return new WP_Query(array(' . $exportOptions['wp_query'] . ', \'offset\' => ' . $export->exported . ', \'posts_per_page\' => ' . $posts_per_page . ' ));');
51
  }
52
  }
53
  else
72
 
73
  if ( ! $export->exported )
74
  {
75
+ $attachment_list = $export->options['attachment_list'];
76
+ if ( ! empty($attachment_list))
77
+ {
78
+ foreach ($attachment_list as $attachment) {
79
+ if ( ! is_numeric($attachment))
80
+ {
81
+ @unlink($attachment);
82
+ }
83
+ }
84
  }
85
+ $exportOptions['attachment_list'] = array();
86
+ $export->set(array(
87
+ 'options' => $exportOptions
88
+ ))->save();
89
 
90
  $is_secure_import = PMXE_Plugin::getInstance()->getOption('secure');
91
 
92
  if ( $is_secure_import and ! empty($exportOptions['filepath'])){
93
 
94
+ // if 'Create a new file each time export is run' disabled remove all previously generated source files
95
+ // if ( ! $exportOptions['creata_a_new_export_file'] or ! $export->iteration ){
96
+ // wp_all_export_remove_source(wp_all_export_get_absolute_path($exportOptions['filepath']));
97
+ // }
98
 
99
  $exportOptions['filepath'] = '';
100
 
155
 
156
  if ( file_exists(PMXE_Plugin::$session->file)){
157
 
158
+ if ($exportOptions['export_to'] == 'xml') file_put_contents(PMXE_Plugin::$session->file, '</'.$exportOptions['main_xml_tag'].'>', FILE_APPEND);
159
 
160
  $is_secure_import = PMXE_Plugin::getInstance()->getOption('secure');
161
 
162
  if ( ! $is_secure_import ){
163
+
164
+ if ( ! $export->isEmpty() ){
165
 
166
+ $wp_filetype = wp_check_filetype(basename(PMXE_Plugin::$session->file), null );
167
+ $attachment_data = array(
168
+ 'guid' => $wp_uploads['baseurl'] . '/' . _wp_relative_upload_path( PMXE_Plugin::$session->file ),
169
+ 'post_mime_type' => $wp_filetype['type'],
170
+ 'post_title' => preg_replace('/\.[^.]+$/', '', basename(PMXE_Plugin::$session->file)),
171
+ 'post_content' => '',
172
+ 'post_status' => 'inherit'
173
+ );
174
+
175
+ if ( empty($export->attch_id) )
176
+ {
177
+ $attach_id = wp_insert_attachment( $attachment_data, PMXE_Plugin::$session->file );
178
+ }
179
+ elseif($export->options['creata_a_new_export_file'])
180
+ {
181
+ $attach_id = wp_insert_attachment( $attachment_data, PMXE_Plugin::$session->file );
182
+ }
183
+ else
184
+ {
185
+ $attach_id = $export->attch_id;
186
+ $attachment = get_post($attach_id);
187
+ if ($attachment)
188
+ {
189
+ update_attached_file( $attach_id, PMXE_Plugin::$session->file );
190
+ wp_update_attachment_metadata( $attach_id, $attachment_data );
191
+ }
192
+ else
193
+ {
194
+ $attach_id = wp_insert_attachment( $attachment_data, PMXE_Plugin::$session->file );
195
+ }
196
+ }
197
+
198
+ if ( ! in_array($attach_id, $exportOptions['attachment_list'])) $exportOptions['attachment_list'][] = $attach_id;
199
 
 
 
200
  $export->set(array(
201
+ 'attch_id' => $attach_id,
202
+ 'options' => $exportOptions
203
  ))->save();
204
  }
205
 
249
  'is_update_acf' => 0,
250
  'update_acf_logic' => 'only',
251
  'acf_list' => '',
252
+ 'is_update_product_type' => 1,
253
  'is_update_attributes' => 0,
254
  'update_attributes_logic' => 'only',
255
  'attributes_list' => '',
384
 
385
  $csv = new PMXI_CsvParser( array( 'filename' => $xmlPath, 'targetDir' => $target ) );
386
 
387
+ if ( ! in_array($xmlPath, $exportOptions['attachment_list']) )
388
+ {
389
+ $exportOptions['attachment_list'][] = $csv->xml_path;
390
+ }
391
+
392
  $historyPath = $csv->xml_path;
393
 
394
  $root_element = 'node';
classes/XMLWriter.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class PMXE_XMLWriter extends XMLWriter
4
+ {
5
+
6
+ public function putElement( $ns, $element, $uri, $value )
7
+ {
8
+ if (empty($ns))
9
+ {
10
+ return $this->writeElement( $element, $value );
11
+ }
12
+ else
13
+ {
14
+ return $this->writeElementNS( $ns, $element, $uri, $value );
15
+ }
16
+ }
17
+
18
+ public function beginElement($ns, $element, $uri)
19
+ {
20
+ if (empty($ns))
21
+ {
22
+ return $this->startElement( $element );
23
+ }
24
+ else
25
+ {
26
+ return $this->startElementNS( $ns, $element, $uri );
27
+ }
28
+ }
29
+
30
+ }
classes/chunk.php ADDED
@@ -0,0 +1,239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Chunk
4
+ *
5
+ * Reads a large file in as chunks for easier parsing.
6
+ *
7
+ *
8
+ * @package default
9
+ * @author Max Tsiplyakov
10
+ */
11
+ class PMXE_Chunk {
12
+ /**
13
+ * options
14
+ *
15
+ * @var array Contains all major options
16
+ * @access public
17
+ */
18
+ public $options = array(
19
+ 'path' => './', // string The path to check for $file in
20
+ 'element' => '', // string The XML element to return
21
+ 'type' => 'upload',
22
+ 'encoding' => 'UTF-8',
23
+ 'pointer' => 1,
24
+ 'chunkSize' => 1024,
25
+ 'filter' => true,
26
+ 'get_cloud' => false
27
+ );
28
+
29
+ /**
30
+ * file
31
+ *
32
+ * @var string The filename being read
33
+ * @access public
34
+ */
35
+ public $file = '';
36
+ /**
37
+ * pointer
38
+ *
39
+ * @var integer The current position the file is being read from
40
+ * @access public
41
+ */
42
+ public $reader;
43
+ public $cloud = array();
44
+ public $loop = 1;
45
+
46
+ /**
47
+ * handle
48
+ *
49
+ * @var resource The fopen() resource
50
+ * @access private
51
+ */
52
+ private $handle = null;
53
+ /**
54
+ * reading
55
+ *
56
+ * @var boolean Whether the script is currently reading the file
57
+ * @access private
58
+ */
59
+
60
+ /**
61
+ * __construct
62
+ *
63
+ * Builds the Chunk object
64
+ *
65
+ * @param string $file The filename to work with
66
+ * @param array $options The options with which to parse the file
67
+ * @author Dom Hastings
68
+ * @access public
69
+ */
70
+ public function __construct($file, $options = array()) {
71
+
72
+ // merge the options together
73
+ $this->options = array_merge($this->options, (is_array($options) ? $options : array()));
74
+
75
+ $this->options['chunkSize'] *= 32;
76
+
77
+ // set the filename
78
+ $this->file = $file;
79
+
80
+ $is_html = false;
81
+ $f = @fopen($file, "rb");
82
+ while (!@feof($f)) {
83
+ $chunk = @fread($f, 1024);
84
+ if (strpos($chunk, "<!DOCTYPE") === 0) $is_html = true;
85
+ break;
86
+ }
87
+ @fclose($f);
88
+
89
+ if ($is_html) return;
90
+
91
+ if (empty($this->options['element']) or $this->options['get_cloud'])
92
+ {
93
+ // if (function_exists('stream_filter_register') and $this->options['filter']){
94
+ // stream_filter_register('preprocessxml', 'preprocessXml_filter');
95
+ // $path = 'php://filter/read=preprocessxml/resource=' . $this->file;
96
+ // }
97
+ // else
98
+ $path = $this->file;
99
+
100
+ $reader = new XMLReader();
101
+ $reader->open($path);
102
+ $reader->setParserProperty(XMLReader::VALIDATE, false);
103
+ while ( @$reader->read()) {
104
+ switch ($reader->nodeType) {
105
+ case (XMLREADER::ELEMENT):
106
+ if (array_key_exists(str_replace(":", "_", $reader->localName), $this->cloud))
107
+ $this->cloud[str_replace(":", "_", $reader->localName)]++;
108
+ else
109
+ $this->cloud[str_replace(":", "_", $reader->localName)] = 1;
110
+ break;
111
+ default:
112
+
113
+ break;
114
+ }
115
+ }
116
+ unset($reader);
117
+
118
+ if ( ! empty($this->cloud) and empty($this->options['element']) ){
119
+
120
+ arsort($this->cloud);
121
+
122
+ $main_elements = array('node', 'product', 'job', 'deal', 'entry', 'item', 'property', 'listing', 'hotel', 'record', 'article', 'post', 'book');
123
+
124
+ foreach ($this->cloud as $element_name => $value) {
125
+ if ( in_array(strtolower($element_name), $main_elements) ){
126
+ $this->options['element'] = $element_name;
127
+ break;
128
+ }
129
+ }
130
+
131
+ if (empty($this->options['element'])){
132
+ foreach ($this->cloud as $el => $count) {
133
+ $this->options['element'] = $el;
134
+ break;
135
+ }
136
+ }
137
+ }
138
+ }
139
+
140
+ // if (function_exists('stream_filter_register') and $this->options['filter']){
141
+ // stream_filter_register('preprocessxml', 'preprocessXml_filter');
142
+ // $path = 'php://filter/read=preprocessxml/resource=' . $this->file;
143
+ // }
144
+ // else
145
+ $path = $this->file;
146
+
147
+ $this->reader = new XMLReader();
148
+ @$this->reader->open($path);
149
+ @$this->reader->setParserProperty(XMLReader::VALIDATE, false);
150
+
151
+
152
+ }
153
+
154
+ /**
155
+ * __destruct
156
+ *
157
+ * Cleans up
158
+ *
159
+ * @return void
160
+ * @author Dom Hastings
161
+ * @access public
162
+ */
163
+ public function __destruct() {
164
+ // close the file resource
165
+ unset($this->reader);
166
+ }
167
+
168
+ /**
169
+ * read
170
+ *
171
+ * Reads the first available occurence of the XML element $this->options['element']
172
+ *
173
+ * @return string The XML string from $this->file
174
+ * @author Dom Hastings
175
+ * @access public
176
+ */
177
+ public function read($debug = false) {
178
+
179
+ // trim it
180
+ $element = trim($this->options['element']);
181
+
182
+ $xml = '';
183
+
184
+ try {
185
+ while ( @$this->reader->read() ) {
186
+ switch ($this->reader->nodeType) {
187
+ case (XMLREADER::ELEMENT):
188
+ if ( strtolower(str_replace(":", "_", $this->reader->localName)) == strtolower($element) ) {
189
+
190
+ if ($this->loop < $this->options['pointer']){
191
+ $this->loop++;
192
+ continue;
193
+ }
194
+
195
+ $xml = @$this->reader->readOuterXML();
196
+
197
+ break(2);
198
+ }
199
+ break;
200
+ default:
201
+ // code ...
202
+ break;
203
+ }
204
+ }
205
+ } catch (XmlImportException $e) {
206
+ $xml = false;
207
+ }
208
+
209
+ return ( ! empty($xml) ) ? $this->removeColonsFromRSS(preg_replace('%xmlns.*=\s*([\'"&quot;]).*\1%sU', '', $xml)) : false;
210
+
211
+ }
212
+
213
+ function removeColonsFromRSS($feed) {
214
+
215
+ // pull out colons from start tags
216
+ // (<\w+):(\w+>)
217
+ $pattern = '/(<\w+):(\w+[ |>]{1})/i';
218
+ $replacement = '<$2';
219
+ $feed = preg_replace($pattern, $replacement, $feed);
220
+ // pull out colons from end tags
221
+ // (<\/\w+):(\w+>)
222
+ $pattern = '/(<\/\w+):(\w+>)/i';
223
+ $replacement = '</$2';
224
+ $feed = preg_replace($pattern, $replacement, $feed);
225
+ // pull out colons from attributes
226
+ $pattern = '/(\s+\w+):(\w+[=]{1})/i';
227
+ $replacement = '$1_$2';
228
+ $feed = preg_replace($pattern, $replacement, $feed);
229
+ // pull colons from single element
230
+ // (<\w+):(\w+\/>)
231
+ $pattern = '/(<\w+):(\w+\/>)/i';
232
+ $replacement = '<$2';
233
+ $feed = preg_replace($pattern, $replacement, $feed);
234
+
235
+ return $feed;
236
+
237
+ }
238
+
239
+ }
config/options.php CHANGED
@@ -11,5 +11,8 @@ $config = array(
11
  "cron_job_key" => wp_all_export_url_title(wp_all_export_rand_char(12)),
12
  "max_input_time" => -1,
13
  "max_execution_time" => -1,
14
- "secure" => 1
 
 
 
15
  );
11
  "cron_job_key" => wp_all_export_url_title(wp_all_export_rand_char(12)),
12
  "max_input_time" => -1,
13
  "max_execution_time" => -1,
14
+ "secure" => 1,
15
+ "zapier_api_key" => wp_all_export_rand_char(32),
16
+ "zapier_invitation_url" => "",
17
+ "zapier_invitation_url_received" => ""
18
  );
controllers/admin/export.php CHANGED
@@ -172,6 +172,8 @@ class PMXE_Admin_Export extends PMXE_Controller_Admin {
172
  */
173
  public function template(){
174
 
 
 
175
  $default = PMXE_Plugin::get_default_import_options();
176
 
177
  if ($this->isWizard) {
@@ -193,19 +195,43 @@ class PMXE_Admin_Export extends PMXE_Controller_Admin {
193
 
194
  $this->data['post'] =& $post;
195
 
196
- if ($this->input->post('is_submitted')) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
197
 
198
  check_admin_referer('template', '_wpnonce_template');
199
 
200
  if ( empty($post['cc_type'][0]) ){
201
- $this->errors->add('form-validation', __('You haven\'t selected any columns for export.', 'pmxe_plugin'));
202
  }
203
 
204
  if ( 'csv' == $post['export_to'] and '' == $post['delimiter'] ){
205
- $this->errors->add('form-validation', __('CSV delimiter must be specified', 'pmxe_plugin'));
206
  }
207
 
208
- if ( ! $this->errors->get_error_codes()) {
 
 
 
 
 
 
 
 
209
 
210
  if ($this->isWizard) {
211
  foreach ($this->data['post'] as $key => $value) {
@@ -266,6 +292,20 @@ class PMXE_Admin_Export extends PMXE_Controller_Admin {
266
  if ($this->input->post('is_submitted')) {
267
 
268
  check_admin_referer('options', '_wpnonce_options');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
269
 
270
  if ($post['is_generate_templates'] and '' == $post['template_name']){
271
  $friendly_name = '';
@@ -288,23 +328,25 @@ class PMXE_Admin_Export extends PMXE_Controller_Admin {
288
  $post['template_name'] = $friendly_name;
289
  }
290
 
291
- if ( ! $this->errors->get_error_codes()) {
292
- if ($this->isWizard) {
293
  foreach ($this->data['post'] as $key => $value) {
294
  PMXE_Plugin::$session->set($key, $value);
295
  }
296
  PMXE_Plugin::$session->save_data();
297
  wp_redirect(add_query_arg('action', 'process', $this->baseUrl)); die();
298
- }
299
- else {
 
 
 
300
  $this->data['export']->set(array( 'options' => $post, 'settings_update_on' => date('Y-m-d H:i:s')))->save();
301
  if ( ! empty($post['friendly_name']) ) {
302
  $this->data['export']->set( array( 'friendly_name' => $post['friendly_name'], 'scheduled' => (($post['is_scheduled']) ? $post['scheduled_period'] : '') ) )->save();
303
  }
304
- wp_redirect(add_query_arg(array('page' => 'pmxe-admin-manage', 'pmxe_nt' => urlencode(__('Options updated', 'pmxi_plugin'))) + array_intersect_key($_GET, array_flip($this->baseUrlParamNames)), admin_url('admin.php'))); die();
305
  }
306
-
307
- }
308
 
309
  }
310
 
172
  */
173
  public function template(){
174
 
175
+ $template = new PMXE_Template_Record();
176
+
177
  $default = PMXE_Plugin::get_default_import_options();
178
 
179
  if ($this->isWizard) {
195
 
196
  $this->data['post'] =& $post;
197
 
198
+ PMXE_Plugin::$session->set('is_loaded_template', '');
199
+
200
+ if (($load_template = $this->input->post('load_template'))) { // init form with template selected
201
+ if ( ! $template->getById($load_template)->isEmpty()) {
202
+ $template_options = $template->options;
203
+ unset($template_options['cpt']);
204
+ unset($template_options['export_to']);
205
+ unset($template_options['export_type']);
206
+ unset($template_options['wp_query']);
207
+ unset($template_options['filter_rules_hierarhy']);
208
+ unset($template_options['product_matching_mode']);
209
+ unset($template_options['wp_query_selector']);
210
+ $this->data['post'] = array_merge($post, $template_options);
211
+ PMXE_Plugin::$session->set('is_loaded_template', $load_template);
212
+ }
213
+
214
+ } elseif ($this->input->post('is_submitted')) {
215
 
216
  check_admin_referer('template', '_wpnonce_template');
217
 
218
  if ( empty($post['cc_type'][0]) ){
219
+ $this->errors->add('form-validation', __('You haven\'t selected any columns for export.', 'wp_all_export_plugin'));
220
  }
221
 
222
  if ( 'csv' == $post['export_to'] and '' == $post['delimiter'] ){
223
+ $this->errors->add('form-validation', __('CSV delimiter must be specified.', 'wp_all_export_plugin'));
224
  }
225
 
226
+ if ( ! $this->errors->get_error_codes()) {
227
+
228
+ if ( ! empty($post['name']) and !empty($post['save_template_as']) ) { // save template in database
229
+ $template->getByName($post['name'])->set(array(
230
+ 'name' => $post['name'],
231
+ 'options' => $post
232
+ ))->save();
233
+ PMXE_Plugin::$session->set('saved_template', $template->id);
234
+ }
235
 
236
  if ($this->isWizard) {
237
  foreach ($this->data['post'] as $key => $value) {
292
  if ($this->input->post('is_submitted')) {
293
 
294
  check_admin_referer('options', '_wpnonce_options');
295
+
296
+ $post['main_xml_tag'] = preg_replace('/[^a-z0-9]/i', '', $post['main_xml_tag']);
297
+ if ( empty($post['main_xml_tag']) ){
298
+ $this->errors->add('form-validation', __('Main XML Tag is required.', 'wp_all_export_plugin'));
299
+ }
300
+
301
+ $post['record_xml_tag'] = preg_replace('/[^a-z0-9]/i', '', $post['record_xml_tag']);
302
+ if ( empty($post['record_xml_tag']) ){
303
+ $this->errors->add('form-validation', __('Single Record XML Tag is required.', 'wp_all_export_plugin'));
304
+ }
305
+
306
+ if ($post['main_xml_tag'] == $post['record_xml_tag']){
307
+ $this->errors->add('form-validation', __('Main XML Tag equals to Single Record XML Tag.', 'wp_all_export_plugin'));
308
+ }
309
 
310
  if ($post['is_generate_templates'] and '' == $post['template_name']){
311
  $friendly_name = '';
328
  $post['template_name'] = $friendly_name;
329
  }
330
 
331
+ if ($this->isWizard) {
332
+ if ( ! $this->errors->get_error_codes()) {
333
  foreach ($this->data['post'] as $key => $value) {
334
  PMXE_Plugin::$session->set($key, $value);
335
  }
336
  PMXE_Plugin::$session->save_data();
337
  wp_redirect(add_query_arg('action', 'process', $this->baseUrl)); die();
338
+ }
339
+ }
340
+ else {
341
+ $this->errors->remove('count-validation');
342
+ if ( ! $this->errors->get_error_codes()) {
343
  $this->data['export']->set(array( 'options' => $post, 'settings_update_on' => date('Y-m-d H:i:s')))->save();
344
  if ( ! empty($post['friendly_name']) ) {
345
  $this->data['export']->set( array( 'friendly_name' => $post['friendly_name'], 'scheduled' => (($post['is_scheduled']) ? $post['scheduled_period'] : '') ) )->save();
346
  }
347
+ wp_redirect(add_query_arg(array('page' => 'pmxe-admin-manage', 'pmxe_nt' => urlencode(__('Options updated', 'wp_all_export_plugin'))) + array_intersect_key($_GET, array_flip($this->baseUrlParamNames)), admin_url('admin.php'))); die();
348
  }
349
+ }
 
350
 
351
  }
352
 
controllers/admin/manage.php CHANGED
@@ -157,17 +157,38 @@ class PMXE_Admin_Manage extends PMXE_Controller_Admin {
157
  $this->data['item'] = $item = new PMXE_Export_Record();
158
  if ( ! $id or $item->getById($id)->isEmpty()) {
159
  wp_redirect($this->baseUrl); die();
160
- }
 
 
 
 
161
 
162
  if ($this->input->post('is_confirmed')) {
163
 
164
  check_admin_referer('update-export', '_wpnonce_update-export');
165
 
166
- $default = PMXE_Plugin::get_default_import_options();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
 
168
  // compose data to look like result of wizard steps
169
- $sesson_data = $item->options + array('update_previous' => $item->id ) + $default;
170
-
171
  foreach ($sesson_data as $key => $value) {
172
  PMXE_Plugin::$session->set($key, $value);
173
  }
@@ -188,7 +209,21 @@ class PMXE_Admin_Manage extends PMXE_Controller_Admin {
188
 
189
  }
190
 
 
 
 
 
 
 
 
 
 
 
191
  }
 
 
 
 
192
 
193
  $this->render();
194
  }
@@ -342,6 +377,54 @@ class PMXE_Admin_Manage extends PMXE_Controller_Admin {
342
  }
343
  }
344
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
345
  /*
346
  * Download import log file
347
  *
@@ -374,7 +457,7 @@ class PMXE_Admin_Manage extends PMXE_Controller_Admin {
374
 
375
  if ( @file_exists($filepath) )
376
  {
377
- switch ($export['options']['export_to'])
378
  {
379
  case 'xml':
380
  PMXE_download::xml($filepath);
157
  $this->data['item'] = $item = new PMXE_Export_Record();
158
  if ( ! $id or $item->getById($id)->isEmpty()) {
159
  wp_redirect($this->baseUrl); die();
160
+ }
161
+
162
+ $default = PMXE_Plugin::get_default_import_options();
163
+ $DefaultOptions = $item->options + $default;
164
+ $this->data['post'] = $post = $this->input->post($DefaultOptions);
165
 
166
  if ($this->input->post('is_confirmed')) {
167
 
168
  check_admin_referer('update-export', '_wpnonce_update-export');
169
 
170
+ $post['main_xml_tag'] = preg_replace('/[^a-z0-9]/i', '', $post['main_xml_tag']);
171
+ if ( empty($post['main_xml_tag']) ){
172
+ $this->errors->add('form-validation', __('Main XML Tag is required.', 'wp_all_export_plugin'));
173
+ }
174
+
175
+ $post['record_xml_tag'] = preg_replace('/[^a-z0-9]/i', '', $post['record_xml_tag']);
176
+ if ( empty($post['record_xml_tag']) ){
177
+ $this->errors->add('form-validation', __('Single Record XML Tag is required.', 'wp_all_export_plugin'));
178
+ }
179
+
180
+ if ($post['main_xml_tag'] == $post['record_xml_tag']){
181
+ $this->errors->add('form-validation', __('Main XML Tag equals to Single Record XML Tag.', 'wp_all_export_plugin'));
182
+ }
183
+
184
+ $item->set(array( 'options' => $post))->save();
185
+ if ( ! empty($post['friendly_name']) ) {
186
+ $item->set( array( 'friendly_name' => $post['friendly_name'], 'scheduled' => (($post['is_scheduled']) ? $post['scheduled_period'] : '') ) )->save();
187
+ }
188
 
189
  // compose data to look like result of wizard steps
190
+ $sesson_data = $post + array('update_previous' => $item->id ) + $default;
191
+
192
  foreach ($sesson_data as $key => $value) {
193
  PMXE_Plugin::$session->set($key, $value);
194
  }
209
 
210
  }
211
 
212
+ $this->errors->remove('count-validation');
213
+ if ( ! $this->errors->get_error_codes()) {
214
+ ?>
215
+ <script type="text/javascript">
216
+ window.location.href = "<?php echo add_query_arg('pmxe_nt', urlencode(__('Options updated', 'wp_all_export_plugin')), $this->baseUrl); ?>";
217
+ </script>
218
+ <?php
219
+ die();
220
+ }
221
+
222
  }
223
+
224
+ $this->data['isWizard'] = false;
225
+ $this->data['engine'] = new XmlExportEngine($post, $this->errors);
226
+ $this->data['engine']->init_available_data();
227
 
228
  $this->render();
229
  }
377
  }
378
  }
379
 
380
+ public function split_bundle(){
381
+ $nonce = (!empty($_REQUEST['_wpnonce'])) ? $_REQUEST['_wpnonce'] : '';
382
+ if ( ! wp_verify_nonce( $nonce, '_wpnonce-download_split_bundle' ) ) {
383
+ die( __('Security check', 'wp_all_export_plugin') );
384
+ } else {
385
+
386
+ $uploads = wp_upload_dir();
387
+
388
+ $id = PMXE_Plugin::$session->update_previous;
389
+
390
+ if (empty($id))
391
+ $id = $this->input->get('id');
392
+
393
+ $export = new PMXE_Export_Record();
394
+
395
+ if ( ! $export->getById($id)->isEmpty())
396
+ {
397
+ if ( ! empty($export->options['split_files_list']))
398
+ {
399
+ $tmp_dir = $uploads['basedir'] . DIRECTORY_SEPARATOR . PMXE_Plugin::TEMP_DIRECTORY . DIRECTORY_SEPARATOR . md5($export->id) . DIRECTORY_SEPARATOR;
400
+ $bundle_dir = $tmp_dir . 'split_files' . DIRECTORY_SEPARATOR;
401
+
402
+ wp_all_export_rrmdir($tmp_dir);
403
+
404
+ @mkdir($tmp_dir);
405
+ @mkdir($bundle_dir);
406
+
407
+ foreach ($export->options['split_files_list'] as $file) {
408
+ @copy( $file, $bundle_dir . basename($file) );
409
+ }
410
+
411
+ $friendly_name = sanitize_file_name($export->friendly_name);
412
+
413
+ $bundle_path = $tmp_dir . $friendly_name . '-split-files.zip';
414
+
415
+ PMXE_Zip::zipDir($bundle_dir, $bundle_path);
416
+
417
+ if (file_exists($bundle_path))
418
+ {
419
+ $bundle_url = $uploads['baseurl'] . str_replace($uploads['basedir'], '', $bundle_path);
420
+
421
+ PMXE_download::zip($bundle_path);
422
+ }
423
+ }
424
+ }
425
+ }
426
+ }
427
+
428
  /*
429
  * Download import log file
430
  *
457
 
458
  if ( @file_exists($filepath) )
459
  {
460
+ switch ($export->options['export_to'])
461
  {
462
  case 'xml':
463
  PMXE_download::xml($filepath);
controllers/admin/settings.php CHANGED
@@ -22,6 +22,83 @@ class PMXE_Admin_Settings extends PMXE_Controller_Admin {
22
  }
23
  }
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  $this->render();
26
 
27
  }
22
  }
23
  }
24
 
25
+ if ($this->input->post('is_templates_submitted')) { // delete templates form
26
+
27
+ check_admin_referer('delete-templates', '_wpnonce_delete-templates');
28
+
29
+ if ($this->input->post('import_templates')){
30
+
31
+ if (!empty($_FILES)){
32
+ $file_name = $_FILES['template_file']['name'];
33
+ $file_size = $_FILES['template_file']['size'];
34
+ $tmp_name = $_FILES['template_file']['tmp_name'];
35
+
36
+ if(isset($file_name))
37
+ {
38
+
39
+ $filename = stripslashes($file_name);
40
+ $extension = strtolower(pmxi_getExtension($filename));
41
+
42
+ if (($extension != "txt"))
43
+ {
44
+ $this->errors->add('form-validation', __('Unknown File extension. Only txt files are permitted', 'wp_all_export_plugin'));
45
+ }
46
+ else {
47
+ $import_data = @file_get_contents($tmp_name);
48
+ if (!empty($import_data)){
49
+ $templates_data = json_decode($import_data, true);
50
+
51
+ if (!empty($templates_data)){
52
+ $template = new PMXE_Template_Record();
53
+ foreach ($templates_data as $template_data) {
54
+ unset($template_data['id']);
55
+ $template->clear()->set($template_data)->insert();
56
+ }
57
+ wp_redirect(add_query_arg('pmxi_nt', urlencode(sprintf(_n('%d template imported', '%d templates imported', count($templates_data), 'wp_all_export_plugin'), count($templates_data))), $this->baseUrl)); die();
58
+ }
59
+ else $this->errors->add('form-validation', __('Wrong imported data format', 'wp_all_export_plugin'));
60
+ }
61
+ else $this->errors->add('form-validation', __('File is empty or doesn\'t exests', 'wp_all_export_plugin'));
62
+ }
63
+ }
64
+ else $this->errors->add('form-validation', __('Undefined entry!', 'wp_all_export_plugin'));
65
+ }
66
+ else $this->errors->add('form-validation', __('Please select file.', 'wp_all_export_plugin'));
67
+
68
+ }
69
+ else{
70
+ $templates_ids = $this->input->post('templates', array());
71
+ if (empty($templates_ids)) {
72
+ $this->errors->add('form-validation', __('Templates must be selected', 'wp_all_export_plugin'));
73
+ }
74
+
75
+ if ( ! $this->errors->get_error_codes()) { // no validation errors detected
76
+ if ($this->input->post('delete_templates')){
77
+ $template = new PMXE_Template_Record();
78
+ foreach ($templates_ids as $template_id) {
79
+ $template->clear()->set('id', $template_id)->delete();
80
+ }
81
+ wp_redirect(add_query_arg('pmxi_nt', urlencode(sprintf(_n('%d template deleted', '%d templates deleted', count($templates_ids), 'wp_all_export_plugin'), count($templates_ids))), $this->baseUrl)); die();
82
+ }
83
+ if ($this->input->post('export_templates')){
84
+ $export_data = array();
85
+ $template = new PMXE_Template_Record();
86
+ foreach ($templates_ids as $template_id) {
87
+ $export_data[] = $template->clear()->getBy('id', $template_id)->toArray(TRUE);
88
+ }
89
+
90
+ $uploads = wp_upload_dir();
91
+ $targetDir = $uploads['basedir'] . DIRECTORY_SEPARATOR . PMXE_Plugin::TEMP_DIRECTORY;
92
+ $export_file_name = "templates_".uniqid().".txt";
93
+ file_put_contents($targetDir . DIRECTORY_SEPARATOR . $export_file_name, json_encode($export_data));
94
+
95
+ PMXE_download::csv($targetDir . DIRECTORY_SEPARATOR . $export_file_name);
96
+
97
+ }
98
+ }
99
+ }
100
+ }
101
+
102
  $this->render();
103
 
104
  }
controllers/controller.php CHANGED
@@ -90,10 +90,13 @@ abstract class PMXE_Controller {
90
  protected function error($msgs = NULL) {
91
  if (is_null($msgs)) {
92
  $msgs = $this->errors;
93
- }
94
- if (is_wp_error($msgs)) {
 
 
 
95
  $msgs = $msgs->get_error_messages();
96
- }
97
  if ( ! is_array($msgs)) {
98
  $msgs = array($msgs);
99
  }
90
  protected function error($msgs = NULL) {
91
  if (is_null($msgs)) {
92
  $msgs = $this->errors;
93
+ }
94
+ if (is_wp_error($msgs))
95
+ {
96
+ unset($msgs->errors['count-validation']);
97
+
98
  $msgs = $msgs->get_error_messages();
99
+ }
100
  if ( ! is_array($msgs)) {
101
  $msgs = array($msgs);
102
  }
controllers/controller/admin.php CHANGED
@@ -55,6 +55,9 @@ abstract class PMXE_Controller_Admin extends PMXE_Controller {
55
  if ( version_compare(get_bloginfo('version'), '3.8-RC1') >= 0 ){
56
  wp_enqueue_style('pmxe-admin-style-wp-3.8', PMXE_ROOT_URL . '/static/css/admin-wp-3.8.css');
57
  }
 
 
 
58
 
59
  $scheme_color = get_user_option('admin_color') and is_file(PMXE_Plugin::ROOT_DIR . '/static/css/admin-colors-' . $scheme_color . '.css') or $scheme_color = 'fresh';
60
  if (is_file(PMXE_Plugin::ROOT_DIR . '/static/css/admin-colors-' . $scheme_color . '.css')) {
55
  if ( version_compare(get_bloginfo('version'), '3.8-RC1') >= 0 ){
56
  wp_enqueue_style('pmxe-admin-style-wp-3.8', PMXE_ROOT_URL . '/static/css/admin-wp-3.8.css');
57
  }
58
+ if ( version_compare(get_bloginfo('version'), '4.4') >= 0 ){
59
+ wp_enqueue_style('pmxe-admin-style-wp-4.4', PMXE_ROOT_URL . '/static/css/admin-wp-4.4.css');
60
+ }
61
 
62
  $scheme_color = get_user_option('admin_color') and is_file(PMXE_Plugin::ROOT_DIR . '/static/css/admin-colors-' . $scheme_color . '.css') or $scheme_color = 'fresh';
63
  if (is_file(PMXE_Plugin::ROOT_DIR . '/static/css/admin-colors-' . $scheme_color . '.css')) {
helpers/pmxe_export_acf_field_csv.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- function pmxe_export_acf_field_csv($field_value, $exportOptions, $ID, $recordID, &$article, &$acfs, $element_name = '', $fieldSnipped = '', $group_id = '', $preview = false){
4
 
5
  $put_to_csv = true;
6
 
@@ -10,6 +10,8 @@ function pmxe_export_acf_field_csv($field_value, $exportOptions, $ID, $recordID,
10
 
11
  if ( ! empty($field_value) ) {
12
 
 
 
13
  $field_value = maybe_unserialize($field_value);
14
 
15
  $implode_delimiter = ($exportOptions['delimiter'] == ',') ? '|' : ',';
@@ -230,6 +232,11 @@ function pmxe_export_acf_field_csv($field_value, $exportOptions, $ID, $recordID,
230
 
231
  if( have_rows($field_name, $recordID) ){
232
 
 
 
 
 
 
233
  $rowValues = array();
234
 
235
  while( have_rows($field_name, $recordID) ): the_row();
@@ -238,20 +245,53 @@ function pmxe_export_acf_field_csv($field_value, $exportOptions, $ID, $recordID,
238
 
239
  foreach ($row['field']['sub_fields'] as $sub_field) {
240
 
241
- // get
242
- $v = $row['value'][ $row['i'] ][ $sub_field['key'] ];//acf_format_value($row['value'][ $row['i'] ][ $sub_field['key'] ], $row['post_id'], $sub_field);
243
-
244
- $rowValues[$sub_field['name']][] = $v;
 
 
 
 
 
245
 
246
- //pmxe_export_acf_field_csv($v, $sub_field, false, $recordID, $article, $acfs, str_replace('acf' . $group_id, '', $element_name) . '_' . $sub_field['name'], '');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
247
 
248
  }
249
 
250
- endwhile;
251
 
252
  foreach ($rowValues as $key => $values) {
253
- $article[$element_name . '_' . $key] = ($preview) ? trim(preg_replace('~[\r\n]+~', ' ', htmlspecialchars(implode($implode_delimiter, $values)))) : implode($implode_delimiter, $values);
254
- if ( ! in_array($element_name . '_' . $key, $acfs)) $acfs[] = $element_name . '_' . $key;
255
  }
256
 
257
  }
@@ -309,6 +349,8 @@ function pmxe_export_acf_field_csv($field_value, $exportOptions, $ID, $recordID,
309
 
310
  }
311
 
 
 
312
  if ($put_to_csv){
313
 
314
 
1
  <?php
2
 
3
+ function pmxe_export_acf_field_csv($field_value, $exportOptions, $ID, $recordID, &$article, &$acfs, $element_name = '', $fieldSnipped = '', $group_id = '', $preview = false, $parent_field_name = '', $return_value = false){
4
 
5
  $put_to_csv = true;
6
 
10
 
11
  if ( ! empty($field_value) ) {
12
 
13
+ global $acf;
14
+
15
  $field_value = maybe_unserialize($field_value);
16
 
17
  $implode_delimiter = ($exportOptions['delimiter'] == ',') ? '|' : ',';
232
 
233
  if( have_rows($field_name, $recordID) ){
234
 
235
+ $repeater_element_name = empty($ID) ? $parent_field_name : $element_name;
236
+
237
+ if ( ! empty($ID))
238
+ $acfs[$repeater_element_name] = array();
239
+
240
  $rowValues = array();
241
 
242
  while( have_rows($field_name, $recordID) ): the_row();
245
 
246
  foreach ($row['field']['sub_fields'] as $sub_field) {
247
 
248
+ if ($acf and version_compare($acf->settings['version'], '5.0.0') >= 0)
249
+ {
250
+ // get
251
+ $v = $row['value'][ $row['i'] ][ $sub_field['key'] ];//acf_format_value($row['value'][ $row['i'] ][ $sub_field['key'] ], $row['post_id'], $sub_field);
252
+ }
253
+ else
254
+ {
255
+ $v = get_sub_field($sub_field['name']);
256
+ }
257
 
258
+ $sub_field['delimiter'] = $exportOptions['delimiter'];
259
+
260
+ switch ($sub_field['type']) {
261
+ case 'repeater':
262
+ pmxe_export_acf_field_csv($v, $sub_field, false, $recordID, $article, $acfs, str_replace('acf' . $group_id, '', $element_name) . '_' . $sub_field['name'], '', '', false, $element_name);
263
+ break;
264
+ case 'google_map':
265
+ case 'paypal_item':
266
+ case 'location-field':
267
+ $rowValues[$sub_field['name']][] = (is_array($v)) ? implode($exportOptions['delimiter'], $v) : $v;
268
+ break;
269
+
270
+ default:
271
+
272
+ $sub_field_value = pmxe_export_acf_field_csv($v, $sub_field, false, $recordID, $article, $acfs, str_replace('acf' . $group_id, '', $element_name) . '_' . $sub_field['name'], '', '', false, $element_name, true);
273
+
274
+ $rowValues[$sub_field['name']][] = (is_array($sub_field_value)) ? implode($exportOptions['delimiter'], $sub_field_value) : $sub_field_value;
275
+ break;
276
+ }
277
+
278
+ // if ($sub_field['type'] == 'repeater')
279
+ // {
280
+ // $sub_field['delimiter'] = $exportOptions['delimiter'];
281
+ // pmxe_export_acf_field_csv($v, $sub_field, false, $recordID, $article, $acfs, str_replace('acf' . $group_id, '', $element_name) . '_' . $sub_field['name'], '', '', false, $element_name);
282
+ // }
283
+ // else
284
+ // {
285
+ // $rowValues[$sub_field['name']][] = (is_array($v)) ? implode($exportOptions['delimiter'], $v) : $v;
286
+ // }
287
 
288
  }
289
 
290
+ endwhile;
291
 
292
  foreach ($rowValues as $key => $values) {
293
+ $article[$element_name . '_' . $key] = ($preview) ? trim(preg_replace('~[\r\n]+~', ' ', htmlspecialchars(implode($exportOptions['delimiter'], $values)))) : implode($exportOptions['delimiter'], $values);
294
+ if ( ! in_array($element_name . '_' . $key, $acfs[$repeater_element_name])) $acfs[$repeater_element_name][] = $element_name . '_' . $key;
295
  }
296
 
297
  }
349
 
350
  }
351
 
352
+ if ($return_value) return $field_value;
353
+
354
  if ($put_to_csv){
355
 
356
 
helpers/pmxe_export_acf_field_xml.php CHANGED
@@ -1,8 +1,10 @@
1
  <?php
2
 
3
- function pmxe_export_acf_field_xml($field_value, $exportOptions, $ID, $recordID, &$xmlWriter, $element_name = '', $fieldSnipped = '', $group_id = ''){
4
 
5
- if ( ! empty($field_value) ) {
 
 
6
 
7
  $field_value = maybe_unserialize($field_value);
8
 
@@ -51,7 +53,7 @@ function pmxe_export_acf_field_xml($field_value, $exportOptions, $ID, $recordID,
51
 
52
  if (!empty($localion_parts)){
53
 
54
- $xmlWriter->startElement($element_name);
55
  $xmlWriter->startElement('address');
56
  $xmlWriter->writeCData($localion_parts[0]);
57
  $xmlWriter->endElement();
@@ -76,10 +78,10 @@ function pmxe_export_acf_field_xml($field_value, $exportOptions, $ID, $recordID,
76
  break;
77
  case 'paypal_item':
78
 
79
- $xmlWriter->startElement($element_name);
80
  if ( is_array($field_value) ){
81
  foreach ($field_value as $key => $value) {
82
- $xmlWriter->startElement($key);
83
  $xmlWriter->writeCData($value);
84
  $xmlWriter->endElement();
85
  }
@@ -91,7 +93,7 @@ function pmxe_export_acf_field_xml($field_value, $exportOptions, $ID, $recordID,
91
  break;
92
  case 'google_map':
93
 
94
- $xmlWriter->startElement($element_name);
95
  $xmlWriter->startElement('address');
96
  $xmlWriter->writeCData($field_value['address']);
97
  $xmlWriter->endElement();
@@ -201,7 +203,7 @@ function pmxe_export_acf_field_xml($field_value, $exportOptions, $ID, $recordID,
201
  break;
202
  case 'taxonomy':
203
 
204
- $xmlWriter->startElement($element_name);
205
 
206
  if ( ! in_array($field_options['field_type'], array('radio', 'select'))){
207
  foreach ($field_value as $key => $tid) {
@@ -240,30 +242,37 @@ function pmxe_export_acf_field_xml($field_value, $exportOptions, $ID, $recordID,
240
 
241
  $field_value = implode(",", $field_value);
242
 
 
 
243
  break;
244
 
245
  case 'repeater':
246
 
247
- $xmlWriter->startElement($element_name);
248
-
249
  if( have_rows($field_name, $recordID) ):
250
 
251
  while( have_rows($field_name, $recordID) ):
252
 
253
- the_row();
254
-
255
- $row = XmlExportACF::acf_get_row();
256
 
257
- //$xmlWriter->startElementNs('key_' . $row['i'], 'row', null);
258
 
259
  $xmlWriter->startElement('row');
260
 
261
  foreach ($row['field']['sub_fields'] as $sub_field) {
262
 
263
- // get
264
- $v = acf_format_value($row['value'][ $row['i'] ][ $sub_field['key'] ], $row['post_id'], $sub_field);
 
 
 
 
 
 
 
265
 
266
- pmxe_export_acf_field_xml($v, $sub_field, false, $recordID, $xmlWriter, $sub_field['name'], '', '');
267
 
268
  }
269
 
@@ -281,7 +290,7 @@ function pmxe_export_acf_field_xml($field_value, $exportOptions, $ID, $recordID,
281
 
282
  case 'flexible_content':
283
 
284
- $xmlWriter->startElement($element_name);
285
 
286
  // check if the flexible content field has rows of data
287
  if( have_rows($field_name) ):
@@ -303,7 +312,7 @@ function pmxe_export_acf_field_xml($field_value, $exportOptions, $ID, $recordID,
303
  // get
304
  $v = acf_format_value($row['value'][ $row['i'] ][ $sub_field['key'] ], $row['post_id'], $sub_field);
305
 
306
- pmxe_export_acf_field_xml($v, $sub_field, false, $recordID, $xmlWriter, $sub_field['name'], '', '');
307
  }
308
 
309
  }
@@ -334,7 +343,7 @@ function pmxe_export_acf_field_xml($field_value, $exportOptions, $ID, $recordID,
334
 
335
  if ($put_to_xml){
336
 
337
- $xmlWriter->startElement($element_name);
338
  $xmlWriter->writeCData(apply_filters('pmxe_acf_field', pmxe_filter( maybe_serialize($field_value), $fieldSnipped), $field_name, $recordID));
339
  $xmlWriter->endElement();
340
 
1
  <?php
2
 
3
+ function pmxe_export_acf_field_xml($field_value, $exportOptions, $ID, $recordID, &$xmlWriter, $element_name = '', $element_name_ns = '', $fieldSnipped = '', $group_id = ''){
4
 
5
+ if ( ! empty($field_value) ) {
6
+
7
+ global $acf;
8
 
9
  $field_value = maybe_unserialize($field_value);
10
 
53
 
54
  if (!empty($localion_parts)){
55
 
56
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
57
  $xmlWriter->startElement('address');
58
  $xmlWriter->writeCData($localion_parts[0]);
59
  $xmlWriter->endElement();
78
  break;
79
  case 'paypal_item':
80
 
81
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
82
  if ( is_array($field_value) ){
83
  foreach ($field_value as $key => $value) {
84
+ $xmlWriter->beginElement($element_name_ns, $key, null);
85
  $xmlWriter->writeCData($value);
86
  $xmlWriter->endElement();
87
  }
93
  break;
94
  case 'google_map':
95
 
96
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
97
  $xmlWriter->startElement('address');
98
  $xmlWriter->writeCData($field_value['address']);
99
  $xmlWriter->endElement();
203
  break;
204
  case 'taxonomy':
205
 
206
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
207
 
208
  if ( ! in_array($field_options['field_type'], array('radio', 'select'))){
209
  foreach ($field_value as $key => $tid) {
242
 
243
  $field_value = implode(",", $field_value);
244
 
245
+ //var_dump($field_value);
246
+
247
  break;
248
 
249
  case 'repeater':
250
 
251
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
252
+
253
  if( have_rows($field_name, $recordID) ):
254
 
255
  while( have_rows($field_name, $recordID) ):
256
 
257
+ the_row();
 
 
258
 
259
+ $row = XmlExportACF::acf_get_row();
260
 
261
  $xmlWriter->startElement('row');
262
 
263
  foreach ($row['field']['sub_fields'] as $sub_field) {
264
 
265
+ if ($acf and version_compare($acf->settings['version'], '5.0.0') >= 0)
266
+ {
267
+ // get
268
+ $v = acf_format_value($row['value'][ $row['i'] ][ $sub_field['key'] ], $row['post_id'], $sub_field);
269
+ }
270
+ else
271
+ {
272
+ $v = get_sub_field($sub_field['name']);
273
+ }
274
 
275
+ pmxe_export_acf_field_xml($v, $sub_field, false, $recordID, $xmlWriter, $sub_field['name'], $element_name_ns, '', '');
276
 
277
  }
278
 
290
 
291
  case 'flexible_content':
292
 
293
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
294
 
295
  // check if the flexible content field has rows of data
296
  if( have_rows($field_name) ):
312
  // get
313
  $v = acf_format_value($row['value'][ $row['i'] ][ $sub_field['key'] ], $row['post_id'], $sub_field);
314
 
315
+ pmxe_export_acf_field_xml($v, $sub_field, false, $recordID, $xmlWriter, $sub_field['name'], $element_name_ns, '', '');
316
  }
317
 
318
  }
343
 
344
  if ($put_to_xml){
345
 
346
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
347
  $xmlWriter->writeCData(apply_filters('pmxe_acf_field', pmxe_filter( maybe_serialize($field_value), $fieldSnipped), $field_name, $recordID));
348
  $xmlWriter->endElement();
349
 
helpers/pmxe_export_csv.php CHANGED
@@ -58,7 +58,7 @@ function pmxe_export_csv($exportQuery, $exportOptions, $preview = false, $is_cro
58
  'post_id' => $record->ID,
59
  'import_id' => $exportOptions['import_id'],
60
  'unique_key' => $record->ID,
61
- 'product_key' => get_post_meta($record->ID, '_sku', true)
62
  ))->save();
63
  }
64
  unset($postRecord);
@@ -426,14 +426,14 @@ function pmxe_export_csv($exportQuery, $exportOptions, $preview = false, $is_cro
426
 
427
  }
428
 
429
- if ($exportOptions['cc_label'][$ID] == 'product_type') $article['parent_sku'] = $record->post_parent;
430
  //if ( ! in_array('parent_sku', $taxes)) $taxes[] = 'parent_sku';
431
 
432
  }
433
  break;
434
 
435
  case 'sql':
436
- if ( ! empty($exportOptions['cc_sql'][$ID]) ) {
437
  $val = $wpdb->get_var( $wpdb->prepare( stripcslashes(str_replace("%%ID%%", "%d", $exportOptions['cc_sql'][$ID])), get_the_ID() ));
438
  if ( ! empty($exportOptions['cc_php'][$ID]) and !empty($exportOptions['cc_code'][$ID]) ){
439
  // if shortcode defined
@@ -462,6 +462,8 @@ function pmxe_export_csv($exportQuery, $exportOptions, $preview = false, $is_cro
462
 
463
  if ($preview) break;
464
 
 
 
465
  endwhile;
466
 
467
  if ($exportOptions['ids']):
@@ -497,7 +499,7 @@ function pmxe_export_csv($exportQuery, $exportOptions, $preview = false, $is_cro
497
  $tx = array_shift($taxes);
498
  $headers[] = $tx;
499
 
500
- if ( $exportOptions['cc_label'][$ID] == 'product_type' ) $headers[] = 'parent_sku';
501
 
502
  }
503
  break;
@@ -537,7 +539,17 @@ function pmxe_export_csv($exportQuery, $exportOptions, $preview = false, $is_cro
537
  case 'acf':
538
 
539
  if ( ! empty($acfs) ){
540
- $headers[] = array_shift($acfs);
 
 
 
 
 
 
 
 
 
 
541
  }
542
 
543
  break;
@@ -574,14 +586,23 @@ function pmxe_export_csv($exportQuery, $exportOptions, $preview = false, $is_cro
574
  if ($preview) return ob_get_clean();
575
 
576
  if ($is_cron)
577
- {
578
- // include BOM to export file
579
- if ( ! $exported_by_cron and $exportOptions['include_bom'])
580
  {
581
- file_put_contents($file_path, chr(0xEF).chr(0xBB).chr(0xBF));
 
 
 
 
 
 
 
 
582
  }
583
-
584
- file_put_contents($file_path, ob_get_clean(), FILE_APPEND);
 
 
585
 
586
  return $file_path;
587
 
@@ -590,14 +611,10 @@ function pmxe_export_csv($exportQuery, $exportOptions, $preview = false, $is_cro
590
  {
591
  if ( empty(PMXE_Plugin::$session->file) ){
592
 
593
- $is_secure_import = PMXE_Plugin::getInstance()->getOption('secure');
594
-
595
- $wp_uploads = wp_upload_dir();
596
-
597
- $target = $is_secure_import ? wp_all_export_secure_file($wp_uploads['basedir'] . DIRECTORY_SEPARATOR . PMXE_Plugin::UPLOADS_DIRECTORY) : $wp_uploads['path'];
598
-
599
- $export_file = $target . DIRECTORY_SEPARATOR . sanitize_file_name(preg_replace('%- \d{4}.*%', '', $exportOptions['friendly_name'])) . ' - ' . date("Y F d H_i") . '.' . $exportOptions['export_to'];
600
 
 
601
  if ($exportOptions['include_bom'])
602
  {
603
  file_put_contents($export_file, chr(0xEF).chr(0xBB).chr(0xBF).ob_get_clean());
58
  'post_id' => $record->ID,
59
  'import_id' => $exportOptions['import_id'],
60
  'unique_key' => $record->ID,
61
+ 'product_key' => $record->ID
62
  ))->save();
63
  }
64
  unset($postRecord);
426
 
427
  }
428
 
429
+ if ($exportOptions['cc_label'][$ID] == 'product_type') $article['parent_id'] = $record->post_parent;
430
  //if ( ! in_array('parent_sku', $taxes)) $taxes[] = 'parent_sku';
431
 
432
  }
433
  break;
434
 
435
  case 'sql':
436
+ if ( ! empty($exportOptions['cc_sql'][$ID]) ) {
437
  $val = $wpdb->get_var( $wpdb->prepare( stripcslashes(str_replace("%%ID%%", "%d", $exportOptions['cc_sql'][$ID])), get_the_ID() ));
438
  if ( ! empty($exportOptions['cc_php'][$ID]) and !empty($exportOptions['cc_code'][$ID]) ){
439
  // if shortcode defined
462
 
463
  if ($preview) break;
464
 
465
+ do_action('pmxe_exported_post', $record->ID );
466
+
467
  endwhile;
468
 
469
  if ($exportOptions['ids']):
499
  $tx = array_shift($taxes);
500
  $headers[] = $tx;
501
 
502
+ if ( $exportOptions['cc_label'][$ID] == 'product_type' ) $headers[] = 'parent_id';
503
 
504
  }
505
  break;
539
  case 'acf':
540
 
541
  if ( ! empty($acfs) ){
542
+ $single_acf_field = array_shift($acfs);
543
+ if ( is_array($single_acf_field))
544
+ {
545
+ foreach ($single_acf_field as $acf_header) {
546
+ $headers[] = $acf_header;
547
+ }
548
+ }
549
+ else
550
+ {
551
+ $headers[] = $single_acf_field;
552
+ }
553
  }
554
 
555
  break;
586
  if ($preview) return ob_get_clean();
587
 
588
  if ($is_cron)
589
+ {
590
+ if ( ! $exported_by_cron )
 
591
  {
592
+ // The BOM will help some programs like Microsoft Excel read your export file if it includes non-English characters.
593
+ if ($exportOptions['include_bom'])
594
+ {
595
+ file_put_contents($file_path, chr(0xEF).chr(0xBB).chr(0xBF).ob_get_clean());
596
+ }
597
+ else
598
+ {
599
+ file_put_contents($file_path, ob_get_clean());
600
+ }
601
  }
602
+ else
603
+ {
604
+ file_put_contents($file_path, ob_get_clean(), FILE_APPEND);
605
+ }
606
 
607
  return $file_path;
608
 
611
  {
612
  if ( empty(PMXE_Plugin::$session->file) ){
613
 
614
+ // generate export file name
615
+ $export_file = wp_all_export_generate_export_file( XmlExportEngine::$exportID );
 
 
 
 
 
616
 
617
+ // The BOM will help some programs like Microsoft Excel read your export file if it includes non-English characters.
618
  if ($exportOptions['include_bom'])
619
  {
620
  file_put_contents($export_file, chr(0xEF).chr(0xBB).chr(0xBF).ob_get_clean());
helpers/pmxe_export_xml.php CHANGED
@@ -1,15 +1,51 @@
1
  <?php
2
- /**
3
- * Export XML helper
4
- */
5
- function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cron = false, $file_path = false){
6
 
7
- $xmlWriter = new XMLWriter();
8
  $xmlWriter->openMemory();
9
  $xmlWriter->setIndent(true);
10
  $xmlWriter->setIndentString("\t");
11
  $xmlWriter->startDocument('1.0', $exportOptions['encoding']);
12
- $xmlWriter->startElement('data');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  global $wpdb;
15
 
@@ -17,7 +53,7 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
17
 
18
  $exportQuery->the_post(); $record = get_post( get_the_ID() );
19
 
20
- $xmlWriter->startElement('post');
21
 
22
  if ($exportOptions['ids']):
23
 
@@ -34,7 +70,7 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
34
  'post_id' => $record->ID,
35
  'import_id' => $exportOptions['import_id'],
36
  'unique_key' => $record->ID,
37
- 'product_key' => get_post_meta($record->ID, '_sku', true)
38
  ))->save();
39
  }
40
  unset($postRecord);
@@ -46,33 +82,41 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
46
 
47
  if (empty($exportOptions['cc_name'][$ID]) or empty($exportOptions['cc_type'][$ID])) continue;
48
 
49
- $element_name = ( ! empty($exportOptions['cc_name'][$ID]) ) ? preg_replace('/[^a-z0-9_-]/i', '', $exportOptions['cc_name'][$ID]) : 'untitled_' . $ID;
 
50
  $fieldSnipped = ( ! empty($exportOptions['cc_php'][$ID]) and ! empty($exportOptions['cc_code'][$ID]) ) ? $exportOptions['cc_code'][$ID] : false;
51
 
 
 
 
 
 
 
 
52
  switch ($exportOptions['cc_type'][$ID]) {
53
  case 'id':
54
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_post_id', pmxe_filter(get_the_ID(), $fieldSnipped), get_the_ID()));
55
  break;
56
  case 'permalink':
57
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_post_guid', pmxe_filter(get_permalink(), $fieldSnipped), get_the_ID()));
58
  break;
59
  case 'post_type':
60
  $pType = get_post_type();
61
  if ($pType == 'product_variation') $pType = 'product';
62
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_post_type', pmxe_filter($pType, $fieldSnipped), get_the_ID()));
63
  break;
64
  case 'title':
65
- $xmlWriter->startElement($element_name);
66
  $xmlWriter->writeCData(apply_filters('pmxe_post_title', pmxe_filter($record->post_title, $fieldSnipped) , get_the_ID()));
67
  $xmlWriter->endElement();
68
  break;
69
  case 'content':
70
- $xmlWriter->startElement($element_name);
71
  $xmlWriter->writeCData(apply_filters('pmxe_post_content', pmxe_filter($record->post_content, $fieldSnipped), get_the_ID()));
72
  $xmlWriter->endElement();
73
  break;
74
  case 'media':
75
- $xmlWriter->startElement($element_name);
76
 
77
  $attachment_ids = array();
78
 
@@ -162,11 +206,11 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
162
  else{
163
  $post_date = date("Ymd", get_post_time('U', true));
164
  }
165
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_post_date', pmxe_filter($post_date, $fieldSnipped), get_the_ID()));
166
  break;
167
 
168
  case 'attachments':
169
- $xmlWriter->startElement($element_name);
170
  $attachment_imgs = get_posts( array(
171
  'post_type' => 'attachment',
172
  'posts_per_page' => -1,
@@ -188,43 +232,43 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
188
  break;
189
 
190
  case 'parent':
191
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_post_parent', pmxe_filter($record->post_parent, $fieldSnipped), get_the_ID()));
192
  break;
193
 
194
  case 'comment_status':
195
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_comment_status', pmxe_filter($record->comment_status, $fieldSnipped), get_the_ID()));
196
  break;
197
 
198
  case 'ping_status':
199
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_ping_status', pmxe_filter($record->ping_status, $fieldSnipped), get_the_ID()));
200
  break;
201
 
202
  case 'template':
203
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_post_template', pmxe_filter(get_post_meta($record->ID, '_wp_page_template', true), $fieldSnipped), get_the_ID()));
204
  break;
205
 
206
  case 'order':
207
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_menu_order', pmxe_filter($record->menu_order, $fieldSnipped), get_the_ID()));
208
  break;
209
 
210
  case 'status':
211
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_post_status', pmxe_filter($record->post_status, $fieldSnipped), get_the_ID()));
212
  break;
213
 
214
  case 'format':
215
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_post_format', pmxe_filter(get_post_format($record->ID), $fieldSnipped), get_the_ID()));
216
  break;
217
 
218
  case 'author':
219
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_post_author', pmxe_filter($record->post_author, $fieldSnipped), get_the_ID()));
220
  break;
221
 
222
  case 'slug':
223
- $xmlWriter->writeElement($element_name, apply_filters('pmxe_post_slug', pmxe_filter($record->post_name, $fieldSnipped), get_the_ID()));
224
  break;
225
 
226
  case 'excerpt':
227
- $xmlWriter->startElement($element_name);
228
  $xmlWriter->writeCData(apply_filters('pmxe_post_excerpt', pmxe_filter($record->post_excerpt, $fieldSnipped) , get_the_ID()));
229
  $xmlWriter->endElement();
230
  break;
@@ -234,14 +278,14 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
234
  $cur_meta_values = get_post_meta($record->ID, $exportOptions['cc_value'][$ID]);
235
  if (!empty($cur_meta_values) and is_array($cur_meta_values)){
236
  foreach ($cur_meta_values as $key => $cur_meta_value) {
237
- $xmlWriter->startElement($element_name);
238
  $xmlWriter->writeCData(apply_filters('pmxe_custom_field', pmxe_filter(maybe_serialize($cur_meta_value), $fieldSnipped), $exportOptions['cc_value'][$ID], get_the_ID()));
239
  $xmlWriter->endElement();
240
  }
241
  }
242
 
243
  if (empty($cur_meta_values)){
244
- $xmlWriter->startElement($element_name);
245
  $xmlWriter->writeCData(apply_filters('pmxe_custom_field', pmxe_filter('', $fieldSnipped), $exportOptions['cc_value'][$ID], get_the_ID()));
246
  $xmlWriter->endElement();
247
  }
@@ -257,7 +301,7 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
257
 
258
  $field_options = unserialize($exportOptions['cc_options'][$ID]);
259
 
260
- pmxe_export_acf_field_xml($field_value, $exportOptions, $ID, $record->ID, $xmlWriter, $element_name, $fieldSnipped, $field_options['group_id']);
261
 
262
  }
263
 
@@ -294,7 +338,7 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
294
  foreach ($txes_list as $t) {
295
  $attr_new[] = $t->name;
296
  }
297
- $xmlWriter->startElement($is_variable_product ? $element_name : 'attribute_' . $element_name);
298
  $xmlWriter->writeCData(apply_filters('pmxe_woo_attribute', pmxe_filter(implode('|', $attr_new), $fieldSnipped), get_the_ID()));
299
  $xmlWriter->endElement();
300
  endif;
@@ -303,7 +347,7 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
303
  else{
304
  $attribute_pa = get_post_meta($record->ID, 'attribute_' . $exportOptions['cc_value'][$ID], true);
305
  if ( ! empty($attribute_pa)){
306
- $xmlWriter->startElement('attribute_' . $element_name);
307
  $xmlWriter->writeCData(apply_filters('woo_field', $attribute_pa));
308
  $xmlWriter->endElement();
309
  }
@@ -315,7 +359,7 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
315
  {
316
  if ($exportOptions['cc_label'][$ID] == 'product_type' and get_post_type() == 'product_variation')
317
  {
318
- $xmlWriter->writeElement('parent_sku', $record->post_parent);
319
  $xmlWriter->writeElement($element_name, 'variable');
320
  }
321
  else
@@ -353,7 +397,7 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
353
 
354
  if ( ! empty($hierarchy_groups) ){
355
 
356
- $xmlWriter->startElement($element_name);
357
  $xmlWriter->writeCData(apply_filters('pmxe_post_taxonomy', pmxe_filter(implode('|', $hierarchy_groups), $fieldSnipped), get_the_ID()));
358
  $xmlWriter->endElement();
359
 
@@ -379,7 +423,7 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
379
  $val = eval('return ' . stripcslashes(str_replace("%%VALUE%%", $val, $exportOptions['cc_code'][$ID])) . ';');
380
  }
381
  }
382
- $xmlWriter->startElement($element_name);
383
  $xmlWriter->writeCData(apply_filters('pmxe_sql_field', $val, $element_name, get_the_ID()));
384
  $xmlWriter->endElement();
385
  }
@@ -397,32 +441,35 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
397
 
398
  if ($preview) break;
399
 
 
 
400
  endwhile;
 
401
  $xmlWriter->endElement(); // end data
402
 
403
- if ($preview) return wp_all_export_remove_colons($xmlWriter->flush(true));
404
 
405
  if ($is_cron)
406
  {
407
 
408
  $xml = $xmlWriter->flush(true);
409
-
410
- if (file_exists($file_path))
411
  {
412
- file_put_contents($file_path, wp_all_export_remove_colons(substr(substr($xml, 45), 0, -8)), FILE_APPEND);
413
- }
414
- else
415
- {
416
- // include BOM to export file
417
  if ($exportOptions['include_bom'])
418
  {
419
- file_put_contents($file_path, chr(0xEF).chr(0xBB).chr(0xBF).wp_all_export_remove_colons(substr($xml, 0, -8)));
420
  }
421
  else
422
  {
423
- file_put_contents($file_path, wp_all_export_remove_colons(substr($xml, 0, -8)));
424
  }
425
  }
 
 
 
 
426
 
427
  return $file_path;
428
 
@@ -432,21 +479,17 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
432
 
433
  if ( empty(PMXE_Plugin::$session->file) ){
434
 
435
- $is_secure_import = PMXE_Plugin::getInstance()->getOption('secure');
436
-
437
- $wp_uploads = wp_upload_dir();
438
-
439
- $target = $is_secure_import ? wp_all_export_secure_file($wp_uploads['basedir'] . DIRECTORY_SEPARATOR . PMXE_Plugin::UPLOADS_DIRECTORY) : $wp_uploads['path'];
440
-
441
- $export_file = $target . DIRECTORY_SEPARATOR . sanitize_file_name(preg_replace('%- \d{4}.*%', '', $exportOptions['friendly_name'])) . ' - ' . date("Y F d H_i") . '.' . $exportOptions['export_to'];
442
 
 
443
  if ($exportOptions['include_bom'])
444
  {
445
- file_put_contents($export_file, chr(0xEF).chr(0xBB).chr(0xBF).wp_all_export_remove_colons(substr($xmlWriter->flush(true), 0, -8)));
446
  }
447
  else
448
  {
449
- file_put_contents($export_file, wp_all_export_remove_colons(substr($xmlWriter->flush(true), 0, -8)));
450
  }
451
 
452
  PMXE_Plugin::$session->set('file', $export_file);
@@ -456,7 +499,7 @@ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cro
456
  }
457
  else
458
  {
459
- file_put_contents(PMXE_Plugin::$session->file, wp_all_export_remove_colons(substr(substr($xmlWriter->flush(true), 45), 0, -8)), FILE_APPEND);
460
  }
461
 
462
  return true;
1
  <?php
2
+ // Export XML helper
3
+ function pmxe_export_xml($exportQuery, $exportOptions, $preview = false, $is_cron = false, $file_path = false, $exported_by_cron = 0){
4
+
5
+ require_once PMXE_ROOT_DIR . '/classes/XMLWriter.php';
6
 
7
+ $xmlWriter = new PMXE_XMLWriter();
8
  $xmlWriter->openMemory();
9
  $xmlWriter->setIndent(true);
10
  $xmlWriter->setIndentString("\t");
11
  $xmlWriter->startDocument('1.0', $exportOptions['encoding']);
12
+ $xmlWriter->startElement($exportOptions['main_xml_tag']);
13
+
14
+ if ($is_cron)
15
+ {
16
+ if ( ! $exported_by_cron )
17
+ {
18
+ $additional_data = apply_filters('wp_all_export_additional_data', array(), $exportOptions);
19
+
20
+ if ( ! empty($additional_data))
21
+ {
22
+ foreach ($additional_data as $key => $value)
23
+ {
24
+ $xmlWriter->startElement(preg_replace('/[^a-z0-9_-]/i', '', $key));
25
+ $xmlWriter->writeCData($value);
26
+ $xmlWriter->endElement();
27
+ }
28
+ }
29
+ }
30
+ }
31
+ else
32
+ {
33
+
34
+ if ( empty(PMXE_Plugin::$session->file) ){
35
+
36
+ $additional_data = apply_filters('wp_all_export_additional_data', array(), $exportOptions);
37
+
38
+ if ( ! empty($additional_data))
39
+ {
40
+ foreach ($additional_data as $key => $value)
41
+ {
42
+ $xmlWriter->startElement(preg_replace('/[^a-z0-9_-]/i', '', $key));
43
+ $xmlWriter->writeCData($value);
44
+ $xmlWriter->endElement();
45
+ }
46
+ }
47
+ }
48
+ }
49
 
50
  global $wpdb;
51
 
53
 
54
  $exportQuery->the_post(); $record = get_post( get_the_ID() );
55
 
56
+ $xmlWriter->startElement($exportOptions['record_xml_tag']);
57
 
58
  if ($exportOptions['ids']):
59
 
70
  'post_id' => $record->ID,
71
  'import_id' => $exportOptions['import_id'],
72
  'unique_key' => $record->ID,
73
+ 'product_key' => $record->ID
74
  ))->save();
75
  }
76
  unset($postRecord);
82
 
83
  if (empty($exportOptions['cc_name'][$ID]) or empty($exportOptions['cc_type'][$ID])) continue;
84
 
85
+ $element_name_ns = '';
86
+ $element_name = ( ! empty($exportOptions['cc_name'][$ID]) ) ? preg_replace('/[^a-z0-9_:-]/i', '', $exportOptions['cc_name'][$ID]) : 'untitled_' . $ID;
87
  $fieldSnipped = ( ! empty($exportOptions['cc_php'][$ID]) and ! empty($exportOptions['cc_code'][$ID]) ) ? $exportOptions['cc_code'][$ID] : false;
88
 
89
+ if (strpos($element_name, ":") !== false)
90
+ {
91
+ $element_name_parts = explode(":", $element_name);
92
+ $element_name_ns = (empty($element_name_parts[0])) ? '' : $element_name_parts[0];
93
+ $element_name = (empty($element_name_parts[1])) ? 'untitled_' . $ID : preg_replace('/[^a-z0-9_-]/i', '', $element_name_parts[1]);
94
+ }
95
+
96
  switch ($exportOptions['cc_type'][$ID]) {
97
  case 'id':
98
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_post_id', pmxe_filter(get_the_ID(), $fieldSnipped), get_the_ID()));
99
  break;
100
  case 'permalink':
101
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_post_guid', pmxe_filter(get_permalink(), $fieldSnipped), get_the_ID()));
102
  break;
103
  case 'post_type':
104
  $pType = get_post_type();
105
  if ($pType == 'product_variation') $pType = 'product';
106
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_post_type', pmxe_filter($pType, $fieldSnipped), get_the_ID()));
107
  break;
108
  case 'title':
109
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
110
  $xmlWriter->writeCData(apply_filters('pmxe_post_title', pmxe_filter($record->post_title, $fieldSnipped) , get_the_ID()));
111
  $xmlWriter->endElement();
112
  break;
113
  case 'content':
114
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
115
  $xmlWriter->writeCData(apply_filters('pmxe_post_content', pmxe_filter($record->post_content, $fieldSnipped), get_the_ID()));
116
  $xmlWriter->endElement();
117
  break;
118
  case 'media':
119
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
120
 
121
  $attachment_ids = array();
122
 
206
  else{
207
  $post_date = date("Ymd", get_post_time('U', true));
208
  }
209
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_post_date', pmxe_filter($post_date, $fieldSnipped), get_the_ID()));
210
  break;
211
 
212
  case 'attachments':
213
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
214
  $attachment_imgs = get_posts( array(
215
  'post_type' => 'attachment',
216
  'posts_per_page' => -1,
232
  break;
233
 
234
  case 'parent':
235
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_post_parent', pmxe_filter($record->post_parent, $fieldSnipped), get_the_ID()));
236
  break;
237
 
238
  case 'comment_status':
239
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_comment_status', pmxe_filter($record->comment_status, $fieldSnipped), get_the_ID()));
240
  break;
241
 
242
  case 'ping_status':
243
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_ping_status', pmxe_filter($record->ping_status, $fieldSnipped), get_the_ID()));
244
  break;
245
 
246
  case 'template':
247
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_post_template', pmxe_filter(get_post_meta($record->ID, '_wp_page_template', true), $fieldSnipped), get_the_ID()));
248
  break;
249
 
250
  case 'order':
251
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_menu_order', pmxe_filter($record->menu_order, $fieldSnipped), get_the_ID()));
252
  break;
253
 
254
  case 'status':
255
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_post_status', pmxe_filter($record->post_status, $fieldSnipped), get_the_ID()));
256
  break;
257
 
258
  case 'format':
259
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_post_format', pmxe_filter(get_post_format($record->ID), $fieldSnipped), get_the_ID()));
260
  break;
261
 
262
  case 'author':
263
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_post_author', pmxe_filter($record->post_author, $fieldSnipped), get_the_ID()));
264
  break;
265
 
266
  case 'slug':
267
+ $xmlWriter->putElement($element_name_ns, $element_name, null, apply_filters('pmxe_post_slug', pmxe_filter($record->post_name, $fieldSnipped), get_the_ID()));
268
  break;
269
 
270
  case 'excerpt':
271
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
272
  $xmlWriter->writeCData(apply_filters('pmxe_post_excerpt', pmxe_filter($record->post_excerpt, $fieldSnipped) , get_the_ID()));
273
  $xmlWriter->endElement();
274
  break;
278
  $cur_meta_values = get_post_meta($record->ID, $exportOptions['cc_value'][$ID]);
279
  if (!empty($cur_meta_values) and is_array($cur_meta_values)){
280
  foreach ($cur_meta_values as $key => $cur_meta_value) {
281
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
282
  $xmlWriter->writeCData(apply_filters('pmxe_custom_field', pmxe_filter(maybe_serialize($cur_meta_value), $fieldSnipped), $exportOptions['cc_value'][$ID], get_the_ID()));
283
  $xmlWriter->endElement();
284
  }
285
  }
286
 
287
  if (empty($cur_meta_values)){
288
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
289
  $xmlWriter->writeCData(apply_filters('pmxe_custom_field', pmxe_filter('', $fieldSnipped), $exportOptions['cc_value'][$ID], get_the_ID()));
290
  $xmlWriter->endElement();
291
  }
301
 
302
  $field_options = unserialize($exportOptions['cc_options'][$ID]);
303
 
304
+ pmxe_export_acf_field_xml($field_value, $exportOptions, $ID, $record->ID, $xmlWriter, $element_name, $element_name_ns, $fieldSnipped, $field_options['group_id']);
305
 
306
  }
307
 
338
  foreach ($txes_list as $t) {
339
  $attr_new[] = $t->name;
340
  }
341
+ $xmlWriter->beginElement($element_name_ns, $is_variable_product ? $element_name : 'attribute_' . $element_name, null);
342
  $xmlWriter->writeCData(apply_filters('pmxe_woo_attribute', pmxe_filter(implode('|', $attr_new), $fieldSnipped), get_the_ID()));
343
  $xmlWriter->endElement();
344
  endif;
347
  else{
348
  $attribute_pa = get_post_meta($record->ID, 'attribute_' . $exportOptions['cc_value'][$ID], true);
349
  if ( ! empty($attribute_pa)){
350
+ $xmlWriter->beginElement($element_name_ns, 'attribute_' . $element_name, null);
351
  $xmlWriter->writeCData(apply_filters('woo_field', $attribute_pa));
352
  $xmlWriter->endElement();
353
  }
359
  {
360
  if ($exportOptions['cc_label'][$ID] == 'product_type' and get_post_type() == 'product_variation')
361
  {
362
+ $xmlWriter->writeElement('parent_id', $record->post_parent);
363
  $xmlWriter->writeElement($element_name, 'variable');
364
  }
365
  else
397
 
398
  if ( ! empty($hierarchy_groups) ){
399
 
400
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
401
  $xmlWriter->writeCData(apply_filters('pmxe_post_taxonomy', pmxe_filter(implode('|', $hierarchy_groups), $fieldSnipped), get_the_ID()));
402
  $xmlWriter->endElement();
403
 
423
  $val = eval('return ' . stripcslashes(str_replace("%%VALUE%%", $val, $exportOptions['cc_code'][$ID])) . ';');
424
  }
425
  }
426
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
427
  $xmlWriter->writeCData(apply_filters('pmxe_sql_field', $val, $element_name, get_the_ID()));
428
  $xmlWriter->endElement();
429
  }
441
 
442
  if ($preview) break;
443
 
444
+ do_action('pmxe_exported_post', $record->ID );
445
+
446
  endwhile;
447
+
448
  $xmlWriter->endElement(); // end data
449
 
450
+ if ($preview) return $xmlWriter->flush(true);//wp_all_export_remove_colons($xmlWriter->flush(true));
451
 
452
  if ($is_cron)
453
  {
454
 
455
  $xml = $xmlWriter->flush(true);
456
+
457
+ if ( ! $exported_by_cron )
458
  {
459
+ // The BOM will help some programs like Microsoft Excel read your export file if it includes non-English characters.
 
 
 
 
460
  if ($exportOptions['include_bom'])
461
  {
462
+ file_put_contents($file_path, chr(0xEF).chr(0xBB).chr(0xBF).substr($xml, 0, (strlen($exportOptions['main_xml_tag']) + 4) * (-1)));
463
  }
464
  else
465
  {
466
+ file_put_contents($file_path, substr($xml, 0, (strlen($exportOptions['main_xml_tag']) + 4) * (-1)));
467
  }
468
  }
469
+ else
470
+ {
471
+ file_put_contents($file_path, substr(substr($xml, 41 + strlen($exportOptions['main_xml_tag'])), 0, (strlen($exportOptions['main_xml_tag']) + 4) * (-1)), FILE_APPEND);
472
+ }
473
 
474
  return $file_path;
475
 
479
 
480
  if ( empty(PMXE_Plugin::$session->file) ){
481
 
482
+ // generate export file name
483
+ $export_file = wp_all_export_generate_export_file( XmlExportEngine::$exportID );
 
 
 
 
 
484
 
485
+ // The BOM will help some programs like Microsoft Excel read your export file if it includes non-English characters.
486
  if ($exportOptions['include_bom'])
487
  {
488
+ file_put_contents($export_file, chr(0xEF).chr(0xBB).chr(0xBF).substr($xmlWriter->flush(true), 0, (strlen($exportOptions['main_xml_tag']) + 4) * (-1)));
489
  }
490
  else
491
  {
492
+ file_put_contents($export_file, substr($xmlWriter->flush(true), 0, (strlen($exportOptions['main_xml_tag']) + 4) * (-1)));
493
  }
494
 
495
  PMXE_Plugin::$session->set('file', $export_file);
499
  }
500
  else
501
  {
502
+ file_put_contents(PMXE_Plugin::$session->file, substr(substr($xmlWriter->flush(true), 41 + strlen($exportOptions['main_xml_tag'])), 0, (strlen($exportOptions['main_xml_tag']) + 4) * (-1)), FILE_APPEND);
503
  }
504
 
505
  return true;
helpers/wp_all_export_generate_export_file.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! function_exists('wp_all_export_generate_export_file') )
3
+ {
4
+ function wp_all_export_generate_export_file( $export_id )
5
+ {
6
+ $is_secure_import = PMXE_Plugin::getInstance()->getOption('secure');
7
+
8
+ $wp_uploads = wp_upload_dir();
9
+
10
+ $target = $is_secure_import ? wp_all_export_secure_file($wp_uploads['basedir'] . DIRECTORY_SEPARATOR . PMXE_Plugin::UPLOADS_DIRECTORY, $export_id ) : $wp_uploads['path'];
11
+
12
+ $export = new PMXE_Export_Record();
13
+
14
+ $export->getById( $export_id );
15
+
16
+ if ( ! $export->isEmpty() and $export->options['creata_a_new_export_file'] )
17
+ {
18
+ $export_file_name = sanitize_file_name($export->options['friendly_name']) . ' - ' . ($export->iteration + 1) . '.' . $export->options['export_to'];
19
+ }
20
+ else
21
+ {
22
+ $export_file_name = sanitize_file_name($export->options['friendly_name']) . '.' . $export->options['export_to'];
23
+ }
24
+
25
+ return $target . DIRECTORY_SEPARATOR . $export_file_name;
26
+ }
27
+ }
helpers/wp_all_export_prepare_template_csv.php CHANGED
@@ -66,7 +66,8 @@ function wp_all_export_prepare_template_csv($exportOptions, &$templateOptions)
66
  );
67
  }
68
 
69
- $cf_list[] = $exportOptions['cc_label'][$ID];
 
70
  switch ($exportOptions['cc_label'][$ID]) {
71
  case '_visibility':
72
  $templateOptions['is_product_visibility'] = 'xpath';
@@ -85,11 +86,15 @@ function wp_all_export_prepare_template_csv($exportOptions, &$templateOptions)
85
  $templateOptions['single_product_virtual'] = '{'. $element_name .'[1]}';
86
  break;
87
  case '_price':
 
 
88
  case '_regular_price':
89
  $templateOptions['single_product_regular_price'] = '{'. $element_name .'[1]}';
 
90
  break;
91
  case '_sale_price':
92
  $templateOptions['single_product_sale_price'] = '{'. $element_name .'[1]}';
 
93
  break;
94
  case '_purchase_note':
95
  $templateOptions['single_product_purchase_note'] = '{'. $element_name .'[1]}';
@@ -112,7 +117,7 @@ function wp_all_export_prepare_template_csv($exportOptions, &$templateOptions)
112
  break;
113
  case '_sku':
114
  $templateOptions['single_product_sku'] = '{'. $element_name .'[1]}';
115
- $templateOptions['single_product_parent_id'] = '{parent_sku[1]}';
116
  break;
117
  case '_sale_price_dates_from':
118
  $templateOptions['single_sale_price_dates_from'] = '{'. $element_name .'[1]}';
66
  );
67
  }
68
 
69
+ if ( ! in_array($exportOptions['cc_label'][$ID], $cf_list)) $cf_list[] = $exportOptions['cc_label'][$ID];
70
+
71
  switch ($exportOptions['cc_label'][$ID]) {
72
  case '_visibility':
73
  $templateOptions['is_product_visibility'] = 'xpath';
86
  $templateOptions['single_product_virtual'] = '{'. $element_name .'[1]}';
87
  break;
88
  case '_price':
89
+ $templateOptions['single_product_regular_price'] = '{'. $element_name .'[1]}';
90
+ break;
91
  case '_regular_price':
92
  $templateOptions['single_product_regular_price'] = '{'. $element_name .'[1]}';
93
+ if ( ! in_array('_price', $cf_list)) $cf_list[] = '_price';
94
  break;
95
  case '_sale_price':
96
  $templateOptions['single_product_sale_price'] = '{'. $element_name .'[1]}';
97
+ if ( ! in_array('_price', $cf_list)) $cf_list[] = '_price';
98
  break;
99
  case '_purchase_note':
100
  $templateOptions['single_product_purchase_note'] = '{'. $element_name .'[1]}';
117
  break;
118
  case '_sku':
119
  $templateOptions['single_product_sku'] = '{'. $element_name .'[1]}';
120
+ $templateOptions['single_product_parent_id'] = '{parent_id[1]}';
121
  break;
122
  case '_sale_price_dates_from':
123
  $templateOptions['single_sale_price_dates_from'] = '{'. $element_name .'[1]}';
helpers/wp_all_export_prepare_template_xml.php CHANGED
@@ -12,7 +12,7 @@ function wp_all_export_prepare_template_xml($exportOptions, &$templateOptions)
12
  $acf_list = array();
13
  foreach ($exportOptions['ids'] as $ID => $value) {
14
  if (empty($exportOptions['cc_type'][$ID])) continue;
15
- $element_name = (!empty($exportOptions['cc_name'][$ID])) ? preg_replace('/[^a-z0-9_-]/i', '', $exportOptions['cc_name'][$ID]) : 'untitled_' . $ID;
16
  switch ($exportOptions['cc_type'][$ID]) {
17
  case 'id':
18
  $templateOptions['unique_key'] = '{'. $element_name .'[1]}';
@@ -63,8 +63,9 @@ function wp_all_export_prepare_template_xml($exportOptions, &$templateOptions)
63
  'url' => 'http://www.wpallimport.com/woocommerce-product-import/'
64
  );
65
  }
 
 
66
 
67
- $cf_list[] = $exportOptions['cc_label'][$ID];
68
  switch ($exportOptions['cc_label'][$ID]) {
69
  case '_visibility':
70
  $templateOptions['is_product_visibility'] = 'xpath';
@@ -83,11 +84,15 @@ function wp_all_export_prepare_template_xml($exportOptions, &$templateOptions)
83
  $templateOptions['single_product_virtual'] = '{'. $element_name .'[1]}';
84
  break;
85
  case '_price':
 
 
86
  case '_regular_price':
87
  $templateOptions['single_product_regular_price'] = '{'. $element_name .'[1]}';
 
88
  break;
89
  case '_sale_price':
90
  $templateOptions['single_product_sale_price'] = '{'. $element_name .'[1]}';
 
91
  break;
92
  case '_purchase_note':
93
  $templateOptions['single_product_purchase_note'] = '{'. $element_name .'[1]}';
@@ -110,7 +115,7 @@ function wp_all_export_prepare_template_xml($exportOptions, &$templateOptions)
110
  break;
111
  case '_sku':
112
  $templateOptions['single_product_sku'] = '{'. $element_name .'[1]}';
113
- $templateOptions['single_product_parent_id'] = '{parent_sku[1]}';
114
  break;
115
  case '_sale_price_dates_from':
116
  $templateOptions['single_sale_price_dates_from'] = '{'. $element_name .'[1]}';
12
  $acf_list = array();
13
  foreach ($exportOptions['ids'] as $ID => $value) {
14
  if (empty($exportOptions['cc_type'][$ID])) continue;
15
+ $element_name = (!empty($exportOptions['cc_name'][$ID])) ? str_replace(':', '_', preg_replace('/[^a-z0-9_:-]/i', '', $exportOptions['cc_name'][$ID])) : 'untitled_' . $ID;
16
  switch ($exportOptions['cc_type'][$ID]) {
17
  case 'id':
18
  $templateOptions['unique_key'] = '{'. $element_name .'[1]}';
63
  'url' => 'http://www.wpallimport.com/woocommerce-product-import/'
64
  );
65
  }
66
+
67
+ if ( ! in_array($exportOptions['cc_label'][$ID], $cf_list)) $cf_list[] = $exportOptions['cc_label'][$ID];
68
 
 
69
  switch ($exportOptions['cc_label'][$ID]) {
70
  case '_visibility':
71
  $templateOptions['is_product_visibility'] = 'xpath';
84
  $templateOptions['single_product_virtual'] = '{'. $element_name .'[1]}';
85
  break;
86
  case '_price':
87
+ $templateOptions['single_product_regular_price'] = '{'. $element_name .'[1]}';
88
+ break;
89
  case '_regular_price':
90
  $templateOptions['single_product_regular_price'] = '{'. $element_name .'[1]}';
91
+ if ( ! in_array('_price', $cf_list)) $cf_list[] = '_price';
92
  break;
93
  case '_sale_price':
94
  $templateOptions['single_product_sale_price'] = '{'. $element_name .'[1]}';
95
+ if ( ! in_array('_price', $cf_list)) $cf_list[] = '_price';
96
  break;
97
  case '_purchase_note':
98
  $templateOptions['single_product_purchase_note'] = '{'. $element_name .'[1]}';
115
  break;
116
  case '_sku':
117
  $templateOptions['single_product_sku'] = '{'. $element_name .'[1]}';
118
+ $templateOptions['single_product_parent_id'] = '{parent_id[1]}';
119
  break;
120
  case '_sale_price_dates_from':
121
  $templateOptions['single_sale_price_dates_from'] = '{'. $element_name .'[1]}';
helpers/wp_all_export_rand_char.php CHANGED
@@ -2,10 +2,15 @@
2
  if ( ! function_exists('wp_all_export_rand_char')){
3
 
4
  function wp_all_export_rand_char($length) {
5
- $random = '';
6
- for ($i = 0; $i < $length; $i++) {
7
- $random .= chr(mt_rand(33, 126));
8
- }
9
- return $random;
 
 
 
 
 
10
  }
11
  }
2
  if ( ! function_exists('wp_all_export_rand_char')){
3
 
4
  function wp_all_export_rand_char($length) {
5
+
6
+ $random = '';
7
+
8
+ do
9
+ {
10
+ $random .= str_replace(array('-', '_'), '', wp_all_export_url_title(chr(mt_rand(33, 126))));
11
+ }
12
+ while (strlen($random) < $length);
13
+
14
+ return $random;
15
  }
16
  }
i18n/languages/wp_all_export_plugin-de_DE.mo ADDED
Binary file
i18n/languages/wp_all_export_plugin-de_DE.po ADDED
@@ -0,0 +1,1735 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: WP All Export Pro\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: Mon Nov 09 2015 10:39:03 GMT+0200 (EET)\n"
6
+ "PO-Revision-Date: 2015-11-13 11:18+0200\n"
7
+ "Last-Translator: admin <makstsiplyskov@gmail.loc>\n"
8
+ "Language-Team: \n"
9
+ "Language: de\n"
10
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
11
+ "MIME-Version: 1.0\n"
12
+ "Content-Type: text/plain; charset=UTF-8\n"
13
+ "Content-Transfer-Encoding: 8bit\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Poedit-Basepath: .\n"
16
+ "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;__:1;"
17
+ "_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;_x:1,2c;"
18
+ "_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;esc_attr__:1;"
19
+ "esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;esc_html_x:1,2c;"
20
+ "comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
21
+ "X-Loco-Target-Locale: de_DE\n"
22
+ "X-Generator: Poedit 1.8.4\n"
23
+ "X-Poedit-SearchPath-0: ../..\n"
24
+
25
+ #. Name of the plugin
26
+ msgid "WP All Export Pro"
27
+ msgstr "WP All Export Pro"
28
+
29
+ #. URI of the plugin
30
+ msgid "http://www.wpallimport.com/export"
31
+ msgstr "http://www.wpallimport.com/export"
32
+
33
+ #. Description of the plugin
34
+ msgid ""
35
+ "Export any post type to a CSV or XML file. Edit the exported data, and then re-"
36
+ "import it later using WP All Import."
37
+ msgstr ""
38
+ "Exportiere jeden post typ in eine CSV oder XML Datei. Editiere die exportierten "
39
+ "Daten und importieren Sie sie später mit WP All Import."
40
+
41
+ #. Author of the plugin
42
+ msgid "Soflyy"
43
+ msgstr "Soflyy"
44
+
45
+ #: ../../wp-all-export-pro.php:30
46
+ msgid ""
47
+ "Please de-activate and remove the free version of the WP All Export before "
48
+ "activating the paid version."
49
+ msgstr ""
50
+ "Bitte deaktivieren und entfernen Sie die freie Version von WP All Export bevor Sie "
51
+ "die bezahlte Version aktivieren."
52
+
53
+ #: ../../wp-all-export-pro.php:321 ../../wp-all-export-pro.php:325
54
+ #, php-format
55
+ msgid "Uploads folder %s must be writable"
56
+ msgstr "Uploads Ordner%s muss schreibbar sein"
57
+
58
+ #: ../../actions/admin_menu.php:11 ../../actions/admin_menu.php:14 ../..
59
+ #: /actions/admin_menu.php:15 ../../actions/admin_menu.php:16
60
+ #: /actions/admin_menu.php:17 ../../models/export/record.php:528
61
+ #: /views/admin/export/index.php:9 ../../views/admin/export/options.php:15
62
+ #: /views/admin/export/process.php:9 ../../views/admin/export/template.php:7
63
+ #: /views/admin/manage/index.php:4 ../../views/admin/manage/update.php:25
64
+ #: /views/admin/settings/index.php:6
65
+ msgid "WP All Export"
66
+ msgstr "WP All Export"
67
+
68
+ #: ../../actions/admin_menu.php:11
69
+ msgid "All Export"
70
+ msgstr "All Export"
71
+
72
+ #: ../../actions/admin_menu.php:14
73
+ msgid "Export to XML"
74
+ msgstr "Export zu XML"
75
+
76
+ #: ../../actions/admin_menu.php:14
77
+ msgid "New Export"
78
+ msgstr "Neuer Export"
79
+
80
+ #: ../../actions/admin_menu.php:15 ../.. /views/admin/export/process.php:57
81
+ #: ../../views/admin/manage/index.php:5
82
+ msgid "Manage Exports"
83
+ msgstr "Exports Verwalten"
84
+
85
+ #: ../../actions/admin_menu.php:16 ../.. /views/admin/settings/index.php:7
86
+ msgid "Settings"
87
+ msgstr "Einstellungen"
88
+
89
+ #: ../../actions/admin_menu.php:17
90
+ msgid "Feedback"
91
+ msgstr "Feedback"
92
+
93
+ #: ../../actions/init.php:19 ../../actions/init.php:25
94
+ msgid "Error. Incorrect API key, check the WP All Export Pro settings page."
95
+ msgstr ""
96
+ "Fehler. Falscher API Schlüssel, bitte kontrollieren Sie die WP All Export Pro "
97
+ "Einstellungen."
98
+
99
+ #: ../../actions/wp_ajax_export_available_rules.php:6 ../..
100
+ #: /actions/wp_ajax_export_available_rules.php:10
101
+ #: /actions/wp_ajax_export_filtering.php:6 ../../actions/wp_ajax_export_filtering.
102
+ #: php:10 ../../actions/wp_ajax_export_filtering_count.php:6
103
+ #: /actions/wp_ajax_export_filtering_count.php:10
104
+ #: /actions/wp_ajax_export_preview.php:8 ../../actions/wp_ajax_export_preview.php:12
105
+ #: ../../actions/wp_ajax_generate_zapier_api_key.php:6
106
+ #: /actions/wp_ajax_generate_zapier_api_key.php:10
107
+ #: /actions/wp_ajax_save_functions.php:6 ../../actions/wp_ajax_save_functions.php:10
108
+ #: ../../actions/wp_ajax_wpallexport.php:8 ../../actions/wp_ajax_wpallexport. php:12
109
+ #: ../../controllers/controller.php:117 ../../controllers/admin/manage.php:290
110
+ #: ../../controllers/admin/manage.php:325 406 ../../controllers/admin/manage.php:459
111
+ msgid "Security check"
112
+ msgstr "Sicherheitskontrolle"
113
+
114
+ #: ../../actions/wp_ajax_export_available_rules.php:21 ../..
115
+ #: /actions/wp_ajax_export_filtering.php:50 ../../views/admin/export/options.php:92
116
+ #: ../../views/admin/manage/update.php:100
117
+ msgid "Select Rule"
118
+ msgstr "Wähle Regel"
119
+
120
+ #: ../../actions/wp_ajax_export_available_rules.php:38 ../..
121
+ #: /actions/wp_ajax_export_available_rules.php:54
122
+ msgid "equals"
123
+ msgstr "gleich"
124
+
125
+ #: ../../actions/wp_ajax_export_available_rules.php:39 ../..
126
+ #: /actions/wp_ajax_export_available_rules.php:55
127
+ msgid "doesn't equal"
128
+ msgstr "nicht gleich"
129
+
130
+ #: ../../actions/wp_ajax_export_available_rules.php:40
131
+ msgid "newer than"
132
+ msgstr "neuer als"
133
+
134
+ #: ../../actions/wp_ajax_export_available_rules.php:41
135
+ msgid "equal to or newer than"
136
+ msgstr "gleich oder neuer als"
137
+
138
+ #: ../../actions/wp_ajax_export_available_rules.php:42
139
+ msgid "older than"
140
+ msgstr "älter als"
141
+
142
+ #: ../../actions/wp_ajax_export_available_rules.php:43
143
+ msgid "equal to or older than"
144
+ msgstr "gleich oder älter als"
145
+
146
+ #: ../../actions/wp_ajax_export_available_rules.php:45 ../..
147
+ #: /actions/wp_ajax_export_available_rules.php:61
148
+ msgid "contains"
149
+ msgstr "beinhaltet"
150
+
151
+ #: ../../actions/wp_ajax_export_available_rules.php:46 ../..
152
+ #: /actions/wp_ajax_export_available_rules.php:62
153
+ msgid "doesn't contain"
154
+ msgstr "beinhaltet nicht"
155
+
156
+ #: ../../actions/wp_ajax_export_available_rules.php:47 ../..
157
+ #: /actions/wp_ajax_export_available_rules.php:63
158
+ msgid "is empty"
159
+ msgstr "ist leer"
160
+
161
+ #: ../../actions/wp_ajax_export_available_rules.php:48 ../..
162
+ #: /actions/wp_ajax_export_available_rules.php:64
163
+ msgid "is not empty"
164
+ msgstr "ist nicht leer"
165
+
166
+ #: ../../actions/wp_ajax_export_available_rules.php:56
167
+ msgid "greater than"
168
+ msgstr "größer als"
169
+
170
+ #: ../../actions/wp_ajax_export_available_rules.php:57
171
+ msgid "equal to or greater than"
172
+ msgstr "gleich oder größer als"
173
+
174
+ #: ../../actions/wp_ajax_export_available_rules.php:58
175
+ msgid "less than"
176
+ msgstr "weniger als"
177
+
178
+ #: ../../actions/wp_ajax_export_available_rules.php:59
179
+ msgid "equal to or less than"
180
+ msgstr "gleich oder weniger als"
181
+
182
+ #: ../../actions/wp_ajax_export_filtering.php:30
183
+ msgid "Add Filtering Options"
184
+ msgstr "Füge Filteroptionen hinzu"
185
+
186
+ #: ../../actions/wp_ajax_export_filtering.php:36 ../../views/admin/export/options.
187
+ #: php:78 ../../views/admin/manage/update.php:86
188
+ msgid "Element"
189
+ msgstr "Element"
190
+
191
+ #: ../../actions/wp_ajax_export_filtering.php:37 ../../views/admin/export/options.
192
+ #: php:79 ../../views/admin/manage/update.php:87
193
+ msgid "Rule"
194
+ msgstr "Regel"
195
+
196
+ #: ../../actions/wp_ajax_export_filtering.php:38 ../../views/admin/export/options.
197
+ #: php:80 ../../views/admin/manage/update.php:88
198
+ msgid "Value"
199
+ msgstr "Wert"
200
+
201
+ #: ../../actions/wp_ajax_export_filtering.php:44 ../../views/admin/export/options.
202
+ #: php:86 ../../views/admin/manage/update.php:94
203
+ msgid "Select Element"
204
+ msgstr "Wähle Element"
205
+
206
+ #: ../../actions/wp_ajax_export_filtering.php:57 ../../views/admin/export/options.
207
+ #: php:99 ../../views/admin/manage/update.php:107
208
+ msgid "Add Rule"
209
+ msgstr "Regel hinzufügen"
210
+
211
+ #: ../../actions/wp_ajax_export_filtering.php:69 ../../views/admin/export/options.
212
+ #: php:112 ../../views/admin/manage/update.php:120
213
+ msgid ""
214
+ "No filtering options. Add filtering options to only export records matching some "
215
+ "specified criteria."
216
+ msgstr ""
217
+ "Keine Filteroptionen. Fügen Sie Filteroptionen hinzu um nur Datensätze zu "
218
+ "exportieren die bestimmte Kriterien erfüllen."
219
+
220
+ #: ../../actions/wp_ajax_export_filtering.php:106
221
+ msgid "Apply Filters To Export Data"
222
+ msgstr "Wende Filter für Datenexport an"
223
+
224
+ #: ../../actions/wp_ajax_export_filtering.php:114 ../..
225
+ #: /views/admin/export/options.php:159 ../../views/admin/manage/update.php:167
226
+ msgid "Variable product matching rules: "
227
+ msgstr "Regeln zu Übereinstimmung bei Variablen Produkten:"
228
+
229
+ #: ../../actions/wp_ajax_export_filtering.php:116 ../..
230
+ #: /views/admin/export/options.php:161 ../../views/admin/manage/update.php:169
231
+ msgid "Strict"
232
+ msgstr "Streng"
233
+
234
+ #: ../../actions/wp_ajax_export_filtering.php:117 ../..
235
+ #: /views/admin/export/options.php:162 ../../views/admin/manage/update.php:170
236
+ msgid "Permissive"
237
+ msgstr "Großzügig"
238
+
239
+ #: ../../actions/wp_ajax_export_filtering.php:119 ../..
240
+ #: /views/admin/export/options.php:164 ../../views/admin/manage/update.php:172
241
+ msgid ""
242
+ "Strict matching requires all variations to pass in order for the product to be "
243
+ "exported. Permissive matching allows the product to be exported if any of the "
244
+ "variations pass."
245
+ msgstr ""
246
+ "Bei strenger Übereinstimmung müssen alle Variationen des Produkts für den Export "
247
+ "übereinstimmen. Bei der großzügigen Übereinstimmung muss nur eine Variation "
248
+ "übereinstimmen."
249
+
250
+ #: ../../actions/wp_ajax_export_filtering_count.php:83 ../..
251
+ #: /views/admin/export/options.php:43 ../../views/admin/manage/update.php:54
252
+ msgid "Your export is ready to run."
253
+ msgstr "Ihr Export ist bereit zum Start."
254
+
255
+ #: ../../actions/wp_ajax_export_filtering_count.php:84 ../..
256
+ #: /views/admin/export/options.php:45 ../../views/admin/manage/update.php:55
257
+ #, php-format
258
+ msgid "WP All Export will export %d %s."
259
+ msgstr "WP All Export wird folgende exportieren %d %s."
260
+
261
+ #: ../../actions/wp_ajax_export_filtering_count.php:87 ../..
262
+ #: /actions/wp_ajax_export_filtering_count.php:90 ../../views/admin/manage/update.
263
+ #: php:51
264
+ msgid "Nothing to export."
265
+ msgstr "Nichts zu exportieren"
266
+
267
+ #: ../../actions/wp_ajax_export_filtering_count.php:88
268
+ #, php-format
269
+ msgid "All %s have already been exported."
270
+ msgstr "Alle %s wurden bereits exportiert."
271
+
272
+ #: ../../actions/wp_ajax_export_filtering_count.php:91 ../..
273
+ #: /actions/wp_ajax_export_filtering_count.php:105 /views/admin/manage/update.php:52
274
+ #, php-format
275
+ msgid "No matching %s found for selected filter rules."
276
+ msgstr "Keine Übereinstimmung %s gefunden für die gewählten Filterregeln."
277
+
278
+ #: ../../actions/wp_ajax_export_filtering_count.php:103
279
+ msgid "Continue to Step 2 to choose data to include in the export file."
280
+ msgstr "Weiter zu Schritt 2 um die Daten für die Exportdatei zu wählen."
281
+
282
+ #: ../../actions/wp_ajax_export_preview.php:125
283
+ msgid "Data not found."
284
+ msgstr "Dateien nicht gefunden"
285
+
286
+ #: ../../actions/wp_ajax_export_preview.php:134
287
+ msgid "This format is not supported."
288
+ msgstr "Dieses Format wird nicht unterstützt."
289
+
290
+ #: ../../actions/wp_ajax_save_functions.php:43
291
+ msgid "PHP code must be wrapped in \"&lt;?php\" and \"?&gt;\""
292
+ msgstr "PHP code muss eingepackt werden in \"&lt;?php\" und \"?&gt;\""
293
+
294
+ #: ../../actions/wp_ajax_save_functions.php:52
295
+ msgid "File has been successfully updated."
296
+ msgstr "Datei wurde erfolgreich aktualisiert."
297
+
298
+ #: ../../actions/wp_ajax_wpallexport.php:29
299
+ msgid "Export is not defined."
300
+ msgstr "Export ist nicht definiert."
301
+
302
+ #: ../../actions/wp_loaded.php:84 ../../actions/wp_loaded.php:137
303
+ #, php-format
304
+ msgid "Export #%s is currently in manually process. Request skipped."
305
+ msgstr "Export #%s ist zur Zeit im manuellen Prozess. Anfrage übersprungen."
306
+
307
+ #: ../../actions/wp_loaded.php:97
308
+ #, php-format
309
+ msgid "#%s Cron job triggered."
310
+ msgstr "#%s Cron Job ausgelöst"
311
+
312
+ #: ../../actions/wp_loaded.php:104
313
+ #, php-format
314
+ msgid "Export #%s currently in process. Request skipped."
315
+ msgstr "Export #%s ist zur Zeit in Prozess. Anfrage übersprungen."
316
+
317
+ #: ../../actions/wp_loaded.php:111
318
+ #, php-format
319
+ msgid "Export #%s already triggered. Request skipped."
320
+ msgstr "Export #%s bereits ausgelöst. Anfrage übersprungen."
321
+
322
+ #: ../../actions/wp_loaded.php:130
323
+ #, php-format
324
+ msgid "Export #%s is not triggered. Request skipped."
325
+ msgstr "Export #%s nicht ausgelöst. Anfrage übersprungen."
326
+
327
+ #: ../../actions/wp_loaded.php:148
328
+ #, php-format
329
+ msgid "Export #%s complete"
330
+ msgstr "Export #%s Fertiggestellt."
331
+
332
+ #: ../../actions/wp_loaded.php:155
333
+ #, php-format
334
+ msgid "Records Processed %s."
335
+ msgstr "Datensätze bearbeitet %s."
336
+
337
+ #: ../../actions/wp_loaded.php:164
338
+ #, php-format
339
+ msgid "Export #%s already processing. Request skipped."
340
+ msgstr "Export #%s bereits in Bearbeitung. Anfrage übersprungen."
341
+
342
+ #: ../../actions/wp_loaded.php:209
343
+ msgid "File doesn't exist"
344
+ msgstr "Datei existiert nicht"
345
+
346
+ #: ../../actions/wp_loaded.php:218
347
+ msgid "Export hash is not valid."
348
+ msgstr "Export hash ist nicht gültig."
349
+
350
+ #: ../../classes/updater.php:238
351
+ #, php-format
352
+ msgid ""
353
+ "There is a new version of %1$s available. <a target=\"_blank\" class=\"thickbox\" "
354
+ "href=\"%2$s\">View version %3$s details</a>."
355
+ msgstr ""
356
+ "Eine neue Version von %1$s ist verfügbar. <a target=\"_blank\" class=\"thickbox\" "
357
+ "href=\"%2$s\">Details ansehen von %3$s</a>."
358
+
359
+ #: ../../classes/updater.php:245
360
+ #, php-format
361
+ msgid ""
362
+ "There is a new version of %1$s available. <a target=\"_blank\" class=\"thickbox\" "
363
+ "href=\"%2$s\">View version %3$s details</a> or <a href=\"%4$s\">update now</a>."
364
+ msgstr ""
365
+ "Eine neue Version von %1$s ist verfügbar. <a target=\"_blank\" class=\"thickbox\" "
366
+ "href=\"%2$s\">Details ansehen von %3$s</a> oder <a href=\"%4$s\">jetzt "
367
+ "aktualisieren</a>."
368
+
369
+ #: ../../classes/updater.php:428
370
+ msgid "You do not have permission to install plugin updates"
371
+ msgstr "Sie haben keine Berechtigung um plugin Aktualisierungen durchzuführen."
372
+
373
+ #: ../../classes/updater.php:428
374
+ msgid "Error"
375
+ msgstr "Fehler"
376
+
377
+ #: ../../controllers/admin/export.php:221
378
+ msgid "You haven't selected any columns for export."
379
+ msgstr "Die haben keine Spalten für den Export gewählt."
380
+
381
+ #: ../../controllers/admin/export.php:225
382
+ msgid "CSV delimiter must be specified."
383
+ msgstr "Setze Beschränkung für CSV Felder:"
384
+
385
+ #: ../../controllers/admin/export.php:250 ../../controllers/admin/export.php:349 .
386
+ #: ../controllers/admin/manage.php:226
387
+ msgid "Options updated"
388
+ msgstr "Optionen Aktualisiert"
389
+
390
+ #: ../../controllers/admin/export.php:300 ../../controllers/admin/manage.php:182
391
+ msgid "Main XML Tag is required."
392
+ msgstr "Haupt XML Tag wird benötigt."
393
+
394
+ #: ../../controllers/admin/export.php:305 ../../controllers/admin/manage.php:187
395
+ msgid "Single Record XML Tag is required."
396
+ msgstr "Einzelner Datensatz XML Tag wird benötigt."
397
+
398
+ #: ../../controllers/admin/export.php:309 ../../controllers/admin/manage.php:191
399
+ msgid "Main XML Tag equals to Single Record XML Tag."
400
+ msgstr "Haupt XML Tag ist gleich mit einzelnem Datensatz XML Tag."
401
+
402
+ #: ../../controllers/admin/manage.php:56
403
+ msgid "&laquo;"
404
+ msgstr "&laquo;"
405
+
406
+ #: ../../controllers/admin/manage.php:57
407
+ msgid "&raquo;"
408
+ msgstr "&raquo;"
409
+
410
+ #: ../../controllers/admin/manage.php:153 ../../views/admin/manage/index.php:300
411
+ msgid "Export canceled"
412
+ msgstr "Export abgebrochen "
413
+
414
+ #: ../../controllers/admin/manage.php:254
415
+ msgid "Export deleted"
416
+ msgstr "Export gelöscht"
417
+
418
+ #: ../../controllers/admin/manage.php:282
419
+ #, php-format
420
+ msgid "%d %s deleted"
421
+ msgstr "%d %s gelöscht"
422
+
423
+ #: ../../controllers/admin/manage.php:282 ../../views/admin/manage/bulk.php:10
424
+ msgid "export"
425
+ msgid_plural "exports"
426
+ msgstr[0] "Export"
427
+ msgstr[1] "Exporte"
428
+
429
+ #: ../../controllers/admin/manage.php:376
430
+ msgid ""
431
+ "The other two files in this zip are the export file containing all of your data "
432
+ "and the import template for WP All Import. \n"
433
+ "\n"
434
+ "To import this data, create a new import with WP All Import and upload this zip "
435
+ "file."
436
+ msgstr ""
437
+ "Die anderen beiden Dateien in diesem .zip sind die Export Dateien die alle Ihre "
438
+ "Daten und die Import Vorlage für WP All Import enthalten.\n"
439
+ "\n"
440
+ "Um diese Daten zu importieren, erstellen Sie einen neuen Import mit WP All Import "
441
+ "und laden Sie dieses .zip hoch."
442
+
443
+ #: ../../controllers/admin/manage.php:493
444
+ msgid "File format not supported"
445
+ msgstr "Dieses Format wird nicht unterstützt."
446
+
447
+ #: ../../controllers/admin/manage.php:499 ../../controllers/admin/manage.php:504
448
+ msgid ""
449
+ "The exported file is missing and can't be downloaded. Please re-run your export to "
450
+ "re-generate it."
451
+ msgstr ""
452
+ "Die exportierte Datei fehlt und kann nicht heruntergeladen werden. Bitte starten "
453
+ "Sie den Export erneut zur erneuten Erzeugung."
454
+
455
+ #: ../../controllers/admin/settings.php:28
456
+ msgid "Settings saved"
457
+ msgstr "Einstellungen gespeichert"
458
+
459
+ #: ../../controllers/admin/settings.php:51
460
+ msgid "Unknown File extension. Only txt files are permitted"
461
+ msgstr "Unbekannte Dateiendung. Nur txt Dateien sind erlaubt"
462
+
463
+ #: ../../controllers/admin/settings.php:64
464
+ #, php-format
465
+ msgid "%d template imported"
466
+ msgid_plural "%d templates imported"
467
+ msgstr[0] "%d Vorlage importiert"
468
+ msgstr[1] "%d Vorlagen importiert"
469
+
470
+ #: ../../controllers/admin/settings.php:66
471
+ msgid "Wrong imported data format"
472
+ msgstr "Falsches Import Dateiformat"
473
+
474
+ #: ../../controllers/admin/settings.php:68
475
+ msgid "File is empty or doesn't exests"
476
+ msgstr "Datei ist leer oder existiert nicht"
477
+
478
+ #: ../../controllers/admin/settings.php:71
479
+ msgid "Undefined entry!"
480
+ msgstr "Undefinierter Eintrag!"
481
+
482
+ #: ../../controllers/admin/settings.php:73
483
+ msgid "Please select file."
484
+ msgstr "Bitte wählen Sie eine Datei"
485
+
486
+ #: ../../controllers/admin/settings.php:79
487
+ msgid "Templates must be selected"
488
+ msgstr "Vorlagen müssen gewählt sein"
489
+
490
+ #: ../../controllers/admin/settings.php:88
491
+ #, php-format
492
+ msgid "%d template deleted"
493
+ msgid_plural "%d templates deleted"
494
+ msgstr[0] "%d Vorlage gelöscht"
495
+ msgstr[1] "%d Vorlagen gelöscht"
496
+
497
+ #: ../../filters/wpallexport_custom_types.php:4
498
+ msgid "WooCommerce Products"
499
+ msgstr "WooCommerce Produkte"
500
+
501
+ #: ../../helpers/pmxe_render_xml_element.php:44 ../..
502
+ #: /helpers/pmxe_render_xml_text.php:9
503
+ #, php-format
504
+ msgid "<strong>%s</strong> %s more"
505
+ msgstr "<strong>%s</strong> %s mehr"
506
+
507
+ #: ../../helpers/pmxe_render_xml_element.php:44 ../..
508
+ #: /helpers/pmxe_render_xml_text.php:9
509
+ msgid "element"
510
+ msgid_plural "elements"
511
+ msgstr[0] "Element"
512
+ msgstr[1] "Elemente"
513
+
514
+ #: ../../helpers/pmxe_render_xml_text.php:15
515
+ msgid "more"
516
+ msgstr "mehr"
517
+
518
+ #: ../../helpers/wp_all_export_get_cpt_name.php:9
519
+ msgid "Product Variations"
520
+ msgstr "Produkt Variationen"
521
+
522
+ #: ../../helpers/wp_all_export_get_cpt_name.php:19 ../../views/admin/export/index.
523
+ #: php:67
524
+ msgid "Users"
525
+ msgstr "Benutzer"
526
+
527
+ #: ../../helpers/wp_all_export_get_cpt_name.php:19
528
+ msgid "User"
529
+ msgstr "Benutzer"
530
+
531
+ #: ../../helpers/wp_all_export_get_cpt_name.php:23
532
+ msgid "Records"
533
+ msgstr "Datensätze"
534
+
535
+ #: ../../helpers/wp_all_export_get_cpt_name.php:23
536
+ msgid "Record"
537
+ msgstr "Datensatz"
538
+
539
+ #: ../../libraries/XmlExportACF.php:156 ../../libraries/XmlExportACF.php:206
540
+ msgid "ACF"
541
+ msgstr "ACF"
542
+
543
+ #: ../../libraries/XmlExportEngine.php:169
544
+ msgid "Standard"
545
+ msgstr "Standard"
546
+
547
+ #: ../../libraries/XmlExportEngine.php:173
548
+ msgid "Taxonomies"
549
+ msgstr "Taxonomien"
550
+
551
+ #: ../../libraries/XmlExportEngine.php:177
552
+ msgid "Custom Fields"
553
+ msgstr "Individuelle Felder"
554
+
555
+ #: ../../libraries/XmlExportEngine.php:181
556
+ msgid "Other"
557
+ msgstr "Sonstige"
558
+
559
+ #: ../../libraries/XmlExportEngine.php:188 ../../libraries/XmlExportUser.php:199
560
+ msgid "General"
561
+ msgstr "Allgemein"
562
+
563
+ #: ../../libraries/XmlExportEngine.php:243
564
+ msgid "WP Query field is required"
565
+ msgstr "WP Abfrage Feld wird benötigt"
566
+
567
+ #: ../../libraries/XmlExportEngine.php:251
568
+ msgid "No matching users found."
569
+ msgstr "Keine passenden Benutzer gefunden."
570
+
571
+ #: ../../libraries/XmlExportEngine.php:264
572
+ msgid "Invalid query"
573
+ msgstr "Ungültige Abfrage"
574
+
575
+ #: ../../libraries/XmlExportEngine.php:267
576
+ msgid "No matching posts found for WP_Query expression specified."
577
+ msgstr "Keine passenden Posts für den WP_Query Ausdruck gefunden."
578
+
579
+ #: ../../libraries/XmlExportEngine.php:294 ../../libraries/XmlExportEngine.php:312
580
+ msgid "No matching posts found for selected post types."
581
+ msgstr "Keine passenden Posts für die gewählten post typen gefunden."
582
+
583
+ #: ../../libraries/XmlExportEngine.php:430 ../..
584
+ #: /libraries/XmlExportWooCommerceOrder.php:886
585
+ msgid "All"
586
+ msgstr "Alle"
587
+
588
+ #: ../../libraries/XmlExportEngine.php:449 ../../views/admin/export/template.php:73
589
+ #: ../../views/admin/export/template.php:106 ../../views/admin/export/template.
590
+ #: php:133
591
+ msgid "Delete field"
592
+ msgstr "Lösche Feld"
593
+
594
+ #: ../../libraries/XmlExportUser.php:218 ../../libraries/XmlExportUser.php:292 ..
595
+ #: /../libraries/XmlExportWooCommerce.php:111 ../..
596
+ #: /libraries/XmlExportWooCommerce.php:279
597
+ #: /libraries/XmlExportWooCommerceOrder.php:130
598
+ #: /libraries/XmlExportWooCommerceOrder.php:945
599
+ #: /views/admin/export/template/new_field_cpt.php:78
600
+ #: /views/admin/export/template/new_field_shop_order.php:33
601
+ #: /views/admin/export/template/new_field_user.php:57
602
+ msgid "Advanced"
603
+ msgstr "Erweitert"
604
+
605
+ #: ../../libraries/XmlExportUser.php:231
606
+ msgid "Network"
607
+ msgstr "Netzwerk"
608
+
609
+ #: ../../libraries/XmlExportWooCommerce.php:98 ../..
610
+ #: /libraries/XmlExportWooCommerce.php:283
611
+ msgid "Product Data"
612
+ msgstr "Produkt Daten"
613
+
614
+ #: ../../libraries/XmlExportWooCommerceOrder.php:65 ../..
615
+ #: /libraries/XmlExportWooCommerceOrder.php:925
616
+ msgid "Order"
617
+ msgstr "Bestellung"
618
+
619
+ #: ../../libraries/XmlExportWooCommerceOrder.php:67 ../..
620
+ #: /libraries/XmlExportWooCommerceOrder.php:960
621
+ msgid "Order ID"
622
+ msgstr "Bestell ID"
623
+
624
+ #: ../../libraries/XmlExportWooCommerceOrder.php:68 ../..
625
+ #: /libraries/XmlExportWooCommerceOrder.php:961
626
+ msgid "Order Key"
627
+ msgstr "Bestell-Schlüssel"
628
+
629
+ #: ../../libraries/XmlExportWooCommerceOrder.php:69 ../..
630
+ #: /libraries/XmlExportWooCommerceOrder.php:962
631
+ msgid "Order Date"
632
+ msgstr "Bestell-Datum"
633
+
634
+ #: ../../libraries/XmlExportWooCommerceOrder.php:70 ../..
635
+ #: /libraries/XmlExportWooCommerceOrder.php:963
636
+ msgid "Completed Date"
637
+ msgstr "Fertigstellungstermin"
638
+
639
+ #: ../../libraries/XmlExportWooCommerceOrder.php:71 ../..
640
+ #: /libraries/XmlExportWooCommerceOrder.php:964
641
+ #: /views/admin/export/template/new_field_cpt.php:9
642
+ msgid "Title"
643
+ msgstr "Titel"
644
+
645
+ #: ../../libraries/XmlExportWooCommerceOrder.php:72 ../..
646
+ #: /libraries/XmlExportWooCommerceOrder.php:965
647
+ msgid "Order Status"
648
+ msgstr "Bestell-Status"
649
+
650
+ #: ../../libraries/XmlExportWooCommerceOrder.php:73 ../..
651
+ #: /libraries/XmlExportWooCommerceOrder.php:966
652
+ msgid "Order Currency"
653
+ msgstr "Bestell-Währung"
654
+
655
+ #: ../../libraries/XmlExportWooCommerceOrder.php:74 ../..
656
+ #: /libraries/XmlExportWooCommerceOrder.php:967
657
+ msgid "Payment Method"
658
+ msgstr "Bezahl-Methode "
659
+
660
+ #: ../../libraries/XmlExportWooCommerceOrder.php:75 ../..
661
+ #: /libraries/XmlExportWooCommerceOrder.php:968
662
+ msgid "Order Total"
663
+ msgstr "Gesamtbetrag Bestellung"
664
+
665
+ #: ../../libraries/XmlExportWooCommerceOrder.php:79 ../..
666
+ #: /libraries/XmlExportWooCommerceOrder.php:929
667
+ msgid "Customer"
668
+ msgstr "Kunde"
669
+
670
+ #: ../../libraries/XmlExportWooCommerceOrder.php:886
671
+ msgid "Data"
672
+ msgstr "Daten"
673
+
674
+ #: ../../libraries/XmlExportWooCommerceOrder.php:933
675
+ msgid "Items"
676
+ msgstr "Artikel"
677
+
678
+ #: ../../libraries/XmlExportWooCommerceOrder.php:937
679
+ msgid "Taxes & Shipping"
680
+ msgstr "Steuern & Versand"
681
+
682
+ #: ../../libraries/XmlExportWooCommerceOrder.php:941
683
+ msgid "Fees & Discounts"
684
+ msgstr "Gebühren & Rabatte"
685
+
686
+ #: ../../libraries/XmlExportWooCommerceOrder.php:981
687
+ msgid "Product ID"
688
+ msgstr "Produkt ID"
689
+
690
+ #: ../../libraries/XmlExportWooCommerceOrder.php:982
691
+ msgid "SKU"
692
+ msgstr "ID"
693
+
694
+ #: ../../libraries/XmlExportWooCommerceOrder.php:983
695
+ msgid "Product Name"
696
+ msgstr "Produkt Name"
697
+
698
+ #: ../../libraries/XmlExportWooCommerceOrder.php:984
699
+ msgid "Product Variation Details"
700
+ msgstr "Details Produktvariationen"
701
+
702
+ #: ../../libraries/XmlExportWooCommerceOrder.php:985
703
+ msgid "Quantity"
704
+ msgstr "Anzahl"
705
+
706
+ #: ../../libraries/XmlExportWooCommerceOrder.php:986
707
+ msgid "Item Cost"
708
+ msgstr "Artikel Kosten"
709
+
710
+ #: ../../libraries/XmlExportWooCommerceOrder.php:987
711
+ msgid "Item Total"
712
+ msgstr "Artikel Gesamt"
713
+
714
+ #: ../../libraries/XmlExportWooCommerceOrder.php:996
715
+ msgid "Rate Code (per tax)"
716
+ msgstr "Steuerschlüssel"
717
+
718
+ #: ../../libraries/XmlExportWooCommerceOrder.php:997
719
+ msgid "Rate Percentage (per tax)"
720
+ msgstr "Steuersatz"
721
+
722
+ #: ../../libraries/XmlExportWooCommerceOrder.php:998
723
+ msgid "Amount (per tax)"
724
+ msgstr "Steuer Betrag"
725
+
726
+ #: ../../libraries/XmlExportWooCommerceOrder.php:999
727
+ msgid "Total Tax Amount"
728
+ msgstr "Gesamtbetrag Steuern"
729
+
730
+ #: ../../libraries/XmlExportWooCommerceOrder.php:1000
731
+ msgid "Shipping Method"
732
+ msgstr "Versandmethode"
733
+
734
+ #: ../../libraries/XmlExportWooCommerceOrder.php:1001
735
+ msgid "Shipping Cost"
736
+ msgstr "Versandkosten"
737
+
738
+ #: ../../libraries/XmlExportWooCommerceOrder.php:1010
739
+ msgid "Discount Amount (per coupon)"
740
+ msgstr "Rabatt Betrag (pro Kupon)"
741
+
742
+ #: ../../libraries/XmlExportWooCommerceOrder.php:1011
743
+ msgid "Coupons Used"
744
+ msgstr "Kupons genutzt"
745
+
746
+ #: ../../libraries/XmlExportWooCommerceOrder.php:1012
747
+ msgid "Total Discount Amount"
748
+ msgstr "Gesamtbetrag Rabatt"
749
+
750
+ #: ../../libraries/XmlExportWooCommerceOrder.php:1013
751
+ msgid "Fee Amount (per surcharge)"
752
+ msgstr "Gebühren Betrag (pro Aufschlag)"
753
+
754
+ #: ../../libraries/XmlExportWooCommerceOrder.php:1014
755
+ msgid "Total Fee Amount"
756
+ msgstr "Gesamtbetrag Gebühren"
757
+
758
+ #: ../../libraries/XmlExportWooCommerceOrder.php:1024
759
+ msgid "Customer User ID"
760
+ msgstr "Kunde Benutzer ID"
761
+
762
+ #: ../../libraries/XmlExportWooCommerceOrder.php:1025
763
+ msgid "Customer Note"
764
+ msgstr "Kunden Notiz"
765
+
766
+ #: ../../views/admin/export/index.php:10 ../../views/admin/export/options.php:16 .
767
+ #: ../views/admin/export/process.php:10 ../../views/admin/export/template.php:8
768
+ #: ../../views/admin/manage/update.php:26
769
+ msgid "Export to XML / CSV"
770
+ msgstr "Exportiere zu XML / CSV"
771
+
772
+ #: ../../views/admin/export/index.php:13 ../../views/admin/export/options.php:19 .
773
+ #: ../views/admin/export/process.php:13 ../../views/admin/export/template.php:11
774
+ #: ../../views/admin/manage/update.php:29
775
+ msgid "Support"
776
+ msgstr "Support"
777
+
778
+ #: ../../views/admin/export/index.php:13 ../../views/admin/export/options.php:19 .
779
+ #: ../views/admin/export/process.php:13 ../../views/admin/export/template.php:11
780
+ #: ../../views/admin/manage/update.php:29
781
+ msgid "Documentation"
782
+ msgstr "Dokumentation"
783
+
784
+ #: ../../views/admin/export/index.php:30
785
+ msgid "First, choose what to export."
786
+ msgstr "Erstens, wählen Sie was exportiert werden soll."
787
+
788
+ #: ../../views/admin/export/index.php:33
789
+ msgid "Specific Post Type"
790
+ msgstr "Bestimmter Post Typ"
791
+
792
+ #: ../../views/admin/export/index.php:37
793
+ msgid "WP_Query Results"
794
+ msgstr "WP_Abfrage Ergebnisse"
795
+
796
+ #: ../../views/admin/export/index.php:56
797
+ msgid "Choose a post type..."
798
+ msgstr "Wählen Sie einen Post Typ..."
799
+
800
+ #: ../../views/admin/export/index.php:79
801
+ msgid "Post Type Query"
802
+ msgstr "Post Typ Abfrage"
803
+
804
+ #: ../../views/admin/export/index.php:80
805
+ msgid "User Query"
806
+ msgstr "Benutzer Abfrage"
807
+
808
+ #: ../../views/admin/export/index.php:112
809
+ msgid "Skip to Step 3"
810
+ msgstr "Überspringe zu Schritt 3"
811
+
812
+ #: ../../views/admin/export/index.php:114
813
+ msgid "Continue to Step 2"
814
+ msgstr "Weiter zu Schritt 2"
815
+
816
+ #: ../../views/admin/export/index.php:116
817
+ msgid "Auto Generate Export Template"
818
+ msgstr "Export Vorlage automatisch erzeugen"
819
+
820
+ #: ../../views/admin/export/index.php:123 ../../views/admin/export/options.php:202
821
+ #: ../../views/admin/export/process.php:62 ../../views/admin/export/template. php:248
822
+ #: ../../views/admin/manage/index.php:367 ../.. /views/admin/manage/scheduling.php:57
823
+ #: ../../views/admin/manage/templates.php:19 ../../views/admin/manage/update.php:206
824
+ #: ../../views/admin/settings/index. php:167
825
+ msgid "Created by"
826
+ msgstr "Erstellt von"
827
+
828
+ #: ../../views/admin/export/options.php:54 ../../views/admin/export/options.php:191
829
+ #: ../../views/admin/manage/update.php:6 ../../views/admin/manage/update.php:64
830
+ #: ../../views/admin/manage/update.php:199
831
+ msgid "Confirm & Run Export"
832
+ msgstr "Bestätigen & Export starten"
833
+
834
+ #: ../../views/admin/export/options.php:70 ../../views/admin/manage/update.php:78
835
+ msgid "Filters"
836
+ msgstr "Filter"
837
+
838
+ #: ../../views/admin/export/options.php:189
839
+ msgid "Back to Step 2"
840
+ msgstr "Zurück zu Schritt 2"
841
+
842
+ #: ../../views/admin/export/options.php:194 ../../views/admin/export/template.php:
843
+ #: 241
844
+ msgid "Back to Manage Exports"
845
+ msgstr "Zurück zu Exports Verwalten"
846
+
847
+ #: ../../views/admin/export/options.php:195 ../../views/admin/manage/update.php:7
848
+ #: ../../views/admin/manage/update.php:197
849
+ msgid "Save Export Configuration"
850
+ msgstr "Speichere Export Einstellungen"
851
+
852
+ #: ../../views/admin/export/process.php:22
853
+ msgid "Export <span id=\"status\">in Progress...</span>"
854
+ msgstr "Export <span id=\"status\">in Bearbeitung</span>"
855
+
856
+ #: ../../views/admin/export/process.php:23
857
+ msgid ""
858
+ "Exporting may take some time. Please do not close your browser or refresh the page "
859
+ "until the process is complete."
860
+ msgstr ""
861
+ "Der Export wird einige Zeit benötigen. Bitte den Browser nicht schließen oder "
862
+ "aktualisieren während die Bearbeitung läuft."
863
+
864
+ #: ../../views/admin/export/process.php:29
865
+ msgid "Time Elapsed"
866
+ msgstr "Zeit vergangen"
867
+
868
+ #: ../../views/admin/export/process.php:31
869
+ msgid "Exported"
870
+ msgstr "Exportiert"
871
+
872
+ #: ../../views/admin/export/process.php:36
873
+ msgid "Export Complete!"
874
+ msgstr "Export Fertiggestellt!"
875
+
876
+ #: ../../views/admin/export/process.php:37
877
+ msgid "WP All Export successfully exported your data!"
878
+ msgstr "WP All Export hat Ihre Daten erfolgreich exportiert!"
879
+
880
+ #: ../../views/admin/export/process.php:38
881
+ msgid "Download Data"
882
+ msgstr "Lade Daten herunter"
883
+
884
+ #: ../../views/admin/export/process.php:45 ../../views/admin/manage/index.php:152
885
+ #, php-format
886
+ msgid "Split %ss"
887
+ msgstr "Teile %ss"
888
+
889
+ #: ../../views/admin/export/process.php:46 ../../views/admin/export/process.php:52
890
+ msgid "Settings & Data for WP All Import"
891
+ msgstr "Einstellungen & Daten für WP All Import"
892
+
893
+ #: ../../views/admin/export/process.php:51 ../../views/admin/manage/index.php:140
894
+ #: ../../views/admin/manage/index.php:147
895
+ msgid "Bundle"
896
+ msgstr "Paket"
897
+
898
+ #: ../../views/admin/export/template.php:23
899
+ msgid "Choose data to include in the export file."
900
+ msgstr "Wählen Sie die Daten die in die Exportdatei sollen."
901
+
902
+ #: ../../views/admin/export/template.php:115
903
+ msgid ""
904
+ "Drag & drop data from \"Available Data\" on the right to include it in the export "
905
+ "or click \"Add Field To Export\" below."
906
+ msgstr ""
907
+ "Drag & Drop Daten von \"Verfügbaren Daten\" auf der rechten Seite, um diese zum "
908
+ "Export hinzuzufügen. Oder klicken Sie auf \"Füge Feld zum Export hinzu\"."
909
+
910
+ #: ../../views/admin/export/template.php:139
911
+ msgid ""
912
+ "Warning: without an ID column, you won't be able to re-import this data using WP "
913
+ "All Import."
914
+ msgstr ""
915
+ "Warnung: Ohne ID Spalte wird es nicht möglich sein diese Daten mit WP All Import "
916
+ "erneut zu importieren."
917
+
918
+ #: ../../views/admin/export/template.php:145
919
+ msgid ""
920
+ "Warning: without _sku and product_type columns, you won't be able to re-import "
921
+ "this data using WP All Import."
922
+ msgstr ""
923
+ "Warnung: Ohne _sku und product_type Spalten wird es nicht möglich sein diese Daten "
924
+ "mit WP All Import erneut zu importieren."
925
+
926
+ #: ../../views/admin/export/template.php:151
927
+ msgid ""
928
+ "Warning: without post_type column, you won't be able to re-import this data using "
929
+ "WP All Import."
930
+ msgstr ""
931
+ "Warnung: Ohne die post_typ Spalte wird es nicht möglich sein diese Daten mit WP "
932
+ "All Import erneut zu importieren."
933
+
934
+ #: ../../views/admin/export/template.php:157 ../../views/admin/export/template.
935
+ #: php:283
936
+ msgid "Add Field To Export"
937
+ msgstr "Füge Feld zum Export hinzu"
938
+
939
+ #: ../../views/admin/export/template.php:162
940
+ msgid "Display each product in its own row"
941
+ msgstr "Jedes Produkt in eigener Zeile anzeigen"
942
+
943
+ #: ../../views/admin/export/template.php:163
944
+ msgid ""
945
+ "If an order contains multiple products, each product will have its own row. If "
946
+ "disabled, each product will have its own column."
947
+ msgstr ""
948
+ "Wenn eine Bestellung mehrere Produkte enthält, wird jedes Produkt seine eigene "
949
+ "Zeile haben. Wenn deaktiviert, wird jedes Produkt seine eigene Spalte haben."
950
+
951
+ #: ../../views/admin/export/template.php:167
952
+ msgid "Fill in empty columns"
953
+ msgstr "Fülle leere Spalten"
954
+
955
+ #: ../../views/admin/export/template.php:168
956
+ msgid ""
957
+ "If enabled, each order item will appear as its own row with all order info filled "
958
+ "in for every column. If disabled, order info will only display on one row with "
959
+ "only the order item info displaying in additional rows."
960
+ msgstr ""
961
+ "Wenn aktiviert, wird jeder bestellte Artikel als eigene Zeile erscheinen mit allen "
962
+ "Bestellinformationen in jeder Spalte. Wenn deaktiviert, wird die "
963
+ "Bestellinformation nur in einer Zeile angezeigt mit der Info des bestellten "
964
+ "Artikels in zusätzlichen Zeilen."
965
+
966
+ #: ../../views/admin/export/template.php:176
967
+ msgid "Preview A Row"
968
+ msgstr "Vorschau einer Zeile"
969
+
970
+ #: ../../views/admin/export/template.php:182
971
+ msgid "Export File Format:"
972
+ msgstr "Export Datei Format:"
973
+
974
+ #: ../../views/admin/export/template.php:187
975
+ msgid "XML"
976
+ msgstr "XML"
977
+
978
+ #: ../../views/admin/export/template.php:191
979
+ msgid "CSV"
980
+ msgstr "CSV"
981
+
982
+ #: ../../views/admin/export/template.php:194
983
+ msgid "Delimiter:"
984
+ msgstr "Trennzeichen:"
985
+
986
+ #: ../../views/admin/export/template.php:211
987
+ msgid "Save settings as a template"
988
+ msgstr "Speichere Einstellungen als Vorlage"
989
+
990
+ #: ../../views/admin/export/template.php:214
991
+ msgid "Template name..."
992
+ msgstr "Vorlagen Name..."
993
+
994
+ #: ../../views/admin/export/template.php:219
995
+ msgid "Load Template..."
996
+ msgstr "Lade Vorlage..."
997
+
998
+ #: ../../views/admin/export/template.php:258
999
+ msgid "Available Data"
1000
+ msgstr "Verfügbare Daten"
1001
+
1002
+ #: ../../views/admin/export/template.php:264
1003
+ msgid "Auto Generate"
1004
+ msgstr "Automatisch erzeugen"
1005
+
1006
+ #: ../../views/admin/export/template.php:283
1007
+ msgid "Edit Export Field"
1008
+ msgstr "Editiere Export Feld"
1009
+
1010
+ #: ../../views/admin/export/options/settings.php:5
1011
+ msgid "Advanced Export"
1012
+ msgstr "Erweiterter Export"
1013
+
1014
+ #: ../../views/admin/export/options/settings.php:13
1015
+ msgid "In each iteration, process"
1016
+ msgstr "In jedem Durchlauf, bearbeiten"
1017
+
1018
+ #: ../../views/admin/export/options/settings.php:13 ../..
1019
+ #: /views/admin/export/options/settings.php:19
1020
+ msgid "records"
1021
+ msgstr "Datensätze"
1022
+
1023
+ #: ../../views/admin/export/options/settings.php:14
1024
+ msgid ""
1025
+ "WP All Export must be able to process this many records in less than your server's "
1026
+ "timeout settings. If your export fails before completion, to troubleshoot you "
1027
+ "should lower this number."
1028
+ msgstr ""
1029
+ "WP All Export muss alle Datensätze innerhalb Ihres Servertimeouts bearbeiten "
1030
+ "können. Wenn Ihr Export vor Fertigstellung fehlschlägt, sollten Sie die Anzahl der "
1031
+ "Datensätze verringern."
1032
+
1033
+ #: ../../views/admin/export/options/settings.php:19
1034
+ #, php-format
1035
+ msgid "Only export %s once"
1036
+ msgstr "%s nur einmal exportieren"
1037
+
1038
+ #: ../../views/admin/export/options/settings.php:20
1039
+ msgid ""
1040
+ "If re-run, this export will only include records that have not been previously "
1041
+ "exported."
1042
+ msgstr ""
1043
+ "Bei erneutem Start wird dieser Export nur diese Datensätze einschließen die vorher "
1044
+ "noch nicht exportiert wurden."
1045
+
1046
+ #: ../../views/admin/export/options/settings.php:25
1047
+ msgid "Include BOM in export file"
1048
+ msgstr "Schließe BOM Datei in Exportdatei ein"
1049
+
1050
+ #: ../../views/admin/export/options/settings.php:26
1051
+ msgid ""
1052
+ "The BOM will help some programs like Microsoft Excel read your export file if it "
1053
+ "includes non-English characters."
1054
+ msgstr ""
1055
+ "Die BOM Datei wird einigen Programmen ( wie Microsoft Excel) helfen Ihre "
1056
+ "Exportdatei zu lesen wenn diese nicht Englische Buchstaben enthält."
1057
+
1058
+ #: ../../views/admin/export/options/settings.php:31
1059
+ msgid "Create a new file each time export is run"
1060
+ msgstr "Erstelle eine neue Datei mit jedem Exportlauf"
1061
+
1062
+ #: ../../views/admin/export/options/settings.php:32
1063
+ msgid "If disabled, the export file will be overwritten every time this export run."
1064
+ msgstr "Wenn deaktiviert wird die Exportdatei mit jedem Exportlauf überschrieben."
1065
+
1066
+ #: ../../views/admin/export/options/settings.php:37
1067
+ msgid "Split large exports into multiple files"
1068
+ msgstr "Teile große Exports in mehrere Dateien"
1069
+
1070
+ #: ../../views/admin/export/options/settings.php:40
1071
+ msgid "Limit export to"
1072
+ msgstr "Beschränke Export auf"
1073
+
1074
+ #: ../../views/admin/export/options/settings.php:40
1075
+ msgid "records per file"
1076
+ msgstr "Datensätze pro Datei"
1077
+
1078
+ #: ../../views/admin/export/options/settings.php:46
1079
+ msgid "Main XML Tag:"
1080
+ msgstr "Haupt XML Tag:"
1081
+
1082
+ #: ../../views/admin/export/options/settings.php:50
1083
+ msgid "Single Record XML Tag:"
1084
+ msgstr "Einzelner Datensatz XML Tag:"
1085
+
1086
+ #: ../../views/admin/export/options/settings.php:58
1087
+ msgid "Friendly Name:"
1088
+ msgstr "Benutzerfreundlicher Name"
1089
+
1090
+ #: ../../views/admin/export/options/settings.php:59
1091
+ msgid "Save friendly name..."
1092
+ msgstr "Benutzerfreundlicher Name speichern..."
1093
+
1094
+ #: ../../views/admin/export/template/new_field_cpt.php:4 ../..
1095
+ #: /views/admin/export/template/new_field_shop_order.php:4
1096
+ #: /views/admin/export/template/new_field_user.php:4
1097
+ msgid "What field would you like to export?"
1098
+ msgstr "Welches Feld wollen Sie exportieren?"
1099
+
1100
+ #: ../../views/admin/export/template/new_field_cpt.php:8 ../..
1101
+ #: /views/admin/export/template/new_field_user.php:8 /views/admin/manage/index.php:27
1102
+ msgid "ID"
1103
+ msgstr "ID"
1104
+
1105
+ #: ../../views/admin/export/template/new_field_cpt.php:10
1106
+ msgid "Content"
1107
+ msgstr "Inhalt"
1108
+
1109
+ #: ../../views/admin/export/template/new_field_cpt.php:11
1110
+ msgid "Excerpt"
1111
+ msgstr "Ausschnitt"
1112
+
1113
+ #: ../../views/admin/export/template/new_field_cpt.php:12
1114
+ msgid "Date"
1115
+ msgstr "Datum"
1116
+
1117
+ #: ../../views/admin/export/template/new_field_cpt.php:13
1118
+ msgid "Post Type"
1119
+ msgstr "Post Typ:"
1120
+
1121
+ #: ../../views/admin/export/template/new_field_cpt.php:14
1122
+ msgid "Categories / Taxonomies"
1123
+ msgstr "Taxonomien / Kategorien"
1124
+
1125
+ #: ../../views/admin/export/template/new_field_cpt.php:15
1126
+ msgid "Custom Field / Post Meta"
1127
+ msgstr "Individuelles Feld / Post Meta"
1128
+
1129
+ #: ../../views/admin/export/template/new_field_cpt.php:16
1130
+ msgid "Images / Media"
1131
+ msgstr "Bilder / Medien"
1132
+
1133
+ #: ../../views/admin/export/template/new_field_cpt.php:17
1134
+ msgid "Attachment"
1135
+ msgstr "Anhang"
1136
+
1137
+ #: ../../views/admin/export/template/new_field_cpt.php:20
1138
+ msgid "Post Status"
1139
+ msgstr "Post Status"
1140
+
1141
+ #: ../../views/admin/export/template/new_field_cpt.php:21
1142
+ msgid "Author"
1143
+ msgstr "Autor "
1144
+
1145
+ #: ../../views/admin/export/template/new_field_cpt.php:22
1146
+ msgid "Post Slug"
1147
+ msgstr "Post Slug"
1148
+
1149
+ #: ../../views/admin/export/template/new_field_cpt.php:23
1150
+ msgid "Post Format"
1151
+ msgstr "Post Format"
1152
+
1153
+ #: ../../views/admin/export/template/new_field_cpt.php:24
1154
+ msgid "Template"
1155
+ msgstr "Vorlage"
1156
+
1157
+ #: ../../views/admin/export/template/new_field_cpt.php:25
1158
+ msgid "Parent"
1159
+ msgstr "Eltern"
1160
+
1161
+ #: ../../views/admin/export/template/new_field_cpt.php:26
1162
+ msgid "Menu Order"
1163
+ msgstr "Menü Reihenfolge"
1164
+
1165
+ #: ../../views/admin/export/template/new_field_cpt.php:27
1166
+ msgid "Permalink"
1167
+ msgstr "Permalink"
1168
+
1169
+ #: ../../views/admin/export/template/new_field_cpt.php:32
1170
+ msgid "WooCommerce Data"
1171
+ msgstr "WooCommerce Daten"
1172
+
1173
+ #: ../../views/admin/export/template/new_field_cpt.php:33
1174
+ msgid "WooCommerce Taxonomies"
1175
+ msgstr "WooCommerce Taxonomien"
1176
+
1177
+ #: ../../views/admin/export/template/new_field_cpt.php:36
1178
+ msgid "WooCommerce Order"
1179
+ msgstr "WooCommerce Bestellungen"
1180
+
1181
+ #: ../../views/admin/export/template/new_field_cpt.php:39 ../..
1182
+ #: /views/admin/export/template/new_field_user.php:30
1183
+ msgid "Advanced Custom Fields"
1184
+ msgstr "Erweiterte benutzerdefinierte Felder"
1185
+
1186
+ #: ../../views/admin/export/template/new_field_cpt.php:44 ../..
1187
+ #: /views/admin/export/template/new_field_shop_order.php:19
1188
+ #: /views/admin/export/template/new_field_user.php:35
1189
+ msgid "SQL Query"
1190
+ msgstr "SQL Abfrage"
1191
+
1192
+ #: ../../views/admin/export/template/new_field_cpt.php:52 ../..
1193
+ #: /views/admin/export/template/new_field_cpt.php:56
1194
+ #: /views/admin/export/template/new_field_cpt.php:60
1195
+ #: /views/admin/export/template/new_field_cpt.php:64
1196
+ #: /views/admin/export/template/new_field_cpt.php:68
1197
+ #: /views/admin/export/template/new_field_user.php:43
1198
+ #: /views/admin/export/template/new_field_user.php:47
1199
+ msgid "Field Name"
1200
+ msgstr "Feld Name"
1201
+
1202
+ #: ../../views/admin/export/template/new_field_cpt.php:73 ../..
1203
+ #: /views/admin/export/template/new_field_shop_order.php:26
1204
+ #: /views/admin/export/template/new_field_user.php:52
1205
+ msgid "What would you like to name the column/element in your exported file?"
1206
+ msgstr "Wie soll die Spalte oder das Element in Ihrer Exportdatei heißen?"
1207
+
1208
+ #: ../../views/admin/export/template/new_field_cpt.php:82 ../..
1209
+ #: /views/admin/export/template/new_field_shop_order.php:37
1210
+ #: /views/admin/export/template/new_field_user.php:61
1211
+ #, php-format
1212
+ msgid ""
1213
+ "%%ID%% will be replaced with the ID of the post being exported, example: SELECT "
1214
+ "meta_value FROM wp_postmeta WHERE post_id=%%ID%% AND meta_key='your_meta_key';"
1215
+ msgstr ""
1216
+ "%%ID%% wird ersetzt mit der ID des exportierten Posts, Beispielsweise: SELECT "
1217
+ "meta_value FROM wp_postmeta WHERE post_id=%%ID%% AND meta_key='your_meta_key';"
1218
+
1219
+ #: ../../views/admin/export/template/new_field_cpt.php:87
1220
+ msgid "Export Image URLs"
1221
+ msgstr "Exportiere Bild URLs"
1222
+
1223
+ #: ../../views/admin/export/template/new_field_cpt.php:88
1224
+ msgid "Export Image Filenames"
1225
+ msgstr "Exportiere Bild Dateinamen"
1226
+
1227
+ #: ../../views/admin/export/template/new_field_cpt.php:89
1228
+ msgid "Export Image File Paths"
1229
+ msgstr "Exportiere Bild Dateipfade"
1230
+
1231
+ #: ../../views/admin/export/template/new_field_cpt.php:94 ../..
1232
+ #: /views/admin/export/template/new_field_shop_order.php:42
1233
+ #: /views/admin/export/template/new_field_user.php:66
1234
+ msgid "UNIX timestamp - PHP time()"
1235
+ msgstr "UNIX Zeitstempel - PHP time()"
1236
+
1237
+ #: ../../views/admin/export/template/new_field_cpt.php:95 ../..
1238
+ #: /views/admin/export/template/new_field_shop_order.php:43
1239
+ #: /views/admin/export/template/new_field_user.php:67
1240
+ msgid "Natural Language PHP date()"
1241
+ msgstr "Natürliche Sprache PHP date()"
1242
+
1243
+ #: ../../views/admin/export/template/new_field_cpt.php:98 ../..
1244
+ #: /views/admin/export/template/new_field_shop_order.php:46
1245
+ #: /views/admin/export/template/new_field_user.php:70
1246
+ msgid "date() Format"
1247
+ msgstr "date() Format"
1248
+
1249
+ #: ../../views/admin/export/template/new_field_cpt.php:105 ../..
1250
+ #: /views/admin/export/template/new_field_shop_order.php:53
1251
+ #: /views/admin/export/template/new_field_user.php:77
1252
+ msgid "Export the value returned by a PHP function"
1253
+ msgstr "Exportiere den Wert der von einer PHP Funktion zurückgegeben wurde"
1254
+
1255
+ #: ../../views/admin/export/template/new_field_cpt.php:106 ../..
1256
+ #: /views/admin/export/template/new_field_shop_order.php:54
1257
+ #: /views/admin/export/template/new_field_user.php:78
1258
+ msgid "The value of the field chosen for export will be passed to the PHP function."
1259
+ msgstr "Der Wert des ausgewählten Feldes wird an die PHP Funktion weitergeleitet."
1260
+
1261
+ #: ../../views/admin/export/template/new_field_cpt.php:120 ../..
1262
+ #: /views/admin/export/template/new_field_shop_order.php:68
1263
+ #: /views/admin/export/template/new_field_user.php:92
1264
+ #: /views/admin/settings/index.php:150
1265
+ msgid "Function Editor"
1266
+ msgstr "Funktion Editor"
1267
+
1268
+ #: ../../views/admin/export/template/new_field_cpt.php:120 ../..
1269
+ #: /views/admin/export/template/new_field_shop_order.php:68
1270
+ #: /views/admin/export/template/new_field_user.php:92
1271
+ #: /views/admin/settings/index.php:158
1272
+ #, php-format
1273
+ msgid "Add functions here for use during your export. You can access this file at %s"
1274
+ msgstr ""
1275
+ "Füge hier Funktionen für den Export ein. Sie können auf diese Datei zugreifen bei "
1276
+ "%s"
1277
+
1278
+ #: ../../views/admin/export/template/new_field_cpt.php:129 ../..
1279
+ #: /views/admin/export/template/new_field_shop_order.php:77
1280
+ #: /views/admin/export/template/new_field_user.php:101
1281
+ #: /views/admin/settings/index.php:157
1282
+ msgid "Save Functions"
1283
+ msgstr "Speichere Funktionen"
1284
+
1285
+ #: ../../views/admin/export/template/new_field_cpt.php:144 ../..
1286
+ #: /views/admin/export/template/new_field_shop_order.php:91
1287
+ #: /views/admin/export/template/new_field_user.php:115
1288
+ #: /views/admin/manage/index.php:52 ../../views/admin/manage/index.php:155
1289
+ #: /views/admin/manage/index.php:356
1290
+ msgid "Delete"
1291
+ msgstr "Löschen"
1292
+
1293
+ #: ../../views/admin/export/template/new_field_cpt.php:145 ../..
1294
+ #: /views/admin/export/template/new_field_shop_order.php:92
1295
+ #: /views/admin/export/template/new_field_user.php:116
1296
+ msgid "Done"
1297
+ msgstr "Fertig"
1298
+
1299
+ #: ../../views/admin/export/template/new_field_cpt.php:146 ../..
1300
+ #: /views/admin/export/template/new_field_shop_order.php:93
1301
+ #: /views/admin/export/template/new_field_user.php:117
1302
+ msgid "Close"
1303
+ msgstr "Schließen "
1304
+
1305
+ #: ../../views/admin/export/template/new_field_user.php:9
1306
+ msgid "Login"
1307
+ msgstr "Login"
1308
+
1309
+ #: ../../views/admin/export/template/new_field_user.php:10
1310
+ msgid "Email"
1311
+ msgstr "Email"
1312
+
1313
+ #: ../../views/admin/export/template/new_field_user.php:11
1314
+ msgid "First Name"
1315
+ msgstr "Vorname"
1316
+
1317
+ #: ../../views/admin/export/template/new_field_user.php:12
1318
+ msgid "Last Name"
1319
+ msgstr "Nachname"
1320
+
1321
+ #: ../../views/admin/export/template/new_field_user.php:13
1322
+ msgid "Registered Date"
1323
+ msgstr "Registriere Datum"
1324
+
1325
+ #: ../../views/admin/export/template/new_field_user.php:14
1326
+ msgid "Nicename"
1327
+ msgstr "Nicename"
1328
+
1329
+ #: ../../views/admin/export/template/new_field_user.php:15
1330
+ msgid "URL"
1331
+ msgstr "URL"
1332
+
1333
+ #: ../../views/admin/export/template/new_field_user.php:16
1334
+ msgid "Display Name"
1335
+ msgstr "Name anzeigen "
1336
+
1337
+ #: ../../views/admin/export/template/new_field_user.php:17
1338
+ msgid "Nickname"
1339
+ msgstr "Nickname"
1340
+
1341
+ #: ../../views/admin/export/template/new_field_user.php:18
1342
+ msgid "Description"
1343
+ msgstr "Beschreibung"
1344
+
1345
+ #: ../../views/admin/export/template/new_field_user.php:21
1346
+ msgid "Password"
1347
+ msgstr "Passwort"
1348
+
1349
+ #: ../../views/admin/export/template/new_field_user.php:22
1350
+ msgid "Activation Key"
1351
+ msgstr "Aktivierungs Schlüssel"
1352
+
1353
+ #: ../../views/admin/export/template/new_field_user.php:23
1354
+ msgid "Status"
1355
+ msgstr "Status"
1356
+
1357
+ #: ../../views/admin/export/template/new_field_user.php:24
1358
+ msgid "Roles"
1359
+ msgstr "Rollen"
1360
+
1361
+ #: ../../views/admin/export/template/new_field_user.php:25
1362
+ msgid "Custom Field / User Meta"
1363
+ msgstr "Individuelles Feld / Benutzer Meta"
1364
+
1365
+ #: ../../views/admin/help/index.php:1
1366
+ msgid "WP All Export Support"
1367
+ msgstr "WP All Export Support"
1368
+
1369
+ #: ../../views/admin/manage/bulk.php:10
1370
+ #, php-format
1371
+ msgid "Are you sure you want to delete <strong>%s</strong> selected %s?"
1372
+ msgstr ""
1373
+ "Sind Sie sicher dass Sie das selektierte <strong>%s</strong> löschen wollen %s?"
1374
+
1375
+ #: ../../views/admin/manage/delete.php:1
1376
+ msgid "Delete Export"
1377
+ msgstr "Lösche Export"
1378
+
1379
+ #: ../../views/admin/manage/delete.php:4
1380
+ #, php-format
1381
+ msgid "Are you sure you want to delete <strong>%s</strong> export?"
1382
+ msgstr "Sind Sie sicher dass Sie den Export <strong>%s</strong> löschen wollen?"
1383
+
1384
+ #: ../../views/admin/manage/index.php:18 ../../views/admin/manage/index.php:20
1385
+ msgid "Search Exports"
1386
+ msgstr "Suche Exports"
1387
+
1388
+ #: ../../views/admin/manage/index.php:28
1389
+ msgid "Name"
1390
+ msgstr "Name"
1391
+
1392
+ #: ../../views/admin/manage/index.php:30
1393
+ msgid "Query"
1394
+ msgstr "Abfrage"
1395
+
1396
+ #: ../../views/admin/manage/index.php:32
1397
+ msgid "Summary"
1398
+ msgstr "Zusammenfassung"
1399
+
1400
+ #: ../../views/admin/manage/index.php:34
1401
+ msgid "Info & Options"
1402
+ msgstr "Info & Optionen"
1403
+
1404
+ #: ../../views/admin/manage/index.php:51 ../../views/admin/manage/index.php:354
1405
+ msgid "Bulk Actions"
1406
+ msgstr "Massen Aktion"
1407
+
1408
+ #: ../../views/admin/manage/index.php:54 ../../views/admin/manage/index.php:362
1409
+ msgid "Apply"
1410
+ msgstr "Anwenden"
1411
+
1412
+ #: ../../views/admin/manage/index.php:60
1413
+ #, php-format
1414
+ msgid "Displaying %s&#8211;%s of %s"
1415
+ msgstr "Zeige %s&#8211;%s von %s"
1416
+
1417
+ #: ../../views/admin/manage/index.php:104
1418
+ msgid "No previous exports found."
1419
+ msgstr "Keine vorherigen Exports gefunden."
1420
+
1421
+ #: ../../views/admin/manage/index.php:134 ../../views/admin/manage/update.php:195
1422
+ msgid "Edit Template"
1423
+ msgstr "Ändere Vorlage"
1424
+
1425
+ #: ../../views/admin/manage/index.php:135
1426
+ msgid "Edit Options"
1427
+ msgstr "Ändere Optionen"
1428
+
1429
+ #: ../../views/admin/manage/index.php:163 ../../views/admin/manage/scheduling.php:2
1430
+ msgid "Cron Scheduling"
1431
+ msgstr "Cron Geplant"
1432
+
1433
+ #: ../../views/admin/manage/index.php:207
1434
+ msgid "Import with WP All Import"
1435
+ msgstr "Importiere mit WP All Import"
1436
+
1437
+ #: ../../views/admin/manage/index.php:217 ../../views/admin/manage/templates.php:2
1438
+ msgid "Download Import Templates"
1439
+ msgstr "Lade Import Vorlagen herunter"
1440
+
1441
+ #: ../../views/admin/manage/index.php:229
1442
+ msgid "Post Types: "
1443
+ msgstr "Post Typen:"
1444
+
1445
+ #: ../../views/admin/manage/index.php:246
1446
+ msgid "Y/m/d g:i a"
1447
+ msgstr "J/M/D g:i a"
1448
+
1449
+ #: ../../views/admin/manage/index.php:256
1450
+ msgid "triggered with cron"
1451
+ msgstr "Ausgelöst von cron"
1452
+
1453
+ #: ../../views/admin/manage/index.php:263 ../../views/admin/manage/index.php:278 .
1454
+ #: ../views/admin/manage/index.php:292
1455
+ #, php-format
1456
+ msgid "last activity %s ago"
1457
+ msgstr "Letzte Aktivität vor %s "
1458
+
1459
+ #: ../../views/admin/manage/index.php:270
1460
+ msgid "currently processing with cron"
1461
+ msgstr "cron Bearbeitung in Gang"
1462
+
1463
+ #: ../../views/admin/manage/index.php:285
1464
+ msgid "Export currently in progress"
1465
+ msgstr "Export Bearbeitung in Gang"
1466
+
1467
+ #: ../../views/admin/manage/index.php:299
1468
+ #, php-format
1469
+ msgid "Export Attempt at %s"
1470
+ msgstr "Export Versuch bei %s"
1471
+
1472
+ #: ../../views/admin/manage/index.php:303
1473
+ #, php-format
1474
+ msgid "Last run: %s"
1475
+ msgstr "Letzter Lauf: %s"
1476
+
1477
+ #: ../../views/admin/manage/index.php:303
1478
+ msgid "never"
1479
+ msgstr "Nie"
1480
+
1481
+ #: ../../views/admin/manage/index.php:304
1482
+ #, php-format
1483
+ msgid "%d Records Exported"
1484
+ msgstr "%d Datensätze exportiert"
1485
+
1486
+ #: ../../views/admin/manage/index.php:305
1487
+ #, php-format
1488
+ msgid "Format: %s"
1489
+ msgstr "Formatiere: %s"
1490
+
1491
+ #: ../../views/admin/manage/index.php:311
1492
+ msgid "settings edited since last run"
1493
+ msgstr "Einstellungen geändert seit letztem Lauf"
1494
+
1495
+ #: ../../views/admin/manage/index.php:323
1496
+ msgid "Edit"
1497
+ msgstr "Ändern"
1498
+
1499
+ #: ../../views/admin/manage/index.php:324
1500
+ msgid "Run Export"
1501
+ msgstr "Export starten"
1502
+
1503
+ #: ../../views/admin/manage/index.php:326
1504
+ msgid "Cancel Cron"
1505
+ msgstr "Cron Abbrechen"
1506
+
1507
+ #: ../../views/admin/manage/index.php:328
1508
+ msgid "Cancel"
1509
+ msgstr "Abbrechen"
1510
+
1511
+ #: ../../views/admin/manage/index.php:358
1512
+ msgid "Restore"
1513
+ msgstr "Wiederherstellen"
1514
+
1515
+ #: ../../views/admin/manage/index.php:359
1516
+ msgid "Delete Permanently"
1517
+ msgstr "Permanent Löschen"
1518
+
1519
+ #: ../../views/admin/manage/scheduling.php:6
1520
+ msgid ""
1521
+ "To schedule an export, you must create two cron jobs in your web hosting control "
1522
+ "panel. One cron job will be used to run the Trigger script, the other to run the "
1523
+ "Execution script."
1524
+ msgstr ""
1525
+ "Um einen Export zu planen, müssen Sie zwei Cron Jobs in Ihrem web Hosting "
1526
+ "Bedienfeld erstellen. Ein Cron Job wird genutzt um das auslöse Skript zu starten, "
1527
+ "das andere um das Ausführende Skript zu starten."
1528
+
1529
+ #: ../../views/admin/manage/scheduling.php:17
1530
+ msgid "Export File URL"
1531
+ msgstr "Exportiere Datei URL"
1532
+
1533
+ #: ../../views/admin/manage/scheduling.php:20
1534
+ msgid "Export Bundle URL"
1535
+ msgstr "Exportiere Paket URL"
1536
+
1537
+ #: ../../views/admin/manage/scheduling.php:25
1538
+ msgid "Trigger Script"
1539
+ msgstr "Auslösendes Skript"
1540
+
1541
+ #: ../../views/admin/manage/scheduling.php:27
1542
+ msgid "Every time you want to schedule the export, run the trigger script."
1543
+ msgstr "Jedes mal wenn Sie den Export planen wollen, starten Sie das Auslöse Skript."
1544
+
1545
+ #: ../../views/admin/manage/scheduling.php:29
1546
+ msgid ""
1547
+ "To schedule the export to run once every 24 hours, run the trigger script every 24 "
1548
+ "hours. Most hosts require you to use “wget” to access a URL. Ask your host for "
1549
+ "details."
1550
+ msgstr ""
1551
+ "Um den Export einmal in 24 Stunden zu planen, starten Sie das Auslöse Skript alle "
1552
+ "24 Stunden. Die meisten Hosts erlauben \"wget\" für den Zugriff auf eine URL. "
1553
+ "Fragen Sie Ihren Host für Details."
1554
+
1555
+ #: ../../views/admin/manage/scheduling.php:31 ../../views/admin/manage/scheduling.
1556
+ #: php:43
1557
+ msgid "Example:"
1558
+ msgstr "Beispiel:"
1559
+
1560
+ #: ../../views/admin/manage/scheduling.php:35
1561
+ msgid "Execution Script"
1562
+ msgstr "Ausführende Skript"
1563
+
1564
+ #: ../../views/admin/manage/scheduling.php:37
1565
+ msgid ""
1566
+ "The Execution script actually executes the export, once it has been triggered with "
1567
+ "the Trigger script."
1568
+ msgstr ""
1569
+ "Das ausführende Skript erledigt den Export, wenn es vom auslösenden Skript "
1570
+ "gestartet wurde."
1571
+
1572
+ #: ../../views/admin/manage/scheduling.php:39
1573
+ msgid ""
1574
+ "It processes in iteration (only exporting a few records each time it runs) to "
1575
+ "optimize server load. It is recommended you run the execution script every 2 "
1576
+ "minutes."
1577
+ msgstr ""
1578
+ "Es bearbeitet in Schleifendurchläufen (importiert nur ein paar Datensätze mit "
1579
+ "jedem Durchlauf) zur Optimierung der Serverlast. Es wird empfohlen das Ausführende "
1580
+ "Skript alle 2 Minuten zu starten."
1581
+
1582
+ #: ../../views/admin/manage/scheduling.php:41
1583
+ msgid ""
1584
+ "It also operates this way in case of unexpected crashes by your web host. If it "
1585
+ "crashes before the export is finished, the next run of the cron job two minutes "
1586
+ "later will continue it where it left off, ensuring reliability."
1587
+ msgstr ""
1588
+ "So funktioniert es auch, wenn unerwartete Abstürze Ihres Hosts auftreten. Wenn es "
1589
+ "abstürzt bevor der Export fertig ist, wird der nächste Lauf des cron Jobs zwei "
1590
+ "Minuten später dort weiter machen, wo der vorherige aufgehört hat."
1591
+
1592
+ #: ../../views/admin/manage/scheduling.php:47
1593
+ msgid "Notes"
1594
+ msgstr "Hinweis"
1595
+
1596
+ #: ../../views/admin/manage/scheduling.php:50
1597
+ msgid ""
1598
+ "Your web host may require you to use a command other than wget, although wget is "
1599
+ "most common. In this case, you must asking your web hosting provider for help."
1600
+ msgstr ""
1601
+ "Ihr Webhost benötigt evtl einen anderen Befehl als \"wget\", obwohl \"wget\" das "
1602
+ "am häufigsten genutzte ist. In diesem Fall müssen Sie Ihren Webhost Anbieter um "
1603
+ "Hilfe fragen."
1604
+
1605
+ #: ../../views/admin/manage/templates.php:6
1606
+ msgid ""
1607
+ "Download your import templates and use them to import your exported file to a "
1608
+ "separate WordPress/WP All Import installation."
1609
+ msgstr ""
1610
+ "Laden Sie Ihre Importvorlagen herunter und benutzen Sie diese für einen Import der "
1611
+ "exportierten Daten in einer andere WordPress/WP All Import Installation."
1612
+
1613
+ #: ../../views/admin/manage/templates.php:10
1614
+ msgid ""
1615
+ "Install these import templates in your separate WP All Import installation from "
1616
+ "the All Import -> Settings page by clicking the \"Import Templates\" button."
1617
+ msgstr ""
1618
+ "Installieren Sie diese Importvorlagen in einer anderen WP All Import Installation "
1619
+ "von All Import -> Einstellungen durch klicken auf den \"Importiere Vorlagen\" "
1620
+ "Button."
1621
+
1622
+ #: ../../views/admin/settings/index.php:17
1623
+ msgid "Import/Export Templates"
1624
+ msgstr "Importiere/Exportiere Vorlagen"
1625
+
1626
+ #: ../../views/admin/settings/index.php:31
1627
+ msgid "Delete Selected"
1628
+ msgstr "Lösche Ausgewählte"
1629
+
1630
+ #: ../../views/admin/settings/index.php:32
1631
+ msgid "Export Selected"
1632
+ msgstr "Exportiere Ausgewählte"
1633
+
1634
+ #: ../../views/admin/settings/index.php:35
1635
+ msgid "There are no templates saved"
1636
+ msgstr "Es sind keine Vorlagen gespeichert"
1637
+
1638
+ #: ../../views/admin/settings/index.php:40
1639
+ msgid "Import Templates"
1640
+ msgstr "Importiere Templates"
1641
+
1642
+ #: ../../views/admin/settings/index.php:49
1643
+ msgid "Cron Exports"
1644
+ msgstr "Cron Exportieren"
1645
+
1646
+ #: ../../views/admin/settings/index.php:54
1647
+ msgid "Secret Key"
1648
+ msgstr "Geheimer Schlüssel"
1649
+
1650
+ #: ../../views/admin/settings/index.php:57
1651
+ msgid "Changing this will require you to re-create your existing cron jobs."
1652
+ msgstr "Wenn Sie das ändern, müssen Sie Ihre existierenden Cron Jobs neu erstellen."
1653
+
1654
+ #: ../../views/admin/settings/index.php:65
1655
+ msgid "Files"
1656
+ msgstr "Dateien"
1657
+
1658
+ #: ../../views/admin/settings/index.php:70 ../../views/admin/settings/index.php:73
1659
+ msgid "Secure Mode"
1660
+ msgstr "Sicherer Modus"
1661
+
1662
+ #: ../../views/admin/settings/index.php:75
1663
+ msgid "Randomize folder names"
1664
+ msgstr "Verzeichnis Namen zufällig anordnen"
1665
+
1666
+ #: ../../views/admin/settings/index.php:81
1667
+ #, php-format
1668
+ msgid ""
1669
+ "If enabled, exported files and temporary files will be saved in a folder with a "
1670
+ "randomized name in %s.<br/><br/>If disabled, exported files will be saved in the "
1671
+ "Media Library."
1672
+ msgstr ""
1673
+ "Wenn aktiviert werden exportierte Dateien und temporäre Dateien in einem "
1674
+ "Verzeichnis mit zufälliger Namensgebung gespeichert %s.<br/><br/>Wenn deaktiviert "
1675
+ "werden die Dateien in der Medien Bibliothek gespeichert."
1676
+
1677
+ #: ../../views/admin/settings/index.php:88
1678
+ msgid "Licenses"
1679
+ msgstr "Lizenzen"
1680
+
1681
+ #: ../../views/admin/settings/index.php:93
1682
+ msgid "License Key"
1683
+ msgstr "Lizenz Schlüssel"
1684
+
1685
+ #: ../../views/admin/settings/index.php:99
1686
+ msgid "Active"
1687
+ msgstr "Aktiv"
1688
+
1689
+ #: ../../views/admin/settings/index.php:101
1690
+ msgid "Activate License"
1691
+ msgstr "Aktiviere Lizenz"
1692
+
1693
+ #: ../../views/admin/settings/index.php:106
1694
+ msgid ""
1695
+ "A license key is required to access plugin updates. You can use your license key "
1696
+ "on an unlimited number of websites. Do not distribute your license key to 3rd "
1697
+ "parties. You can get your license key in the <a target=\"_blank\" href=\"http://"
1698
+ "www.wpallimport.com/portal\">customer portal</a>."
1699
+ msgstr ""
1700
+ "Ein Lizenz Schlüssel wird benötigt um Zugang auf Plugin Updates zu haben. Sie "
1701
+ "können Ihren Lizenz Schlüssel auf einer unbestimmten Anzahl von Webseiten nutzen. "
1702
+ "Geben Sie Ihren Schlüssel nicht an dritte weiter. Sie können Ihren Lizenz "
1703
+ "Schlüssel im <a target=\"_blank\" href=\"http://www.wpallimport.com/portal"
1704
+ "\">Kunden Portal</a> bekommen."
1705
+
1706
+ #: ../../views/admin/settings/index.php:112
1707
+ msgid "Zapier Integration"
1708
+ msgstr "Zapier Integration"
1709
+
1710
+ #: ../../views/admin/settings/index.php:117
1711
+ msgid "API Key"
1712
+ msgstr "API Schlüssel"
1713
+
1714
+ #: ../../views/admin/settings/index.php:120
1715
+ msgid "Generate New API Key"
1716
+ msgstr "Erzeuge neuen API Schlüssel"
1717
+
1718
+ #: ../../views/admin/settings/index.php:121
1719
+ msgid "Changing the key will require you to update your existing Zaps on Zapier."
1720
+ msgstr ""
1721
+ "Eine Änderung des Schlüssels wird eine Aktualisierung der Bestehenden Zaps auf "
1722
+ "Zapier benötigen."
1723
+
1724
+ #: ../../views/admin/settings/index.php:125
1725
+ msgid "Zapier beta invitation URL"
1726
+ msgstr "Zapier beta URl zur Einladung"
1727
+
1728
+ #: ../../views/admin/settings/index.php:127
1729
+ #, php-format
1730
+ msgid ""
1731
+ "You can get the invitation URL in the <a href=\"%s\" target=\"_blank\">customer "
1732
+ "portal</a>."
1733
+ msgstr ""
1734
+ "Die URL zur Einladung bekommen Sie in <a href=\"%s\" target=\"_blank\">Kunden "
1735
+ "Portal</a>."
i18n/languages/wp_all_export_plugin-es_ES.mo ADDED
Binary file
i18n/languages/wp_all_export_plugin-es_ES.po ADDED
@@ -0,0 +1,1450 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: WP All Export\n"
4
+ "POT-Creation-Date: 2015-10-05 22:42-0600\n"
5
+ "PO-Revision-Date: 2015-11-13 11:18+0200\n"
6
+ "Language-Team: \n"
7
+ "MIME-Version: 1.0\n"
8
+ "Content-Type: text/plain; charset=UTF-8\n"
9
+ "Content-Transfer-Encoding: 8bit\n"
10
+ "X-Generator: Poedit 1.8.4\n"
11
+ "X-Poedit-Basepath: .\n"
12
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
13
+ "X-Poedit-SourceCharset: UTF-8\n"
14
+ "X-Poedit-KeywordsList: __;_e;_ngettext;_n;_ngettext_noop;_n_noop;_x;_nx;"
15
+ "_nx_noop;_ex;esc_attr__;esc_attr_e;esc_attr_x;esc_html__;esc_html_e;"
16
+ "esc_html_x;_c;_nc\n"
17
+ "Last-Translator: \n"
18
+ "Language: es_419\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+
21
+ #: static/js/jquery/moment.js:6
22
+ msgid "year"
23
+ msgstr "año"
24
+
25
+ #: actions/admin_menu.php:11 actions/admin_menu.php:14
26
+ #: actions/admin_menu.php:15 actions/admin_menu.php:16
27
+ #: actions/admin_menu.php:17 models/export/record.php:487
28
+ #: views/admin/export/index.php:9 views/admin/export/options.php:15
29
+ #: views/admin/export/process.php:9 views/admin/export/template.php:7
30
+ #: views/admin/manage/index.php:4 views/admin/settings/index.php:6
31
+ msgid "WP All Export"
32
+ msgstr "WP All Export"
33
+
34
+ #: actions/admin_menu.php:11
35
+ msgid "All Export"
36
+ msgstr "All Export"
37
+
38
+ #: actions/admin_menu.php:14
39
+ msgid "Export to XML"
40
+ msgstr "Exportar a XML"
41
+
42
+ #: actions/admin_menu.php:14
43
+ msgid "New Export"
44
+ msgstr "Nueva Exportación"
45
+
46
+ #: actions/admin_menu.php:15 views/admin/export/process.php:51
47
+ #: views/admin/manage/index.php:5
48
+ msgid "Manage Exports"
49
+ msgstr "Manejar Exportaciones"
50
+
51
+ #: actions/admin_menu.php:16 views/admin/settings/index.php:7
52
+ msgid "Settings"
53
+ msgstr "Configuración "
54
+
55
+ #: actions/admin_menu.php:17
56
+ msgid "Feedback"
57
+ msgstr "Retroalimentación"
58
+
59
+ #: actions/wp_ajax_export_available_rules.php:6
60
+ #: actions/wp_ajax_export_available_rules.php:10
61
+ #: actions/wp_ajax_export_filtering.php:6
62
+ #: actions/wp_ajax_export_filtering.php:10
63
+ #: actions/wp_ajax_export_filtering_count.php:6
64
+ #: actions/wp_ajax_export_filtering_count.php:10
65
+ #: actions/wp_ajax_export_preview.php:8 actions/wp_ajax_export_preview.php:12
66
+ #: actions/wp_ajax_save_functions.php:6 actions/wp_ajax_save_functions.php:10
67
+ #: actions/wp_ajax_wpallexport.php:8 actions/wp_ajax_wpallexport.php:12
68
+ #: controllers/admin/manage.php:257 controllers/admin/manage.php:292
69
+ #: controllers/admin/manage.php:378 controllers/controller.php:114
70
+ msgid "Security check"
71
+ msgstr "Contol de Seguridad"
72
+
73
+ #: actions/wp_ajax_export_available_rules.php:21
74
+ #: actions/wp_ajax_export_filtering.php:50 views/admin/export/options.php:92
75
+ msgid "Select Rule"
76
+ msgstr "Seleccionar Regla"
77
+
78
+ #: actions/wp_ajax_export_available_rules.php:38
79
+ msgid "equals"
80
+ msgstr "es igual a"
81
+
82
+ #: actions/wp_ajax_export_available_rules.php:39
83
+ msgid "doesn't equal"
84
+ msgstr "no es igual a"
85
+
86
+ #: actions/wp_ajax_export_available_rules.php:40
87
+ msgid "greater than"
88
+ msgstr "mayor que"
89
+
90
+ #: actions/wp_ajax_export_available_rules.php:41
91
+ msgid "equal to or greater than"
92
+ msgstr "es igual o mayor que"
93
+
94
+ #: actions/wp_ajax_export_available_rules.php:42
95
+ msgid "less than"
96
+ msgstr "menor que"
97
+
98
+ #: actions/wp_ajax_export_available_rules.php:43
99
+ msgid "equal to or less than"
100
+ msgstr "es igual a o menor que"
101
+
102
+ #: actions/wp_ajax_export_available_rules.php:45
103
+ msgid "contains"
104
+ msgstr "contiene"
105
+
106
+ #: actions/wp_ajax_export_available_rules.php:46
107
+ msgid "doesn't contain"
108
+ msgstr "no contiene"
109
+
110
+ #: actions/wp_ajax_export_available_rules.php:47
111
+ msgid "is empty"
112
+ msgstr "esta vacío"
113
+
114
+ #: actions/wp_ajax_export_available_rules.php:48
115
+ msgid "is not empty"
116
+ msgstr "no está vacío"
117
+
118
+ #: actions/wp_ajax_export_filtering.php:30
119
+ msgid "Add Filtering Options"
120
+ msgstr "Agregar opciones de filtrado"
121
+
122
+ #: actions/wp_ajax_export_filtering.php:36 views/admin/export/options.php:78
123
+ msgid "Element"
124
+ msgstr "Elemento"
125
+
126
+ #: actions/wp_ajax_export_filtering.php:37 views/admin/export/options.php:79
127
+ msgid "Rule"
128
+ msgstr "Regla"
129
+
130
+ #: actions/wp_ajax_export_filtering.php:38 views/admin/export/options.php:80
131
+ msgid "Value"
132
+ msgstr "Valor"
133
+
134
+ #: actions/wp_ajax_export_filtering.php:44 views/admin/export/options.php:86
135
+ msgid "Select Element"
136
+ msgstr "Seleccionar Elemento"
137
+
138
+ #: actions/wp_ajax_export_filtering.php:57 views/admin/export/options.php:99
139
+ msgid "Add Rule"
140
+ msgstr "Agregar Regla"
141
+
142
+ #: actions/wp_ajax_export_filtering.php:69 views/admin/export/options.php:112
143
+ msgid ""
144
+ "No filtering options. Add filtering options to only export records matching "
145
+ "some specified criteria."
146
+ msgstr ""
147
+ "Sin opciones de filtrado. Agregue opciones de filtrado solo para exportar "
148
+ "registros que coincidan algún criterio especificado."
149
+
150
+ #: actions/wp_ajax_export_filtering.php:106
151
+ msgid "Apply Filters To Export Data"
152
+ msgstr "Aplicar Filtros Para Exportar Datos"
153
+
154
+ #: actions/wp_ajax_export_filtering.php:114 views/admin/export/options.php:159
155
+ msgid "Variable product matching rules: "
156
+ msgstr "Reglas de coincidencia de producto variable:"
157
+
158
+ #: actions/wp_ajax_export_filtering.php:116 views/admin/export/options.php:161
159
+ msgid "Strict"
160
+ msgstr "Estricto"
161
+
162
+ #: actions/wp_ajax_export_filtering.php:117 views/admin/export/options.php:162
163
+ msgid "Permissive"
164
+ msgstr "Permisivo"
165
+
166
+ #: actions/wp_ajax_export_filtering.php:119 views/admin/export/options.php:164
167
+ msgid ""
168
+ "Strict matching requires all variations to pass in order for the product to "
169
+ "be exported. Permissive matching allows the product to be exported if any of "
170
+ "the variations pass."
171
+ msgstr ""
172
+ "Emparejamiento estricto requiere todas las variaciones para pasar en orden "
173
+ "para el producto a ser exportado. Emparejamiento permisivo, permite que el "
174
+ "producto sea exportado si ninguna de las variaciones pasan."
175
+
176
+ #: actions/wp_ajax_export_filtering_count.php:68
177
+ msgid "Continue to Step 2 to choose data to include in the export file."
178
+ msgstr ""
179
+ "Continúe al paso 2 para escoger la información para incluir al archivo de "
180
+ "exportación"
181
+
182
+ #: actions/wp_ajax_export_filtering_count.php:70
183
+ #, php-format
184
+ msgid "No matching %s found for selected filter rules"
185
+ msgstr "No se encontró %s que coincidan para reglas de filtro seleccionadas"
186
+
187
+ #: actions/wp_ajax_export_preview.php:125
188
+ msgid "Data not found."
189
+ msgstr "Datos no encontrados"
190
+
191
+ #: actions/wp_ajax_export_preview.php:134
192
+ msgid "This format is not supported."
193
+ msgstr "Este formato no es soportado"
194
+
195
+ #: actions/wp_ajax_save_functions.php:43
196
+ msgid "PHP code must be wrapped in \"&lt;?php\" and \"?&gt;\""
197
+ msgstr "El código PHP debe de estar envuelto en \"&lt;?php\" y \"?&gt;\""
198
+
199
+ #: actions/wp_ajax_save_functions.php:52
200
+ msgid "File has been successfully updated."
201
+ msgstr "El archivo ha sido actualizado satisfactoriamente"
202
+
203
+ #: actions/wp_loaded.php:32 actions/wp_loaded.php:67
204
+ #, php-format
205
+ msgid "Export #%s is currently in manually process. Request skipped."
206
+ msgstr ""
207
+ "Exportación #%s se encuentra actualmente en proceso manual. Solicitud "
208
+ "omitida."
209
+
210
+ #: actions/wp_loaded.php:42
211
+ #, php-format
212
+ msgid "#%s Cron job triggered."
213
+ msgstr "#%s Trabajo cron desencadenado."
214
+
215
+ #: actions/wp_loaded.php:46
216
+ #, php-format
217
+ msgid "Export #%s currently in process. Request skipped."
218
+ msgstr ""
219
+ "Exportación #%s se encuentra actualmente en proceso. Solicitud omitida."
220
+
221
+ #: actions/wp_loaded.php:49
222
+ #, php-format
223
+ msgid "Export #%s already triggered. Request skipped."
224
+ msgstr "Exportación #%s desencadenada. Solicitud omitida."
225
+
226
+ #: actions/wp_loaded.php:64
227
+ #, php-format
228
+ msgid "Export #%s is not triggered. Request skipped."
229
+ msgstr "Exportación #%s no ha sido desencadenada. Solicitud omitida."
230
+
231
+ #: actions/wp_loaded.php:77
232
+ #, php-format
233
+ msgid "Export #%s complete"
234
+ msgstr "Exportación #%s completada"
235
+
236
+ #: actions/wp_loaded.php:82
237
+ #, php-format
238
+ msgid "Records Processed %s"
239
+ msgstr "Registros Procesados %s"
240
+
241
+ #: actions/wp_loaded.php:88
242
+ #, php-format
243
+ msgid "Export #%s already processing. Request skipped."
244
+ msgstr "Exportación #%s esta siendo procesada. Solicitud omitida"
245
+
246
+ #: classes/updater.php:187
247
+ #, php-format
248
+ msgid ""
249
+ "There is a new version of %1$s available. <a target=\"_blank\" class="
250
+ "\"thickbox\" href=\"%2$s\">View version %3$s details</a>."
251
+ msgstr ""
252
+ "Hay una nueva versión de %1$s disponible. <a target=\"_blank\" class="
253
+ "\"thickbox\" href=\"%2$s\">Ver detalles de versión %3$s details</a>."
254
+
255
+ #: classes/updater.php:194
256
+ #, php-format
257
+ msgid ""
258
+ "There is a new version of %1$s available. <a target=\"_blank\" class="
259
+ "\"thickbox\" href=\"%2$s\">View version %3$s details</a> or <a href=\"%4$s"
260
+ "\">update now</a>."
261
+ msgstr ""
262
+ "Hay una nueva versión de %1$s disponible. <a target=\"_blank\" class="
263
+ "\"thickbox\" href=\"%2$s\">Ver detalles de versión %3$s </a> o <a href=\"%4$s"
264
+ "\">actualizar ahora</a>."
265
+
266
+ #: classes/updater.php:346
267
+ msgid "You do not have permission to install plugin updates"
268
+ msgstr "Usted no tiene permisos para instalar actualizaciones de plugin"
269
+
270
+ #: classes/updater.php:346
271
+ msgid "Error"
272
+ msgstr "Error"
273
+
274
+ #: controllers/admin/export.php:202
275
+ msgid "You haven't selected any columns for export."
276
+ msgstr "No ha seleccionado ninguna columna para exportar."
277
+
278
+ #: controllers/admin/export.php:206
279
+ msgid "CSV delimiter must be specified"
280
+ msgstr "Delimitador CSV debe de ser especificado"
281
+
282
+ #: controllers/admin/export.php:223 controllers/admin/export.php:305
283
+ msgid "Options updated"
284
+ msgstr "Opciones actualizadas"
285
+
286
+ #: controllers/admin/manage.php:56
287
+ msgid "&laquo;"
288
+ msgstr "&laquo;"
289
+
290
+ #: controllers/admin/manage.php:57
291
+ msgid "&raquo;"
292
+ msgstr "&raquo;"
293
+
294
+ #: controllers/admin/manage.php:155 views/admin/manage/index.php:292
295
+ msgid "Export canceled"
296
+ msgstr "Exportación cancelada"
297
+
298
+ #: controllers/admin/manage.php:221
299
+ msgid "Export deleted"
300
+ msgstr "Exportación eliminada"
301
+
302
+ #: controllers/admin/manage.php:249
303
+ #, php-format
304
+ msgid "%d %s deleted"
305
+ msgstr "%d %s eliminada"
306
+
307
+ #: controllers/admin/manage.php:249 views/admin/manage/bulk.php:10
308
+ msgid "export"
309
+ msgstr "exportar"
310
+
311
+ #: controllers/admin/manage.php:343
312
+ msgid ""
313
+ "The other two files in this zip are the export file containing all of your "
314
+ "data and the import template for WP All Import. \n"
315
+ "\n"
316
+ "To import this data, create a new import with WP All Import and upload this "
317
+ "zip file."
318
+ msgstr ""
319
+ "Los otros dos archivos en este zip son el archivo contenedor de la "
320
+ "exportación de su datos y la plantilla de exportación para El Importador "
321
+ "WP.\n"
322
+ "\n"
323
+ "Para importar esta información, cree una nueva importación con El Importador "
324
+ "WP y cargue este archivo zip."
325
+
326
+ #: controllers/admin/manage.php:412
327
+ msgid "File format not supported"
328
+ msgstr "El forma del archivo no es soportado"
329
+
330
+ #: controllers/admin/manage.php:418 controllers/admin/manage.php:423
331
+ msgid ""
332
+ "The exported file is missing and can't be downloaded. Please re-run your "
333
+ "export to re-generate it."
334
+ msgstr ""
335
+ "El archivo exportado no puede ser encontrado y no puede ser descargado. Por "
336
+ "favor ejecute nuevamente su exportación para volver a generarla."
337
+
338
+ #: controllers/admin/settings.php:21
339
+ msgid "Settings saved"
340
+ msgstr "Configuraciones guardadas"
341
+
342
+ #: filters/wpallexport_custom_types.php:4
343
+ msgid "WooCommerce Products"
344
+ msgstr "Productos de Woocommerce"
345
+
346
+ #: helpers/pmxe_render_xml_element.php:44 helpers/pmxe_render_xml_text.php:9
347
+ #, php-format
348
+ msgid "<strong>%s</strong> %s more"
349
+ msgstr "<strong>%s</strong> %s más"
350
+
351
+ #: helpers/pmxe_render_xml_element.php:44 helpers/pmxe_render_xml_text.php:9
352
+ msgid "element"
353
+ msgstr "elemento"
354
+
355
+ #: helpers/pmxe_render_xml_text.php:15
356
+ msgid "more"
357
+ msgstr "más"
358
+
359
+ #: helpers/wp_all_export_get_cpt_name.php:9
360
+ msgid "Product Variations"
361
+ msgstr "Variaciones del Producto"
362
+
363
+ #: helpers/wp_all_export_get_cpt_name.php:19 views/admin/export/index.php:67
364
+ msgid "Users"
365
+ msgstr "Usuarios"
366
+
367
+ #: helpers/wp_all_export_get_cpt_name.php:19
368
+ msgid "User"
369
+ msgstr "Usuario"
370
+
371
+ #: helpers/wp_all_export_get_cpt_name.php:23
372
+ msgid "Records"
373
+ msgstr "Registros"
374
+
375
+ #: helpers/wp_all_export_get_cpt_name.php:23
376
+ msgid "Record"
377
+ msgstr "Registro"
378
+
379
+ #: libraries/XmlExportACF.php:156 libraries/XmlExportACF.php:206
380
+ msgid "ACF"
381
+ msgstr "Campos Personalizados Avanzados (ACF)"
382
+
383
+ #: libraries/XmlExportEngine.php:168
384
+ msgid "Standard"
385
+ msgstr "Estándar"
386
+
387
+ #: libraries/XmlExportEngine.php:172
388
+ msgid "Taxonomies"
389
+ msgstr "Taxonomías"
390
+
391
+ #: libraries/XmlExportEngine.php:176
392
+ msgid "Custom Fields"
393
+ msgstr "Campos Personalizados"
394
+
395
+ #: libraries/XmlExportEngine.php:180
396
+ msgid "Other"
397
+ msgstr "Otro"
398
+
399
+ #: libraries/XmlExportEngine.php:187 libraries/XmlExportUser.php:199
400
+ msgid "General"
401
+ msgstr "General"
402
+
403
+ #: libraries/XmlExportEngine.php:242
404
+ msgid "WP Query field is required"
405
+ msgstr "El campo de WP Query es requerido"
406
+
407
+ #: libraries/XmlExportEngine.php:250
408
+ msgid "No matching users found"
409
+ msgstr "No se encontró usuarios que coincidan"
410
+
411
+ #: libraries/XmlExportEngine.php:262
412
+ msgid "Invalid query"
413
+ msgstr "Consulta no válida"
414
+
415
+ #: libraries/XmlExportEngine.php:265
416
+ msgid "No matching posts found for WP_Query expression specified"
417
+ msgstr ""
418
+ "No se encontraron entradas que coincidan para la expresión especificada "
419
+ "WP_Query"
420
+
421
+ #: libraries/XmlExportEngine.php:289 libraries/XmlExportEngine.php:305
422
+ msgid "No matching posts found for selected post types"
423
+ msgstr ""
424
+ "No se encontraron entradas que coincidan para el tipo de entradas elegido"
425
+
426
+ #: libraries/XmlExportEngine.php:423
427
+ #: libraries/XmlExportWooCommerceOrder.php:875
428
+ msgid "All"
429
+ msgstr "Todo"
430
+
431
+ #: libraries/XmlExportEngine.php:442 views/admin/export/template.php:73
432
+ #: views/admin/export/template.php:106 views/admin/export/template.php:133
433
+ msgid "Delete field"
434
+ msgstr "Eliminar campo"
435
+
436
+ #: libraries/XmlExportUser.php:218 libraries/XmlExportUser.php:292
437
+ #: libraries/XmlExportWooCommerce.php:111
438
+ #: libraries/XmlExportWooCommerce.php:279
439
+ #: libraries/XmlExportWooCommerceOrder.php:130
440
+ #: libraries/XmlExportWooCommerceOrder.php:934
441
+ #: views/admin/export/template/new_field_cpt.php:78
442
+ #: views/admin/export/template/new_field_shop_order.php:33
443
+ #: views/admin/export/template/new_field_user.php:57
444
+ msgid "Advanced"
445
+ msgstr "Avanzado"
446
+
447
+ #: libraries/XmlExportUser.php:231
448
+ msgid "Network"
449
+ msgstr "Red"
450
+
451
+ #: libraries/XmlExportWooCommerce.php:98 libraries/XmlExportWooCommerce.php:283
452
+ msgid "Product Data"
453
+ msgstr "Datos del Producto"
454
+
455
+ #: libraries/XmlExportWooCommerceOrder.php:65
456
+ #: libraries/XmlExportWooCommerceOrder.php:914
457
+ msgid "Order"
458
+ msgstr "Orden"
459
+
460
+ #: libraries/XmlExportWooCommerceOrder.php:67
461
+ #: libraries/XmlExportWooCommerceOrder.php:949
462
+ msgid "Order ID"
463
+ msgstr "ID orden"
464
+
465
+ #: libraries/XmlExportWooCommerceOrder.php:68
466
+ #: libraries/XmlExportWooCommerceOrder.php:950
467
+ msgid "Order Key"
468
+ msgstr "Clave de Orden "
469
+
470
+ #: libraries/XmlExportWooCommerceOrder.php:69
471
+ #: libraries/XmlExportWooCommerceOrder.php:951
472
+ msgid "Order Date"
473
+ msgstr "Fecha de Orden"
474
+
475
+ #: libraries/XmlExportWooCommerceOrder.php:70
476
+ #: libraries/XmlExportWooCommerceOrder.php:952
477
+ msgid "Completed Date"
478
+ msgstr "Fecha Completada"
479
+
480
+ #: libraries/XmlExportWooCommerceOrder.php:71
481
+ #: libraries/XmlExportWooCommerceOrder.php:953
482
+ #: views/admin/export/template/new_field_cpt.php:9
483
+ msgid "Title"
484
+ msgstr "Título"
485
+
486
+ #: libraries/XmlExportWooCommerceOrder.php:72
487
+ #: libraries/XmlExportWooCommerceOrder.php:954
488
+ msgid "Order Status"
489
+ msgstr "Estado de Orden"
490
+
491
+ #: libraries/XmlExportWooCommerceOrder.php:73
492
+ #: libraries/XmlExportWooCommerceOrder.php:955
493
+ msgid "Order Currency"
494
+ msgstr "Moneda de Orden"
495
+
496
+ #: libraries/XmlExportWooCommerceOrder.php:74
497
+ #: libraries/XmlExportWooCommerceOrder.php:956
498
+ msgid "Payment Method"
499
+ msgstr "Método de Pago"
500
+
501
+ #: libraries/XmlExportWooCommerceOrder.php:75
502
+ #: libraries/XmlExportWooCommerceOrder.php:957
503
+ msgid "Order Total"
504
+ msgstr "Orden Total"
505
+
506
+ #: libraries/XmlExportWooCommerceOrder.php:79
507
+ #: libraries/XmlExportWooCommerceOrder.php:918
508
+ msgid "Customer"
509
+ msgstr "Cliente"
510
+
511
+ #: libraries/XmlExportWooCommerceOrder.php:875
512
+ msgid "Data"
513
+ msgstr "Datos"
514
+
515
+ #: libraries/XmlExportWooCommerceOrder.php:922
516
+ msgid "Items"
517
+ msgstr "Articulos"
518
+
519
+ #: libraries/XmlExportWooCommerceOrder.php:926
520
+ msgid "Taxes & Shipping"
521
+ msgstr "Impuestos y Envíos"
522
+
523
+ #: libraries/XmlExportWooCommerceOrder.php:930
524
+ msgid "Fees & Discounts"
525
+ msgstr "Comisiones y Descuentos"
526
+
527
+ #: libraries/XmlExportWooCommerceOrder.php:970
528
+ msgid "Product ID"
529
+ msgstr "ID Producto"
530
+
531
+ #: libraries/XmlExportWooCommerceOrder.php:971
532
+ msgid "SKU"
533
+ msgstr "SKU"
534
+
535
+ #: libraries/XmlExportWooCommerceOrder.php:972
536
+ msgid "Product Name"
537
+ msgstr "Nombre del Producto"
538
+
539
+ #: libraries/XmlExportWooCommerceOrder.php:973
540
+ msgid "Product Variation Details"
541
+ msgstr "Detalles de Variación de Productos "
542
+
543
+ #: libraries/XmlExportWooCommerceOrder.php:974
544
+ msgid "Quantity"
545
+ msgstr "Cantidad "
546
+
547
+ #: libraries/XmlExportWooCommerceOrder.php:975
548
+ msgid "Item Cost"
549
+ msgstr "Costo del Artículo"
550
+
551
+ #: libraries/XmlExportWooCommerceOrder.php:976
552
+ msgid "Item Total"
553
+ msgstr "Total de Artículos"
554
+
555
+ #: libraries/XmlExportWooCommerceOrder.php:985
556
+ msgid "Rate Code (per tax)"
557
+ msgstr "Código de Tarifa (por impuesto)"
558
+
559
+ #: libraries/XmlExportWooCommerceOrder.php:986
560
+ msgid "Rate Percentage (per tax)"
561
+ msgstr "Porcentaje de tasa (por impuesto)"
562
+
563
+ #: libraries/XmlExportWooCommerceOrder.php:987
564
+ msgid "Amount (per tax)"
565
+ msgstr "Monto (por impuesto)"
566
+
567
+ #: libraries/XmlExportWooCommerceOrder.php:988
568
+ msgid "Total Tax Amount"
569
+ msgstr "Cantidad Total de Impuestos"
570
+
571
+ #: libraries/XmlExportWooCommerceOrder.php:989
572
+ msgid "Shipping Method"
573
+ msgstr "Método de Envío"
574
+
575
+ #: libraries/XmlExportWooCommerceOrder.php:990
576
+ msgid "Shipping Cost"
577
+ msgstr "Costo de Envío"
578
+
579
+ #: libraries/XmlExportWooCommerceOrder.php:999
580
+ msgid "Discount Amount (per coupon)"
581
+ msgstr "Monto de Descuento (per coupon)"
582
+
583
+ #: libraries/XmlExportWooCommerceOrder.php:1000
584
+ msgid "Coupons Used"
585
+ msgstr "Cupones Utilizado"
586
+
587
+ #: libraries/XmlExportWooCommerceOrder.php:1001
588
+ msgid "Total Discount Amount"
589
+ msgstr "Monto Total de Descuento"
590
+
591
+ #: libraries/XmlExportWooCommerceOrder.php:1002
592
+ msgid "Fee Amount (per surcharge)"
593
+ msgstr "Importe de la Cuenta (por recargo)"
594
+
595
+ #: libraries/XmlExportWooCommerceOrder.php:1003
596
+ msgid "Total Fee Amount"
597
+ msgstr "Monto Total de Cuota"
598
+
599
+ #: libraries/XmlExportWooCommerceOrder.php:1013
600
+ msgid "Customer User ID"
601
+ msgstr "ID del Cliente Usuario"
602
+
603
+ #: libraries/XmlExportWooCommerceOrder.php:1014
604
+ msgid "Customer Note"
605
+ msgstr "Nota de Cliente"
606
+
607
+ #: views/admin/export/index.php:10 views/admin/export/options.php:16
608
+ #: views/admin/export/process.php:10 views/admin/export/template.php:8
609
+ msgid "Export to XML / CSV"
610
+ msgstr "Exportar a XML / CSV"
611
+
612
+ #: views/admin/export/index.php:13 views/admin/export/options.php:19
613
+ #: views/admin/export/process.php:13 views/admin/export/template.php:11
614
+ msgid "Support"
615
+ msgstr "Soporte"
616
+
617
+ #: views/admin/export/index.php:13 views/admin/export/options.php:19
618
+ #: views/admin/export/process.php:13 views/admin/export/template.php:11
619
+ msgid "Documentation"
620
+ msgstr "Documentación "
621
+
622
+ #: views/admin/export/index.php:30
623
+ msgid "First, choose what to export."
624
+ msgstr "Primer, escoja que va a exportar."
625
+
626
+ #: views/admin/export/index.php:33
627
+ msgid "Specific Post Type"
628
+ msgstr "Especifique tipo de entrada"
629
+
630
+ #: views/admin/export/index.php:37
631
+ msgid "WP_Query Results"
632
+ msgstr "Resultados WP_Query"
633
+
634
+ #: views/admin/export/index.php:56
635
+ msgid "Choose a post type..."
636
+ msgstr "Escoja un tipo de entrada...."
637
+
638
+ #: views/admin/export/index.php:79
639
+ msgid "Post Type Query"
640
+ msgstr "Consulta del Tipo de Entrada"
641
+
642
+ #: views/admin/export/index.php:80
643
+ msgid "User Query"
644
+ msgstr "Consulta de usuario"
645
+
646
+ #: views/admin/export/index.php:112
647
+ msgid "Skip to Step 3"
648
+ msgstr "Vaya al paso 3"
649
+
650
+ #: views/admin/export/index.php:114
651
+ msgid "Continue to Step 2"
652
+ msgstr "Continuar al paso 2"
653
+
654
+ #: views/admin/export/index.php:116
655
+ msgid "Auto Generate Export Template"
656
+ msgstr "Auto generar plantilla de exportación"
657
+
658
+ #: views/admin/export/index.php:123 views/admin/export/options.php:238
659
+ #: views/admin/export/process.php:56 views/admin/export/template.php:214
660
+ #: views/admin/manage/index.php:359 views/admin/manage/scheduling.php:57
661
+ #: views/admin/manage/templates.php:19 views/admin/settings/index.php:91
662
+ msgid "Created by"
663
+ msgstr "Creado por"
664
+
665
+ #: views/admin/export/options.php:43
666
+ msgid "Your export is ready to run."
667
+ msgstr "Su exportación está lista para ejecutar."
668
+
669
+ #: views/admin/export/options.php:45
670
+ #, php-format
671
+ msgid "WP All Export will export %d %s."
672
+ msgstr "WP All Export exportará %d %s."
673
+
674
+ #: views/admin/export/options.php:54 views/admin/export/options.php:227
675
+ msgid "Confirm & Run Export"
676
+ msgstr "Confirmar y ejecutar exportación"
677
+
678
+ #: views/admin/export/options.php:70
679
+ msgid "Filters"
680
+ msgstr "Filtros"
681
+
682
+ #: views/admin/export/options.php:185
683
+ msgid "Advanced Export"
684
+ msgstr "Exportación avanzada"
685
+
686
+ #: views/admin/export/options.php:195
687
+ msgid "Include BOM in export file"
688
+ msgstr "Incluyen BOM en archivo de exportación"
689
+
690
+ #: views/admin/export/options.php:196
691
+ msgid ""
692
+ "The BOM will help some programs like Microsoft Excel read your export file "
693
+ "if it includes non-English characters."
694
+ msgstr ""
695
+ "El BOM le ayudará a algunos programas como Microsoft Excel leer el archivo "
696
+ "de exportación si incluye caracteres no ingleses."
697
+
698
+ #: views/admin/export/options.php:199
699
+ msgid "In each iteration, process"
700
+ msgstr "En cada iteración, proceso de"
701
+
702
+ #: views/admin/export/options.php:199
703
+ msgid "records"
704
+ msgstr "registros"
705
+
706
+ #: views/admin/export/options.php:200
707
+ msgid ""
708
+ "WP All Export must be able to process this many records in less than your "
709
+ "server's timeout settings. If your export fails before completion, to "
710
+ "troubleshoot you should lower this number."
711
+ msgstr "El Exportador WP debe ser capaz de procesar "
712
+
713
+ #: views/admin/export/options.php:206
714
+ msgid "Friendly Name:"
715
+ msgstr "Nombre descriptivo:"
716
+
717
+ #: views/admin/export/options.php:207
718
+ msgid "Save friendly name..."
719
+ msgstr "Guardar nombre descriptivo..."
720
+
721
+ #: views/admin/export/options.php:225
722
+ msgid "Back to Step 2"
723
+ msgstr "Regresar al paso 2"
724
+
725
+ #: views/admin/export/options.php:230 views/admin/export/template.php:207
726
+ msgid "Back to Manage Exports"
727
+ msgstr "Regresar a gestionar las exportaciones"
728
+
729
+ #: views/admin/export/options.php:231
730
+ msgid "Save Export Configuration"
731
+ msgstr "Guardar configuración de exportación"
732
+
733
+ #: views/admin/export/process.php:22
734
+ msgid "Export <span id=\"status\">in Progress...</span>"
735
+ msgstr "Exportación <span id=\"status\">en progreso...</span>"
736
+
737
+ #: views/admin/export/process.php:23
738
+ msgid ""
739
+ "Exporting may take some time. Please do not close your browser or refresh "
740
+ "the page until the process is complete."
741
+ msgstr ""
742
+ "Exportar puede tomar algún tiempo. Por favor, no cierre su navegador o "
743
+ "actualizar la página hasta que finalice el proceso."
744
+
745
+ #: views/admin/export/process.php:29
746
+ msgid "Time Elapsed"
747
+ msgstr "Tiempo Transcurrido"
748
+
749
+ #: views/admin/export/process.php:31
750
+ msgid "Exported"
751
+ msgstr "Exportado"
752
+
753
+ #: views/admin/export/process.php:36
754
+ msgid "Export Complete!"
755
+ msgstr "Exportación completa!"
756
+
757
+ #: views/admin/export/process.php:37
758
+ msgid "WP All Export successfully exported your data!"
759
+ msgstr "¡WP All Export ha exportado con éxito sus datos!"
760
+
761
+ #: views/admin/export/process.php:38
762
+ msgid "Download Data"
763
+ msgstr "Descargar datos"
764
+
765
+ #: views/admin/export/process.php:45 views/admin/manage/index.php:139
766
+ #: views/admin/manage/index.php:145
767
+ msgid "Bundle"
768
+ msgstr "Bulto"
769
+
770
+ #: views/admin/export/process.php:46
771
+ msgid "Settings & Data for WP All Import"
772
+ msgstr "Ajustes y datos para WP All Import"
773
+
774
+ #: views/admin/export/template.php:23
775
+ msgid "Choose data to include in the export file."
776
+ msgstr "Elegir los datos a incluir en el archivo de exportación."
777
+
778
+ #: views/admin/export/template.php:115
779
+ msgid ""
780
+ "Drag & drop data from \"Available Data\" on the right to include it in the "
781
+ "export or click \"Add Field To Export\" below."
782
+ msgstr ""
783
+ "Arrastrar y soltar datos de \"Información disponible\" sobre la derecha para "
784
+ "incluir en la exportación o haga clic en \"Agregar campo a exportar\" a "
785
+ "continuación."
786
+
787
+ #: views/admin/export/template.php:139
788
+ msgid ""
789
+ "Warning: without an ID column, you won't be able to re-import this data "
790
+ "using WP All Import."
791
+ msgstr ""
792
+ "ADVERTENCIA: sin una identificación de columna, usted no podrá re-importar "
793
+ "estos datos usando El Importador WP."
794
+
795
+ #: views/admin/export/template.php:145
796
+ msgid ""
797
+ "Warning: without _sku and product_type columns, you won't be able to re-"
798
+ "import this data using WP All Import."
799
+ msgstr ""
800
+ "ADVERTENCIA: sin columnas _sku y product_type, usted no podrá re-importar "
801
+ "estos datos usando El Importador WP."
802
+
803
+ #: views/admin/export/template.php:151
804
+ msgid ""
805
+ "Warning: without post_type column, you won't be able to re-import this data "
806
+ "using WP All Import."
807
+ msgstr ""
808
+ "ADVERTENCIA: sin columna post_type, usted no podrá re-importar estos datos "
809
+ "usando El Importador WP."
810
+
811
+ #: views/admin/export/template.php:157 views/admin/export/template.php:249
812
+ msgid "Add Field To Export"
813
+ msgstr "Agregar Campo para Exportar"
814
+
815
+ #: views/admin/export/template.php:162
816
+ msgid "Display each product in its own row"
817
+ msgstr "Mostrar cada producto en su propia fila"
818
+
819
+ #: views/admin/export/template.php:163
820
+ msgid "If an order contains multiple products, each product have its own row."
821
+ msgstr ""
822
+ "Si un pedido contiene varios productos, cada producto tiene su propia fila."
823
+
824
+ #: views/admin/export/template.php:170
825
+ msgid "Preview A Row"
826
+ msgstr "Vista previa de Fila"
827
+
828
+ #: views/admin/export/template.php:176
829
+ msgid "Export File Format:"
830
+ msgstr "Formato de archivo de exportación:"
831
+
832
+ #: views/admin/export/template.php:181
833
+ msgid "XML"
834
+ msgstr "XML"
835
+
836
+ #: views/admin/export/template.php:185
837
+ msgid "CSV"
838
+ msgstr "CSV"
839
+
840
+ #: views/admin/export/template.php:188
841
+ msgid "Delimiter:"
842
+ msgstr "Delimitador:"
843
+
844
+ #: views/admin/export/template.php:209
845
+ msgid "Continue to Step 3"
846
+ msgstr "Continuar al paso 3"
847
+
848
+ #: views/admin/export/template.php:224
849
+ msgid "Available Data"
850
+ msgstr "Datos disponibles"
851
+
852
+ #: views/admin/export/template.php:230
853
+ msgid "Auto Generate"
854
+ msgstr "Auto generar"
855
+
856
+ #: views/admin/export/template.php:249
857
+ msgid "Edit Export Field"
858
+ msgstr "Editar campo de exportación"
859
+
860
+ #: views/admin/export/template/new_field_cpt.php:4
861
+ #: views/admin/export/template/new_field_shop_order.php:4
862
+ #: views/admin/export/template/new_field_user.php:4
863
+ msgid "What field would you like to export?"
864
+ msgstr "¿Qué campo quieres exportar?"
865
+
866
+ #: views/admin/export/template/new_field_cpt.php:8
867
+ #: views/admin/export/template/new_field_user.php:8
868
+ #: views/admin/manage/index.php:27
869
+ msgid "ID"
870
+ msgstr "ID"
871
+
872
+ #: views/admin/export/template/new_field_cpt.php:10
873
+ msgid "Content"
874
+ msgstr "Contenido"
875
+
876
+ #: views/admin/export/template/new_field_cpt.php:11
877
+ msgid "Excerpt"
878
+ msgstr "Extracto"
879
+
880
+ #: views/admin/export/template/new_field_cpt.php:12
881
+ msgid "Date"
882
+ msgstr "Fecha"
883
+
884
+ #: views/admin/export/template/new_field_cpt.php:13
885
+ msgid "Post Type"
886
+ msgstr "Tipo de Entrada"
887
+
888
+ #: views/admin/export/template/new_field_cpt.php:14
889
+ msgid "Categories / Taxonomies"
890
+ msgstr "Categorías / taxonomías"
891
+
892
+ #: views/admin/export/template/new_field_cpt.php:15
893
+ msgid "Custom Field / Post Meta"
894
+ msgstr "Campo personalizado / poste de Meta"
895
+
896
+ #: views/admin/export/template/new_field_cpt.php:16
897
+ msgid "Images / Media"
898
+ msgstr "Imágenes / Media"
899
+
900
+ #: views/admin/export/template/new_field_cpt.php:17
901
+ msgid "Attachment"
902
+ msgstr "Archivo Adjunto"
903
+
904
+ #: views/admin/export/template/new_field_cpt.php:20
905
+ msgid "Post Status"
906
+ msgstr "Estado de Entrada"
907
+
908
+ #: views/admin/export/template/new_field_cpt.php:21
909
+ msgid "Author"
910
+ msgstr "Autor"
911
+
912
+ #: views/admin/export/template/new_field_cpt.php:22
913
+ msgid "Post Slug"
914
+ msgstr "Slug de Entrada"
915
+
916
+ #: views/admin/export/template/new_field_cpt.php:23
917
+ msgid "Post Format"
918
+ msgstr "Formato de Entrada"
919
+
920
+ #: views/admin/export/template/new_field_cpt.php:24
921
+ msgid "Template"
922
+ msgstr "Plantilla"
923
+
924
+ #: views/admin/export/template/new_field_cpt.php:25
925
+ msgid "Parent"
926
+ msgstr "Padre"
927
+
928
+ #: views/admin/export/template/new_field_cpt.php:26
929
+ msgid "Menu Order"
930
+ msgstr "Orden de Menús"
931
+
932
+ #: views/admin/export/template/new_field_cpt.php:27
933
+ msgid "Permalink"
934
+ msgstr "Enlace permanente"
935
+
936
+ #: views/admin/export/template/new_field_cpt.php:32
937
+ msgid "WooCommerce Data"
938
+ msgstr "Datos WooCommerce "
939
+
940
+ #: views/admin/export/template/new_field_cpt.php:33
941
+ msgid "WooCommerce Taxonomies"
942
+ msgstr "Taxonomías WooCommerce "
943
+
944
+ #: views/admin/export/template/new_field_cpt.php:36
945
+ msgid "WooCommerce Order"
946
+ msgstr "Orden WooCommerce "
947
+
948
+ #: views/admin/export/template/new_field_cpt.php:39
949
+ #: views/admin/export/template/new_field_user.php:30
950
+ msgid "Advanced Custom Fields"
951
+ msgstr "Campos Avanzados Personalizados"
952
+
953
+ #: views/admin/export/template/new_field_cpt.php:44
954
+ #: views/admin/export/template/new_field_shop_order.php:19
955
+ #: views/admin/export/template/new_field_user.php:35
956
+ msgid "SQL Query"
957
+ msgstr "Consulta SQL"
958
+
959
+ #: views/admin/export/template/new_field_cpt.php:52
960
+ #: views/admin/export/template/new_field_cpt.php:56
961
+ #: views/admin/export/template/new_field_cpt.php:60
962
+ #: views/admin/export/template/new_field_cpt.php:64
963
+ #: views/admin/export/template/new_field_cpt.php:68
964
+ #: views/admin/export/template/new_field_user.php:43
965
+ #: views/admin/export/template/new_field_user.php:47
966
+ msgid "Field Name"
967
+ msgstr "Nombre del Campo"
968
+
969
+ #: views/admin/export/template/new_field_cpt.php:73
970
+ #: views/admin/export/template/new_field_shop_order.php:26
971
+ #: views/admin/export/template/new_field_user.php:52
972
+ msgid "What would you like to name the column/element in your exported file?"
973
+ msgstr "¿Cómo te gustaría nombrar la columna/elemento en el archivo exportado?"
974
+
975
+ #: views/admin/export/template/new_field_cpt.php:82
976
+ #: views/admin/export/template/new_field_shop_order.php:37
977
+ #: views/admin/export/template/new_field_user.php:61
978
+ #, php-format
979
+ msgid ""
980
+ "%%ID%% will be replaced with the ID of the post being exported, example: "
981
+ "SELECT meta_value FROM wp_postmeta WHERE post_id=%%ID%% AND "
982
+ "meta_key='your_meta_key';"
983
+ msgstr ""
984
+ "%%ID%% será reemplazado por el ID de la entrada exportada, ejemplo: "
985
+ "SELECCIONAR meta_value DESDE wp_postmeta DONDE post_id =%%ID%% Y meta_key "
986
+ "= 'your_meta_key';"
987
+
988
+ #: views/admin/export/template/new_field_cpt.php:87
989
+ msgid "Export Image URLs"
990
+ msgstr "Exportar URL de imagen"
991
+
992
+ #: views/admin/export/template/new_field_cpt.php:88
993
+ msgid "Export Image Filenames"
994
+ msgstr "Exportar los nombres de archivo de imagenes"
995
+
996
+ #: views/admin/export/template/new_field_cpt.php:89
997
+ msgid "Export Image File Paths"
998
+ msgstr "Exportar rutas de archivo de imagen"
999
+
1000
+ #: views/admin/export/template/new_field_cpt.php:94
1001
+ #: views/admin/export/template/new_field_shop_order.php:42
1002
+ #: views/admin/export/template/new_field_user.php:66
1003
+ msgid "UNIX timestamp - PHP time()"
1004
+ msgstr "Marca de tiempo UNIX - PHP time()"
1005
+
1006
+ #: views/admin/export/template/new_field_cpt.php:95
1007
+ #: views/admin/export/template/new_field_shop_order.php:43
1008
+ #: views/admin/export/template/new_field_user.php:67
1009
+ msgid "Natural Language PHP date()"
1010
+ msgstr "Lenguaje natural PHP date()"
1011
+
1012
+ #: views/admin/export/template/new_field_cpt.php:98
1013
+ #: views/admin/export/template/new_field_shop_order.php:46
1014
+ #: views/admin/export/template/new_field_user.php:70
1015
+ msgid "date() Format"
1016
+ msgstr "Format date()"
1017
+
1018
+ #: views/admin/export/template/new_field_cpt.php:105
1019
+ #: views/admin/export/template/new_field_shop_order.php:53
1020
+ #: views/admin/export/template/new_field_user.php:77
1021
+ msgid "Export the value returned by a PHP function"
1022
+ msgstr "Exportar el valor devuelto por una función PHP"
1023
+
1024
+ #: views/admin/export/template/new_field_cpt.php:106
1025
+ #: views/admin/export/template/new_field_shop_order.php:54
1026
+ #: views/admin/export/template/new_field_user.php:78
1027
+ msgid ""
1028
+ "The value of the field chosen for export will be passed to the PHP function."
1029
+ msgstr ""
1030
+ "El valor del campo seleccionado para la exportar se pasará a la función PHP."
1031
+
1032
+ #: views/admin/export/template/new_field_cpt.php:120
1033
+ #: views/admin/export/template/new_field_shop_order.php:68
1034
+ #: views/admin/export/template/new_field_user.php:92
1035
+ #: views/admin/settings/index.php:69
1036
+ msgid "Function Editor"
1037
+ msgstr "Editor de funciones"
1038
+
1039
+ #: views/admin/export/template/new_field_cpt.php:120
1040
+ #: views/admin/export/template/new_field_shop_order.php:68
1041
+ #: views/admin/export/template/new_field_user.php:92
1042
+ #, php-format
1043
+ msgid ""
1044
+ "Add functions here for use during your export. You can access this file at %s"
1045
+ msgstr ""
1046
+ "Añadir funciones aquí para su uso durante la exportación. Puede acceder a "
1047
+ "este archivo en %s"
1048
+
1049
+ #: views/admin/export/template/new_field_cpt.php:129
1050
+ #: views/admin/export/template/new_field_shop_order.php:77
1051
+ #: views/admin/export/template/new_field_user.php:101
1052
+ #: views/admin/settings/index.php:82
1053
+ msgid "Save Functions"
1054
+ msgstr "Guardar las funciones"
1055
+
1056
+ #: views/admin/export/template/new_field_cpt.php:144
1057
+ #: views/admin/export/template/new_field_shop_order.php:91
1058
+ #: views/admin/export/template/new_field_user.php:115
1059
+ #: views/admin/manage/index.php:52 views/admin/manage/index.php:148
1060
+ #: views/admin/manage/index.php:348
1061
+ msgid "Delete"
1062
+ msgstr "Eliminar"
1063
+
1064
+ #: views/admin/export/template/new_field_cpt.php:145
1065
+ #: views/admin/export/template/new_field_shop_order.php:92
1066
+ #: views/admin/export/template/new_field_user.php:116
1067
+ msgid "Done"
1068
+ msgstr "Terminado"
1069
+
1070
+ #: views/admin/export/template/new_field_cpt.php:146
1071
+ #: views/admin/export/template/new_field_shop_order.php:93
1072
+ #: views/admin/export/template/new_field_user.php:117
1073
+ msgid "Close"
1074
+ msgstr "Cerrar"
1075
+
1076
+ #: views/admin/export/template/new_field_user.php:9
1077
+ msgid "Login"
1078
+ msgstr "Iniciar sesión"
1079
+
1080
+ #: views/admin/export/template/new_field_user.php:10
1081
+ msgid "Email"
1082
+ msgstr "Correo electrónico"
1083
+
1084
+ #: views/admin/export/template/new_field_user.php:11
1085
+ msgid "First Name"
1086
+ msgstr "Primer Nombre"
1087
+
1088
+ #: views/admin/export/template/new_field_user.php:12
1089
+ msgid "Last Name"
1090
+ msgstr "Apellido"
1091
+
1092
+ #: views/admin/export/template/new_field_user.php:13
1093
+ msgid "Registered Date"
1094
+ msgstr "Fecha de registro"
1095
+
1096
+ #: views/admin/export/template/new_field_user.php:14
1097
+ msgid "Nicename"
1098
+ msgstr "El nombre amigable"
1099
+
1100
+ #: views/admin/export/template/new_field_user.php:15
1101
+ msgid "URL"
1102
+ msgstr "URL"
1103
+
1104
+ #: views/admin/export/template/new_field_user.php:16
1105
+ msgid "Display Name"
1106
+ msgstr "Nombre para Mostrar"
1107
+
1108
+ #: views/admin/export/template/new_field_user.php:17
1109
+ msgid "Nickname"
1110
+ msgstr "Sobrenombre"
1111
+
1112
+ #: views/admin/export/template/new_field_user.php:18
1113
+ msgid "Description"
1114
+ msgstr "Descripción"
1115
+
1116
+ #: views/admin/export/template/new_field_user.php:21
1117
+ msgid "Password"
1118
+ msgstr "Contraseña"
1119
+
1120
+ #: views/admin/export/template/new_field_user.php:22
1121
+ msgid "Activation Key"
1122
+ msgstr "Clave de activación"
1123
+
1124
+ #: views/admin/export/template/new_field_user.php:23
1125
+ msgid "Status"
1126
+ msgstr "Estado"
1127
+
1128
+ #: views/admin/export/template/new_field_user.php:24
1129
+ msgid "Roles"
1130
+ msgstr "Roles"
1131
+
1132
+ #: views/admin/export/template/new_field_user.php:25
1133
+ msgid "Custom Field / User Meta"
1134
+ msgstr "Campo personalizado / Usuario Meta"
1135
+
1136
+ #: views/admin/help/index.php:1
1137
+ msgid "WP All Export Support"
1138
+ msgstr "Soporte para WP All Export"
1139
+
1140
+ #: views/admin/manage/bulk.php:10
1141
+ #, php-format
1142
+ msgid "Are you sure you want to delete <strong>%s</strong> selected %s?"
1143
+ msgstr "¿Está seguro que desea eliminar <strong>%s</strong> seleccionado %s?"
1144
+
1145
+ #: views/admin/manage/delete.php:1
1146
+ msgid "Delete Export"
1147
+ msgstr "Eliminar de la exportación"
1148
+
1149
+ #: views/admin/manage/delete.php:4
1150
+ #, php-format
1151
+ msgid "Are you sure you want to delete <strong>%s</strong> export?"
1152
+ msgstr "¿Está seguro que desea eliminar <strong>%s</strong> de exportación?"
1153
+
1154
+ #: views/admin/manage/index.php:18 views/admin/manage/index.php:20
1155
+ msgid "Search Exports"
1156
+ msgstr "Buscar Exportaciones "
1157
+
1158
+ #: views/admin/manage/index.php:28
1159
+ msgid "Name"
1160
+ msgstr "Nombre"
1161
+
1162
+ #: views/admin/manage/index.php:30
1163
+ msgid "Query"
1164
+ msgstr "Consulta"
1165
+
1166
+ #: views/admin/manage/index.php:32
1167
+ msgid "Summary"
1168
+ msgstr "Resumen"
1169
+
1170
+ #: views/admin/manage/index.php:34
1171
+ msgid "Info & Options"
1172
+ msgstr "Información y opciones"
1173
+
1174
+ #: views/admin/manage/index.php:51 views/admin/manage/index.php:346
1175
+ msgid "Bulk Actions"
1176
+ msgstr "Acciones en Bloque"
1177
+
1178
+ #: views/admin/manage/index.php:54 views/admin/manage/index.php:354
1179
+ msgid "Apply"
1180
+ msgstr "Aplicar"
1181
+
1182
+ #: views/admin/manage/index.php:60
1183
+ #, php-format
1184
+ msgid "Displaying %s&#8211;%s of %s"
1185
+ msgstr "Mostrando %s&#8211;%s de %s"
1186
+
1187
+ #: views/admin/manage/index.php:104
1188
+ msgid "No previous exports found."
1189
+ msgstr "No se encontró exportaciones previas."
1190
+
1191
+ #: views/admin/manage/index.php:134
1192
+ msgid "Edit Template"
1193
+ msgstr "Editar plantilla"
1194
+
1195
+ #: views/admin/manage/index.php:135
1196
+ msgid "Edit Options"
1197
+ msgstr "Editar Opciones"
1198
+
1199
+ #: views/admin/manage/index.php:156 views/admin/manage/scheduling.php:2
1200
+ msgid "Cron Scheduling"
1201
+ msgstr "Programación de Cron"
1202
+
1203
+ #: views/admin/manage/index.php:199
1204
+ msgid "Import with WP All Import"
1205
+ msgstr "Importar con WP All Import"
1206
+
1207
+ #: views/admin/manage/index.php:209 views/admin/manage/templates.php:2
1208
+ msgid "Download Import Templates"
1209
+ msgstr "Descargar plantillas de importación"
1210
+
1211
+ #: views/admin/manage/index.php:221
1212
+ msgid "Post Types: "
1213
+ msgstr "Tipos de Entradas:"
1214
+
1215
+ #: views/admin/manage/index.php:238
1216
+ msgid "Y/m/d g:i a"
1217
+ msgstr "Y/m/d g:i:s A"
1218
+
1219
+ #: views/admin/manage/index.php:248
1220
+ msgid "triggered with cron"
1221
+ msgstr "desencadenado con cron "
1222
+
1223
+ #: views/admin/manage/index.php:255 views/admin/manage/index.php:270
1224
+ #: views/admin/manage/index.php:284
1225
+ #, php-format
1226
+ msgid "last activity %s ago"
1227
+ msgstr "útima actividad hace %s "
1228
+
1229
+ #: views/admin/manage/index.php:262
1230
+ msgid "currently processing with cron"
1231
+ msgstr "actualmente procesando con cron"
1232
+
1233
+ #: views/admin/manage/index.php:277
1234
+ msgid "Export currently in progress"
1235
+ msgstr "Exportación actualmente en progreso"
1236
+
1237
+ #: views/admin/manage/index.php:291
1238
+ #, php-format
1239
+ msgid "Export Attempt at %s"
1240
+ msgstr "Intento de Exportación a %s"
1241
+
1242
+ #: views/admin/manage/index.php:295
1243
+ #, php-format
1244
+ msgid "Last run: %s"
1245
+ msgstr "Última ejecución: %s"
1246
+
1247
+ #: views/admin/manage/index.php:295
1248
+ msgid "never"
1249
+ msgstr "nunca"
1250
+
1251
+ #: views/admin/manage/index.php:296
1252
+ #, php-format
1253
+ msgid "%d Records Exported"
1254
+ msgstr "%d registros exportados"
1255
+
1256
+ #: views/admin/manage/index.php:297
1257
+ #, php-format
1258
+ msgid "Format: %s"
1259
+ msgstr "Formato: %s"
1260
+
1261
+ #: views/admin/manage/index.php:303
1262
+ msgid "settings edited since last run"
1263
+ msgstr "configuraciones editadas desde la ultima ejecución"
1264
+
1265
+ #: views/admin/manage/index.php:315
1266
+ msgid "Edit"
1267
+ msgstr "Editar"
1268
+
1269
+ #: views/admin/manage/index.php:316
1270
+ msgid "Run Export"
1271
+ msgstr "Ejecutar Exportación"
1272
+
1273
+ #: views/admin/manage/index.php:318
1274
+ msgid "Cancel Cron"
1275
+ msgstr "Cancelar Cron"
1276
+
1277
+ #: views/admin/manage/index.php:320
1278
+ msgid "Cancel"
1279
+ msgstr "Cancelar"
1280
+
1281
+ #: views/admin/manage/index.php:350
1282
+ msgid "Restore"
1283
+ msgstr "Restaurar"
1284
+
1285
+ #: views/admin/manage/index.php:351
1286
+ msgid "Delete Permanently"
1287
+ msgstr "Borrar permanentemente"
1288
+
1289
+ #: views/admin/manage/scheduling.php:6
1290
+ msgid ""
1291
+ "To schedule an import, you must create two cron jobs in your web hosting "
1292
+ "control panel. One cron job will be used to run the Trigger script, the "
1293
+ "other to run the Execution script."
1294
+ msgstr ""
1295
+ "Para programar una importación, debe de crear dos trabajos cron en su panel "
1296
+ "de control de alojamiento web. Un trabajo cron será utilizado para ejecutar "
1297
+ "la guía desencadenante, el otro ejecutara la guía de ejecución."
1298
+
1299
+ #: views/admin/manage/scheduling.php:17
1300
+ msgid "Export File URL"
1301
+ msgstr "Exportar Archivo URL"
1302
+
1303
+ #: views/admin/manage/scheduling.php:20
1304
+ msgid "Import Bundle URL"
1305
+ msgstr "Importar URL de Paquete"
1306
+
1307
+ #: views/admin/manage/scheduling.php:25
1308
+ msgid "Trigger Script"
1309
+ msgstr "Guía desencandenante"
1310
+
1311
+ #: views/admin/manage/scheduling.php:27
1312
+ msgid "Every time you want to schedule the import, run the trigger script."
1313
+ msgstr ""
1314
+ "Cada vez que quiera programar la importación, ejecute la guía "
1315
+ "desencadenante. "
1316
+
1317
+ #: views/admin/manage/scheduling.php:29
1318
+ msgid ""
1319
+ "To schedule the import to run once every 24 hours, run the trigger script "
1320
+ "every 24 hours. Most hosts require you to use “wget” to access a URL. Ask "
1321
+ "your host for details."
1322
+ msgstr ""
1323
+ "Para programar la importación cada 24 horas, ejecute la guía desencadenante "
1324
+ "cada 24 horas. La mayoría de los alojadores web requiere que utilice \"wget"
1325
+ "\" para ingresar a un URL. Consulte a su alojador web para mas detalles."
1326
+
1327
+ #: views/admin/manage/scheduling.php:31 views/admin/manage/scheduling.php:43
1328
+ msgid "Example:"
1329
+ msgstr "Ejemplo:"
1330
+
1331
+ #: views/admin/manage/scheduling.php:35
1332
+ msgid "Execution Script"
1333
+ msgstr "Guía (script) de Ejecución"
1334
+
1335
+ #: views/admin/manage/scheduling.php:37
1336
+ msgid ""
1337
+ "The Execution script actually executes the import, once it has been "
1338
+ "triggered with the Trigger script."
1339
+ msgstr ""
1340
+ "La guía de ejecución ejecuta la importación, una vez ha sido desencadenada "
1341
+ "con la guía de desencadenamiento. "
1342
+
1343
+ #: views/admin/manage/scheduling.php:39
1344
+ msgid ""
1345
+ "It processes in iteration (only importing a few records each time it runs) "
1346
+ "to optimize server load. It is recommended you run the execution script "
1347
+ "every 2 minutes."
1348
+ msgstr ""
1349
+ "Lo procesa en iteraciones (solamente importando unos cuantos registros cada "
1350
+ "vez que ejecuta) para optimizar la carga del servidor. Es recomendable que "
1351
+ "ejecute la guía de ejecución cada 2 minutos."
1352
+
1353
+ #: views/admin/manage/scheduling.php:41
1354
+ msgid ""
1355
+ "It also operates this way in case of unexpected crashes by your web host. If "
1356
+ "it crashes before the import is finished, the next run of the cron job two "
1357
+ "minutes later will continue it where it left off, ensuring reliability."
1358
+ msgstr ""
1359
+ "También opera en esta forma en caso de caídas inesperadas de su alojador "
1360
+ "web. Si se cae antes de que la importación termine, la siguiente vez que "
1361
+ "ejecute el trabajo cron dos minutos después va a continuar donde quedo, "
1362
+ "asegurando confiabilidad"
1363
+
1364
+ #: views/admin/manage/scheduling.php:47
1365
+ msgid "Notes"
1366
+ msgstr "Notas"
1367
+
1368
+ #: views/admin/manage/scheduling.php:50
1369
+ msgid ""
1370
+ "Your web host may require you to use a command other than wget, although "
1371
+ "wget is most common. In this case, you must asking your web hosting provider "
1372
+ "for help."
1373
+ msgstr ""
1374
+ "Tu hosting puede requerir que utilice un comando que no sea de wget, aunque "
1375
+ "es más común el wget. En este caso, usted debe pedir su proveedor de "
1376
+ "alojamiento web ayuda."
1377
+
1378
+ #: views/admin/manage/templates.php:6
1379
+ msgid ""
1380
+ "Download your import templates and use them to import your exported file to "
1381
+ "a separate WordPress/WP All Import installation."
1382
+ msgstr ""
1383
+ "Descargar las plantillas de importación y utilizarlos para importar el "
1384
+ "archivo exportado a una instalación de WordPress/WP All Import."
1385
+
1386
+ #: views/admin/manage/templates.php:10
1387
+ msgid ""
1388
+ "Install these import templates in your separate WP All Import installation "
1389
+ "from the All Import -> Settings page by clicking the \"Import Templates\" "
1390
+ "button."
1391
+ msgstr ""
1392
+ "Instalar estas plantillas en tu instalación separada de WP All Import de la "
1393
+ "pagina de -> Configuración haciendo clic en el botón \"Importar plantillas\" "
1394
+ "de importación."
1395
+
1396
+ #: views/admin/manage/update.php:1
1397
+ msgid "Re-run Export"
1398
+ msgstr "Vuelva a ejecutar exportación"
1399
+
1400
+ #: views/admin/manage/update.php:8
1401
+ #, php-format
1402
+ msgid "Are you sure you want to re-run <strong>%s</strong> export?"
1403
+ msgstr ""
1404
+ "¿Está seguro que desea volver a ejecutar la exportación <strong>%s</strong> ?"
1405
+
1406
+ #: views/admin/settings/index.php:20
1407
+ msgid "Cron Exports"
1408
+ msgstr "Exportaciones de cron"
1409
+
1410
+ #: views/admin/settings/index.php:25
1411
+ msgid "Secret Key"
1412
+ msgstr "Clave Secreta"
1413
+
1414
+ #: views/admin/settings/index.php:28
1415
+ msgid "Changing this will require you to re-create your existing cron jobs."
1416
+ msgstr "Cambiar esto exigirá volver a crear tus trabajos cron existentes."
1417
+
1418
+ #: views/admin/settings/index.php:36
1419
+ msgid "Files"
1420
+ msgstr "Archivos"
1421
+
1422
+ #: views/admin/settings/index.php:41 views/admin/settings/index.php:44
1423
+ msgid "Secure Mode"
1424
+ msgstr "Modo seguro"
1425
+
1426
+ #: views/admin/settings/index.php:46
1427
+ msgid "Randomize folder names"
1428
+ msgstr "Aleatorizar los nombres de las carpetas"
1429
+
1430
+ #: views/admin/settings/index.php:52
1431
+ #, php-format
1432
+ msgid ""
1433
+ "Exported files and temporary files will be placed in a folder with a "
1434
+ "randomized name inside of %s."
1435
+ msgstr ""
1436
+ "Archivos exportados y archivos temporales serán puestos en una carpeta con "
1437
+ "nombres al azar dentro de %s."
1438
+
1439
+ #: wp-all-export-pro.php:30
1440
+ msgid ""
1441
+ "Please de-activate and remove the free version of the WP All Export before "
1442
+ "activating the paid version."
1443
+ msgstr ""
1444
+ "Por favor, desactivar y quitar la versión gratis de WP All Export antes de "
1445
+ "activar la versión de pago."
1446
+
1447
+ #: wp-all-export-pro.php:313 wp-all-export-pro.php:317
1448
+ #, php-format
1449
+ msgid "Uploads folder %s must be writable"
1450
+ msgstr "La carpeta de cargas %s debe tener permisos de escritura."
i18n/languages/wp_all_export_plugin-ru_RU.mo CHANGED
Binary file
i18n/languages/wp_all_export_plugin-ru_RU.po CHANGED
@@ -3,7 +3,7 @@ msgstr ""
3
  "Project-Id-Version: WP All Export Pro v1.1.0 RC7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
- "PO-Revision-Date: 2015-08-31 14:11+0300\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
@@ -11,7 +11,7 @@ msgstr ""
11
  "Content-Transfer-Encoding: 8bit\n"
12
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
13
  "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
14
- "X-Generator: Poedit 1.7.5\n"
15
  "X-Poedit-SourceCharset: UTF-8\n"
16
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
17
  "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
@@ -80,7 +80,7 @@ msgid "Amount (per tax)"
80
  msgstr "Сумма (per tax)"
81
 
82
  msgid "Apply"
83
- msgstr "Приянть"
84
 
85
  msgid "Apply Filters To Export Data"
86
  msgstr "Применить фильтры к экспортируемым данным"
@@ -255,7 +255,7 @@ msgstr ""
255
  "экспортируемый файл на другой сайт WordPress."
256
 
257
  msgid ""
258
- "Drop & drop data from \"Available Data\" on the right to include it in the "
259
  "export or click \"Add Field To Export\" below."
260
  msgstr ""
261
  "Перетащите данные из \"Доступные данные\" справа для включения в экспорт или "
3
  "Project-Id-Version: WP All Export Pro v1.1.0 RC7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2015-11-13 11:18+0200\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
13
  "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
14
+ "X-Generator: Poedit 1.8.4\n"
15
  "X-Poedit-SourceCharset: UTF-8\n"
16
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
17
  "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
80
  msgstr "Сумма (per tax)"
81
 
82
  msgid "Apply"
83
+ msgstr "Принять"
84
 
85
  msgid "Apply Filters To Export Data"
86
  msgstr "Применить фильтры к экспортируемым данным"
255
  "экспортируемый файл на другой сайт WordPress."
256
 
257
  msgid ""
258
+ "Drag & drop data from \"Available Data\" on the right to include it in the "
259
  "export or click \"Add Field To Export\" below."
260
  msgstr ""
261
  "Перетащите данные из \"Доступные данные\" справа для включения в экспорт или "
libraries/XmlExportACF.php CHANGED
@@ -79,6 +79,8 @@ if ( ! class_exists('XmlExportACF') ){
79
  $fieldData['label'] = $field->post_title;
80
  $fieldData['key'] = $field->post_name;
81
 
 
 
82
  if (empty($fieldData['name'])) $fieldData['name'] = $field->post_excerpt;
83
 
84
  if ( ! empty($fieldData['name'])){
@@ -127,6 +129,7 @@ if ( ! class_exists('XmlExportACF') ){
127
  array_multisort($sortArray[$orderby],SORT_ASC, $fields);
128
 
129
  foreach ($fields as $field){
 
130
  $this->_acf_groups[$key]['fields'][] = $field;
131
  if ( ! empty($field['name'])) $this->_existing_acf_meta_keys[] = $field['name'];
132
  }
79
  $fieldData['label'] = $field->post_title;
80
  $fieldData['key'] = $field->post_name;
81
 
82
+ if (in_array($fieldData['type'], array('tab'))) continue;
83
+
84
  if (empty($fieldData['name'])) $fieldData['name'] = $field->post_excerpt;
85
 
86
  if ( ! empty($fieldData['name'])){
129
  array_multisort($sortArray[$orderby],SORT_ASC, $fields);
130
 
131
  foreach ($fields as $field){
132
+ if (in_array($field['type'], array('tab'))) continue;
133
  $this->_acf_groups[$key]['fields'][] = $field;
134
  if ( ! empty($field['name'])) $this->_existing_acf_meta_keys[] = $field['name'];
135
  }
libraries/XmlExportEngine.php CHANGED
@@ -156,6 +156,7 @@ if ( ! class_exists('XmlExportEngine') ){
156
  public static $post_types = array();
157
  public static $exportOptions = array();
158
  public static $exportQuery;
 
159
 
160
  public function __construct( $post, & $errors ){
161
 
@@ -240,13 +241,14 @@ if ( ! class_exists('XmlExportEngine') ){
240
  }
241
  else
242
  {
243
- self::$exportQuery = eval('return new WP_Query(array(' . $this->post['wp_query'] . ', \'orderby\' => \'ID\', \'order\' => \'ASC\', \'offset\' => 0, \'posts_per_page\' => 10));');
244
 
245
  if ( empty(self::$exportQuery) ) {
246
  $this->errors->add('form-validation', __('Invalid query', 'pmxe_plugin'));
247
  }
248
  elseif ( empty(self::$exportQuery->found_posts) ) {
249
- $this->errors->add('form-validation', __('No matching posts found for WP_Query expression specified', 'pmxe_plugin'));
 
250
  }
251
  else {
252
  PMXE_Plugin::$session->set('wp_query', $this->post['wp_query']);
@@ -266,13 +268,15 @@ if ( ! class_exists('XmlExportEngine') ){
266
  {
267
  self::$exportQuery = new WP_Query( array( 'post_type' => self::$post_types, 'post_status' => 'any', 'orderby' => 'ID', 'order' => 'ASC', 'posts_per_page' => 10 ));
268
 
 
 
269
  if (empty(self::$exportQuery->found_posts)){
270
- $this->errors->add('form-validation', __('No matching posts found for selected post types', 'pmxe_plugin'));
 
271
  }
272
- else{
273
- PMXE_Plugin::$session->set('cpt', self::$post_types);
274
  PMXE_Plugin::$session->set('found_posts', self::$exportQuery->found_posts);
275
- }
276
  }
277
  }
278
 
156
  public static $post_types = array();
157
  public static $exportOptions = array();
158
  public static $exportQuery;
159
+ public static $exportID = false;
160
 
161
  public function __construct( $post, & $errors ){
162
 
241
  }
242
  else
243
  {
244
+ self::$exportQuery = eval('return new WP_Query(array(' . $this->post['wp_query'] . ', \'offset\' => 0, \'posts_per_page\' => 10));');
245
 
246
  if ( empty(self::$exportQuery) ) {
247
  $this->errors->add('form-validation', __('Invalid query', 'pmxe_plugin'));
248
  }
249
  elseif ( empty(self::$exportQuery->found_posts) ) {
250
+ $this->errors->add('count-validation', __('No matching posts found for WP_Query expression specified.', 'pmxe_plugin'));
251
+ PMXE_Plugin::$session->set('found_posts', 0);
252
  }
253
  else {
254
  PMXE_Plugin::$session->set('wp_query', $this->post['wp_query']);
268
  {
269
  self::$exportQuery = new WP_Query( array( 'post_type' => self::$post_types, 'post_status' => 'any', 'orderby' => 'ID', 'order' => 'ASC', 'posts_per_page' => 10 ));
270
 
271
+ PMXE_Plugin::$session->set('cpt', self::$post_types);
272
+
273
  if (empty(self::$exportQuery->found_posts)){
274
+ $this->errors->add('count-validation', __('No matching posts found for selected post types.', 'pmxe_plugin'));
275
+ PMXE_Plugin::$session->set('found_posts', 0);
276
  }
277
+ else{
 
278
  PMXE_Plugin::$session->set('found_posts', self::$exportQuery->found_posts);
279
+ }
280
  }
281
  }
282
 
libraries/XmlExportWooCommerce.php CHANGED
@@ -574,7 +574,16 @@ if ( ! class_exists('XmlExportWooCommerce') ){
574
 
575
  foreach ($data_to_export as $key => $data)
576
  {
577
- $xmlWriter->startElement(str_replace("-", "_", preg_replace('/[^a-z0-9_]/i', '', $key)));
 
 
 
 
 
 
 
 
 
578
  $xmlWriter->writeCData($data);
579
  $xmlWriter->endElement();
580
  }
574
 
575
  foreach ($data_to_export as $key => $data)
576
  {
577
+ $element_name_ns = '';
578
+ $element_name = str_replace("-", "_", preg_replace('/[^a-z0-9:_]/i', '', $key));
579
+ if (strpos($element_name, ":") !== false)
580
+ {
581
+ $element_name_parts = explode(":", $element_name);
582
+ $element_name_ns = (empty($element_name_parts[0])) ? '' : $element_name_parts[0];
583
+ $element_name = (empty($element_name_parts[1])) ? 'untitled_' . $ID : $element_name_parts[1];
584
+ }
585
+
586
+ $xmlWriter->beginElement($element_name_ns, $element_name, null);
587
  $xmlWriter->writeCData($data);
588
  $xmlWriter->endElement();
589
  }
models/export/record.php CHANGED
@@ -15,10 +15,22 @@ class PMXE_Export_Record extends PMXE_Model_Record {
15
  return 'text/html';
16
  }
17
 
 
 
 
 
 
 
 
 
 
 
 
18
  /**
19
  * @see parent::delete()
20
  */
21
- public function delete() {
 
22
  if ( ! empty($this->options['import_id']) and wp_all_export_is_compatible()){
23
  $import = new PMXI_Import_Record();
24
  $import->getById($this->options['import_id']);
15
  return 'text/html';
16
  }
17
 
18
+ /**
19
+ * Clear associations with posts
20
+ * @return PMXE_Import_Record
21
+ * @chainable
22
+ */
23
+ public function deletePosts() {
24
+ $post = new PMXE_Post_List();
25
+ $this->wpdb->query($this->wpdb->prepare('DELETE FROM ' . $post->getTable() . ' WHERE export_id = %s', $this->id));
26
+ return $this;
27
+ }
28
+
29
  /**
30
  * @see parent::delete()
31
  */
32
+ public function delete() {
33
+ $this->deletePosts();
34
  if ( ! empty($this->options['import_id']) and wp_all_export_is_compatible()){
35
  $import = new PMXI_Import_Record();
36
  $import->getById($this->options['import_id']);
models/post/list.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class PMXE_Post_List extends PMXE_Model_List {
4
+ protected $primary = array('post_id');
5
+
6
+ public function __construct() {
7
+ parent::__construct();
8
+ $this->setTable(PMXE_Plugin::getInstance()->getTablePrefix() . 'posts');
9
+ }
10
+ }
models/post/record.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class PMXE_Post_Record extends PMXE_Model_Record {
4
+ protected $primary = array('post_id');
5
+
6
+ /**
7
+ * Initialize model instance
8
+ * @param array[optional] $data Array of record data to initialize object with
9
+ */
10
+ public function __construct($data = array()) {
11
+ parent::__construct($data);
12
+ $this->setTable(PMXE_Plugin::getInstance()->getTablePrefix() . 'posts');
13
+ }
14
+
15
+ }
models/template/list.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class PMXE_Template_List extends PMXE_Model_List {
4
+ public function __construct() {
5
+ parent::__construct();
6
+ $this->setTable(PMXE_Plugin::getInstance()->getTablePrefix() . 'templates');
7
+ }
8
+ }
models/template/record.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class PMXE_Template_Record extends PMXE_Model_Record {
4
+ /**
5
+ * Initialize model instance
6
+ * @param array[optional] $data Array of record data to initialize object with
7
+ */
8
+ public function __construct($data = array()) {
9
+ parent::__construct($data);
10
+ $this->setTable(PMXE_Plugin::getInstance()->getTablePrefix() . 'templates');
11
+ }
12
+
13
+ }
readme.txt CHANGED
@@ -1,8 +1,8 @@
1
  === Export WordPress data to XML/CSV ===
2
  Contributors: soflyy, wpallimport
3
  Requires at least: 4.1
4
- Tested up to: 4.3
5
- Stable tag: 1.0.2
6
  Tags: wordpress csv export, wordpress xml export, xml, csv, datafeed, export, migrate, export csv from wordpress, export xml from wordpress, advanced xml export, advanced csv export, export data, bulk csv export, export custom post type, export woocommerce products, export woocommerce orders, migrate woocommerce, csv export, export csv, xml export, export xml, csv exporter, datafeed
7
 
8
  WP All Export is an extremely powerful exporter that makes it easy to export any XML or CSV file from WordPress.
@@ -11,18 +11,18 @@ WP All Export is an extremely powerful exporter that makes it easy to export any
11
 
12
  WP All Export features a three step export process and an intuitive drag & drop interface that makes complicated export tasks simple and fast.
13
 
14
- With WP All Export you can: migrate content from WordPress to another site, turn your WooCommerce store into an affiliate datafeed, generate filtered lists of pending orders, export the email addresses of new customers, export data for easy editing - and much more.
15
  [youtube https://www.youtube.com/watch?v=a-z0R-Ldkqo /]
16
 
17
  * **Turn your WordPress data into a customized CSV or XML**
18
 
19
  * **Choose which data to export:** WP All Export's drag and drop interface makes it easy to select exactly which data you'd like to export
20
 
21
- * **Structure your export file however you like:** Rename columns and XML elements, rearrange them, whatever you want to do.
22
 
23
  * **Export any custom post type, any custom field:** Lots of plugins and themes store custom data in WordPress. You can export all of it with WP All Export.
24
 
25
- * **Easy integration with WP All Import:** WP All Export will generate your WP All Import settings for you, making importing your data back into WordPress easy, simple, and fast.
26
 
27
  **Wish you could edit your WordPress data in Excel? Now you can - export it with WP All Export, edit it, and then import it again with WP All Import.**
28
 
@@ -32,13 +32,19 @@ For technical support from the developers, please consider purchasing WP All Exp
32
 
33
  **WP All Export Pro** is a paid upgrade that includes premium support and adds the following features:
34
 
35
- * **Add rules to filter data:** WP All Export Pro makes it easy to export specific datasets. Want to export all WooCommerce orders over $100? Want to export all of the green shirts from your WooCommerce store? Want to export all new posts from 2014, except the ones added by Steve?
 
 
 
 
 
 
36
 
37
  You can with a simple to use interface on the 'New Export' page in WP All Export Pro.
38
 
39
  * **Export WordPress users:** WP All Export Pro adds the ability to export WordPress users and all custom data associated with them. Available data is organized and cleaned up so you don’t need to know anything about how WordPress stores users in order to export them.
40
 
41
- * **Export WooCommerce orders:** Export WooCommerce Order item data with WP All Export Pro. Just as with any other custom post type, you can export WooCommerce Orders with the free version of WP All Export. However, the order item data is stored by WooCommerce in several custom database tables and this custom data is only accessible with WP All Export Pro.
42
 
43
  * **Pass data through custom PHP functions:** With WP All Export Pro you can pass your data through a custom function before it is added to your export file. This will allow you to manipulate your data any way you see fit.
44
 
@@ -72,6 +78,22 @@ Either: -
72
 
73
  == Changelog ==
74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  = 1.0.2 =
76
  * fixed download bundle
77
  * fixed export repeater fields for ACF 4.x
1
  === Export WordPress data to XML/CSV ===
2
  Contributors: soflyy, wpallimport
3
  Requires at least: 4.1
4
+ Tested up to: 4.4.1
5
+ Stable tag: 1.0.3
6
  Tags: wordpress csv export, wordpress xml export, xml, csv, datafeed, export, migrate, export csv from wordpress, export xml from wordpress, advanced xml export, advanced csv export, export data, bulk csv export, export custom post type, export woocommerce products, export woocommerce orders, migrate woocommerce, csv export, export csv, xml export, export xml, csv exporter, datafeed
7
 
8
  WP All Export is an extremely powerful exporter that makes it easy to export any XML or CSV file from WordPress.
11
 
12
  WP All Export features a three step export process and an intuitive drag & drop interface that makes complicated export tasks simple and fast.
13
 
14
+ With WP All Export you can: export data for easy editing, migrate content from WordPress to another site, create a WooCommerce affiliate feed, generate filtered lists of WooCommerce orders, export the email addresses of new customers, create and publish customized WordPress RSS feeds - and much more.
15
  [youtube https://www.youtube.com/watch?v=a-z0R-Ldkqo /]
16
 
17
  * **Turn your WordPress data into a customized CSV or XML**
18
 
19
  * **Choose which data to export:** WP All Export's drag and drop interface makes it easy to select exactly which data you'd like to export
20
 
21
+ * **Structure your export file however you like:** Rename CSV columns and XML elements, rearrange them, whatever you want to do.
22
 
23
  * **Export any custom post type, any custom field:** Lots of plugins and themes store custom data in WordPress. You can export all of it with WP All Export.
24
 
25
+ * **Easy integration with WP All Import:** WP All Export will generate your WP All Import settings for you so importing your data back into WordPress is easy, simple, and fast.
26
 
27
  **Wish you could edit your WordPress data in Excel? Now you can - export it with WP All Export, edit it, and then import it again with WP All Import.**
28
 
32
 
33
  **WP All Export Pro** is a paid upgrade that includes premium support and adds the following features:
34
 
35
+ * **Send your data to 500+ apps:** Full integration with Zapier allows you to send your exported WordPress data to services like Dropbox and Google Drive, to create and update reports in Google Sheets, send email updates, or anything else you can think of. This is especially useful when you export WooCommerce orders to CSV.
36
+
37
+ [Read more about WP All Export Pro and Zapier.](https://zapier.com/zapbook/wp-all-export-pro/)
38
+
39
+ * **Schedule exports to run automatically:** Exports can be configured via cron to run on any schedule you like. You can export new sales every week, recent user sign ups, new affiliate products added to your site, daily product stock reports, etc. Scheduled exports are incredibly powerful and flexible when combined with Zapier.
40
+
41
+ * **Add rules to filter data:** WP All Export Pro makes it easy to export the exact posts/products/orders you need. Want to export all WooCommerce orders over $100? Want to export all of the green shirts from your WooCommerce store? Want to export all new posts from 2014, except the ones added by Steve?
42
 
43
  You can with a simple to use interface on the 'New Export' page in WP All Export Pro.
44
 
45
  * **Export WordPress users:** WP All Export Pro adds the ability to export WordPress users and all custom data associated with them. Available data is organized and cleaned up so you don’t need to know anything about how WordPress stores users in order to export them.
46
 
47
+ * **Export WooCommerce orders:** Export WooCommerce Order item data with WP All Export Pro. Just as with any other custom post type, you can export WooCommerce orders with the free version of WP All Export. However, the order item data is stored by WooCommerce in several custom database tables and this custom data is only accessible with WP All Export Pro.
48
 
49
  * **Pass data through custom PHP functions:** With WP All Export Pro you can pass your data through a custom function before it is added to your export file. This will allow you to manipulate your data any way you see fit.
50
 
78
 
79
  == Changelog ==
80
 
81
+ = 1.0.3 =
82
+ * fixed manage exports screen: "Info and options" disappears when WPAI plugin is disabled
83
+ * fixed css for WordPress 4.4
84
+ * fixed export ACF repeater field
85
+ * updated re-run export screen
86
+ * added hidden post types to the dropdown list on step 1
87
+ * added export templates
88
+ * added possibility to control main xml tag names & put additional info into xml file: apply_filters('wp_all_export_additional_data', array(), $exportOptions)
89
+ * added ‘pmxe_exported_post’ action: do_action('pmxe_exported_post', $record->ID );
90
+ * added option 'Create a new export file each time export is run'
91
+ * added option 'Only export posts once'
92
+ * added option 'Split large exports into multiple files'
93
+ * added possibility to change export field name ( related to export WooCommerce orders )
94
+ * added es_ES translation
95
+ * added possibility to add NS to field names
96
+
97
  = 1.0.2 =
98
  * fixed download bundle
99
  * fixed export repeater fields for ACF 4.x
schema.php CHANGED
@@ -25,6 +25,19 @@ if ( ! empty($wpdb->collate))
25
  $table_prefix = PMXE_Plugin::getInstance()->getTablePrefix();
26
 
27
  $plugin_queries = <<<SCHEMA
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  CREATE TABLE {$table_prefix}exports (
29
  id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
30
  attch_id BIGINT(20) UNSIGNED NOT NULL,
@@ -40,6 +53,7 @@ CREATE TABLE {$table_prefix}exports (
40
  processing BOOL NOT NULL DEFAULT 0,
41
  executing BOOL NOT NULL DEFAULT 0,
42
  triggered BOOL NOT NULL DEFAULT 0,
 
43
  PRIMARY KEY (id)
44
  ) $charset_collate;
45
  SCHEMA;
25
  $table_prefix = PMXE_Plugin::getInstance()->getTablePrefix();
26
 
27
  $plugin_queries = <<<SCHEMA
28
+ CREATE TABLE {$table_prefix}posts (
29
+ id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
30
+ post_id BIGINT(20) UNSIGNED NOT NULL,
31
+ export_id BIGINT(20) UNSIGNED NOT NULL,
32
+ iteration BIGINT(20) NOT NULL DEFAULT 0,
33
+ PRIMARY KEY (id)
34
+ ) $charset_collate;
35
+ CREATE TABLE {$table_prefix}templates (
36
+ id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
37
+ name VARCHAR(200) NOT NULL DEFAULT '',
38
+ options LONGTEXT,
39
+ PRIMARY KEY (id)
40
+ ) $charset_collate;
41
  CREATE TABLE {$table_prefix}exports (
42
  id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
43
  attch_id BIGINT(20) UNSIGNED NOT NULL,
53
  processing BOOL NOT NULL DEFAULT 0,
54
  executing BOOL NOT NULL DEFAULT 0,
55
  triggered BOOL NOT NULL DEFAULT 0,
56
+ iteration BIGINT(20) NOT NULL DEFAULT 0,
57
  PRIMARY KEY (id)
58
  ) $charset_collate;
59
  SCHEMA;
static/css/admin-wp-4.4.css ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ .wpallexport-plugin .wpallexport-title h2{
2
+ margin-top: 8px;
3
+ margin-bottom: 8px;
4
+ }
static/css/admin.css CHANGED
@@ -34,12 +34,18 @@
34
  border: 1px solid #FF8383;
35
  color: #000;
36
  }
 
 
 
 
 
37
  .wpallexport-plugin .upgrade_link{
38
  color: #000 !important;
39
  font-size: 1.3em;
40
  text-decoration: underline !important;
41
  }
42
- .wpallexport-plugin .wpallexport-user-export-notice{
 
43
  padding: 20px;
44
  display: none;
45
  width: 558px;
@@ -521,6 +527,8 @@
521
  }
522
  .wpallexport-plugin .step_description h2{
523
  color: #425f9a;
 
 
524
  }
525
  .wpallexport-plugin .step_description h3{
526
  color: #777;
@@ -927,7 +935,12 @@
927
  font-weight: bold;
928
  font-size: 14px;
929
  }
930
-
 
 
 
 
 
931
  /*--------------------------------------------------------------------------
932
  *
933
  * WP All Export Layout
@@ -1493,6 +1506,12 @@
1493
  content: "\f110";
1494
  color: #555;
1495
  }
 
 
 
 
 
 
1496
  .wpallexport-plugin #file_selector .dd-option:hover .dashicon:before,
1497
  .wpallexport-plugin #file_selector .dd-option-selected .dashicon:before{
1498
  color: #555;
@@ -1793,7 +1812,7 @@
1793
  text-align: left;
1794
  }
1795
  .wpallexport-plugin .ajax-console .founded_records{
1796
- background: url('../img/elements.png') no-repeat !important;
1797
  padding-left: 80px;
1798
  margin-bottom: 0;
1799
  margin-left: 40px;
@@ -2566,6 +2585,9 @@
2566
  margin-top: 5px;
2567
  font-size:20px;
2568
  }
 
 
 
2569
  .wpallexport-plugin .wpallexport-is-continue{
2570
  text-align: left;
2571
  float: left;
@@ -3067,7 +3089,7 @@
3067
  }
3068
  /*@*/
3069
  .wpallexport-plugin form.settings p{
3070
- font-size: 14px !important;
3071
  }
3072
  .wpallexport-plugin form.settings .wpallexport-header{
3073
  overflow: hidden;
34
  border: 1px solid #FF8383;
35
  color: #000;
36
  }
37
+ .wpallexport-plugin .wpallexport-free-edition-notice p{
38
+ color: #000 !important;
39
+ font-size: 1.3em !important;
40
+ margin-bottom: 0;
41
+ }
42
  .wpallexport-plugin .upgrade_link{
43
  color: #000 !important;
44
  font-size: 1.3em;
45
  text-decoration: underline !important;
46
  }
47
+ .wpallexport-plugin .wpallexport-user-export-notice,
48
+ .wpallexport-plugin .wpallexport-comments-export-notice{
49
  padding: 20px;
50
  display: none;
51
  width: 558px;
527
  }
528
  .wpallexport-plugin .step_description h2{
529
  color: #425f9a;
530
+ font-size: 23px;
531
+ font-weight: normal;
532
  }
533
  .wpallexport-plugin .step_description h3{
534
  color: #777;
935
  font-weight: bold;
936
  font-size: 14px;
937
  }
938
+ .wpallexport-plugin .wp_all_export_sub_input{
939
+ vertical-align:middle;
940
+ font-size: 11px !important;
941
+ background:#fff !important;
942
+ text-align:center;
943
+ }
944
  /*--------------------------------------------------------------------------
945
  *
946
  * WP All Export Layout
1506
  content: "\f110";
1507
  color: #555;
1508
  }
1509
+ .wpallexport-plugin #file_selector .dd-option .dashicon-comments:before,
1510
+ .wpallexport-plugin #file_selector .dd-selected .dashicon-comments:before{
1511
+ font-family: "dashicons";
1512
+ content: "\f101";
1513
+ color: #555;
1514
+ }
1515
  .wpallexport-plugin #file_selector .dd-option:hover .dashicon:before,
1516
  .wpallexport-plugin #file_selector .dd-option-selected .dashicon:before{
1517
  color: #555;
1812
  text-align: left;
1813
  }
1814
  .wpallexport-plugin .ajax-console .founded_records{
1815
+ background: url('../img/elements.png') no-repeat;
1816
  padding-left: 80px;
1817
  margin-bottom: 0;
1818
  margin-left: 40px;
2585
  margin-top: 5px;
2586
  font-size:20px;
2587
  }
2588
+ .wpallexport-plugin .nothing_to_export{
2589
+ background: url("../img/exclamation.png") no-repeat scroll 5px 5px rgba(0, 0, 0, 0) !important;
2590
+ }
2591
  .wpallexport-plugin .wpallexport-is-continue{
2592
  text-align: left;
2593
  float: left;
3089
  }
3090
  /*@*/
3091
  .wpallexport-plugin form.settings p{
3092
+ font-size: 14px;
3093
  }
3094
  .wpallexport-plugin form.settings .wpallexport-header{
3095
  overflow: hidden;
static/img/exclamation.png ADDED
Binary file
static/js/admin.js CHANGED
@@ -65,6 +65,23 @@
65
  $targets.hide().find('.clear-on-switch').add($targets.filter('.clear-on-switch')).val('');
66
  }
67
  }).change();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
 
69
  // autoselect input content on click
70
  $('input.selectable').live('click', function () {
@@ -157,9 +174,7 @@
157
  security: wp_all_export_security
158
  };
159
 
160
- if (is_first_load == false || postType != '') $('.wp_all_export_preloader').show();
161
-
162
- is_first_load = false;
163
 
164
  $.ajax({
165
  type: 'POST',
@@ -221,17 +236,30 @@
221
  case 'specific_type':
222
  if (postType != ''){
223
 
224
- if (postType == 'users'){
225
  $('.wpallexport-user-export-notice').show();
226
  showImportType = false;
227
  $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideDown();
228
- }
229
  else
230
  {
231
  $('.wpallexport-user-export-notice').hide();
232
  showImportType = true;
233
  $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideDown();
234
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
235
  if (postType == 'product')
236
  {
237
  $('.auto-generate-template').show();
@@ -245,6 +273,7 @@
245
  {
246
  $('.auto-generate-template').hide();
247
  $('.wpallexport-user-export-notice').hide();
 
248
  showImportType = false;
249
  $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideUp();
250
  }
@@ -262,6 +291,18 @@
262
  $('.wpallexport-user-export-notice').hide();
263
  $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideUp();
264
  showImportType = true;
 
 
 
 
 
 
 
 
 
 
 
 
265
  }
266
  break;
267
  }
@@ -313,6 +354,17 @@
313
  $('.wpallexport-choose-file').find('.wpallexport-submit-buttons').show();
314
  }
315
 
 
 
 
 
 
 
 
 
 
 
 
316
  if (postType == 'product')
317
  {
318
  $('.auto-generate-template').show();
@@ -329,6 +381,7 @@
329
  {
330
  $('.auto-generate-template').hide();
331
  $('.wpallexport-user-export-notice').hide();
 
332
  $('.wpallexport-choose-file').find('input[name=cpt]').val('');
333
  $('#file_selector').find('.dd-selected').css({'color':'#cfceca'});
334
  $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideUp();
@@ -389,20 +442,30 @@
389
  if (queryType == 'wp_query')
390
  {
391
  $('.wpallexport-user-export-notice').hide();
 
392
  $('textarea[name=wp_query]').attr("placeholder", "'post_type' => 'post', 'post_status' => array( 'pending', 'draft', 'future' )");
393
  $('.wpallexport-choose-file').find('.wpallexport-submit-buttons').show();
394
  }
395
- else
396
  {
397
  $('.wpallexport-user-export-notice').show();
 
398
  $('textarea[name=wp_query]').attr("placeholder", "'role' => 'Administrator'");
399
  $('.wpallexport-choose-file').find('.wpallexport-submit-buttons').hide();
 
 
 
 
 
 
 
400
  }
401
  $('input[name=wp_query_selector]').val(queryType);
402
  }
403
  else
404
  {
405
  $('.wpallexport-user-export-notice').hide();
 
406
  $('#wp_query_selector').find('.dd-selected').css({'color':'#cfceca'});
407
  $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideUp();
408
  }
@@ -659,9 +722,9 @@
659
 
660
  var $save = true;
661
 
662
- if ($export_data_type.val() == 'shop_order'){
663
- $name.val($value_type.find('option:selected').html());
664
- }
665
 
666
  if ($name.val() == '')
667
  {
@@ -740,9 +803,17 @@
740
  case 'woo_order':
741
  $clone.find('input[name^=cc_value]').val($value_type.val());
742
  $clone.find('input[name^=cc_label]').val($value_type.val());
743
- $clone.find('input[name^=cc_options]').val($value_type.find('option:selected').attr('rel'));
 
 
 
 
 
 
 
744
  break;
745
  default:
 
746
  $clone.find('input[name^=cc_label]').val($value_type.val());
747
  break;
748
  }
@@ -801,25 +872,22 @@
801
  var $type = '';
802
 
803
  // set field type
804
- if ($export_data_type.val() == 'shop_order'){
805
- $type = $(this).find('input[name^=cc_value]');
806
- $addAnotherForm.find('select[name=column_value_type]').find('option').each(function(){
807
- if ($(this).val() == $type.val())
808
- $(this).attr({'selected':'selected'}).click();
809
- else
810
- $(this).removeAttr('selected');
811
- });
812
  }
813
- else{
814
- $type = $(this).find('input[name^=cc_type]');
815
- $addAnotherForm.find('select[name=column_value_type]').find('option').each(function(){
816
- if ($(this).val() == $type.val())
817
- $(this).attr({'selected':'selected'}).click();
818
- else
819
- $(this).removeAttr('selected');
820
- });
821
  }
822
 
 
 
 
 
 
 
 
823
  $('.wp-all-export-chosen-select').trigger('chosen:updated');
824
 
825
  // set php snipped
@@ -1139,6 +1207,11 @@
1139
  });
1140
  //[/End Step 2]
1141
 
 
 
 
 
 
1142
  // step 3 ( export options )
1143
  if ( $('.wpallexport-step-4').length ){
1144
 
@@ -1163,6 +1236,10 @@
1163
 
1164
  }
1165
 
 
 
 
 
1166
  }
1167
  //[/End Step 3]
1168
 
@@ -1173,6 +1250,29 @@
1173
  //[/End Step 4]
1174
 
1175
  // additional functionality
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1176
 
1177
  $('.wpallexport-overlay').click(function(){
1178
  $('.wp-pointer').hide();
65
  $targets.hide().find('.clear-on-switch').add($targets.filter('.clear-on-switch')).val('');
66
  }
67
  }).change();
68
+
69
+ // swither show/hide logic
70
+ $('input.switcher-horizontal').live('change', function (e) {
71
+
72
+ if ($(this).is(':checked')) {
73
+ $(this).parents('form').find('input.switcher-horizontal[name="' + $(this).attr('name') + '"]').not(this).change();
74
+ }
75
+ var $targets = $('.switcher-target-' + $(this).attr('id'));
76
+
77
+ var is_show = $(this).is(':checked'); if ($(this).is('.switcher-reversed')) is_show = ! is_show;
78
+
79
+ if (is_show) {
80
+ $targets.animate({width:'205px'}, 350);
81
+ } else {
82
+ $targets.animate({width:'0px'}, 1000).find('.clear-on-switch').add($targets.filter('.clear-on-switch')).val('');
83
+ }
84
+ }).change();
85
 
86
  // autoselect input content on click
87
  $('input.selectable').live('click', function () {
174
  security: wp_all_export_security
175
  };
176
 
177
+ if (is_first_load == false || postType != '') $('.wp_all_export_preloader').show();
 
 
178
 
179
  $.ajax({
180
  type: 'POST',
236
  case 'specific_type':
237
  if (postType != ''){
238
 
239
+ if (postType == 'users'){
240
  $('.wpallexport-user-export-notice').show();
241
  showImportType = false;
242
  $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideDown();
243
+ }
244
  else
245
  {
246
  $('.wpallexport-user-export-notice').hide();
247
  showImportType = true;
248
  $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideDown();
249
+ }
250
+
251
+ if (postType == 'comments'){
252
+ $('.wpallexport-comments-export-notice').show();
253
+ showImportType = false;
254
+ $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideDown();
255
+ }
256
+ else
257
+ {
258
+ $('.wpallexport-comments-export-notice').hide();
259
+ showImportType = true;
260
+ $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideDown();
261
+ }
262
+
263
  if (postType == 'product')
264
  {
265
  $('.auto-generate-template').show();
273
  {
274
  $('.auto-generate-template').hide();
275
  $('.wpallexport-user-export-notice').hide();
276
+ $('.wpallexport-comments-export-notice').hide();
277
  showImportType = false;
278
  $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideUp();
279
  }
291
  $('.wpallexport-user-export-notice').hide();
292
  $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideUp();
293
  showImportType = true;
294
+ }
295
+ if ($('input[name=wp_query_selector]').val() == 'wp_comment_query')
296
+ {
297
+ $('.wpallexport-comments-export-notice').show();
298
+ $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideUp();
299
+ showImportType = false;
300
+ }
301
+ else
302
+ {
303
+ $('.wpallexport-comments-export-notice').hide();
304
+ $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideUp();
305
+ showImportType = true;
306
  }
307
  break;
308
  }
354
  $('.wpallexport-choose-file').find('.wpallexport-submit-buttons').show();
355
  }
356
 
357
+ if (postType == 'comments')
358
+ {
359
+ $('.wpallexport-comments-export-notice').show();
360
+ $('.wpallexport-choose-file').find('.wpallexport-submit-buttons').hide();
361
+ }
362
+ else
363
+ {
364
+ $('.wpallexport-comments-export-notice').hide();
365
+ $('.wpallexport-choose-file').find('.wpallexport-submit-buttons').show();
366
+ }
367
+
368
  if (postType == 'product')
369
  {
370
  $('.auto-generate-template').show();
381
  {
382
  $('.auto-generate-template').hide();
383
  $('.wpallexport-user-export-notice').hide();
384
+ $('.wpallexport-comments-export-notice').hide();
385
  $('.wpallexport-choose-file').find('input[name=cpt]').val('');
386
  $('#file_selector').find('.dd-selected').css({'color':'#cfceca'});
387
  $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideUp();
442
  if (queryType == 'wp_query')
443
  {
444
  $('.wpallexport-user-export-notice').hide();
445
+ $('.wpallexport-comments-export-notice').hide();
446
  $('textarea[name=wp_query]').attr("placeholder", "'post_type' => 'post', 'post_status' => array( 'pending', 'draft', 'future' )");
447
  $('.wpallexport-choose-file').find('.wpallexport-submit-buttons').show();
448
  }
449
+ if(queryType == 'wp_user_query')
450
  {
451
  $('.wpallexport-user-export-notice').show();
452
+ $('.wpallexport-comments-export-notice').hide();
453
  $('textarea[name=wp_query]').attr("placeholder", "'role' => 'Administrator'");
454
  $('.wpallexport-choose-file').find('.wpallexport-submit-buttons').hide();
455
+ }
456
+ if(queryType == 'wp_comment_query')
457
+ {
458
+ $('.wpallexport-comments-export-notice').show();
459
+ $('textarea[name=wp_query]').attr("placeholder", "'meta_key' => 'featured', 'meta_value' => '1'");
460
+ $('.wpallexport-user-export-notice').hide();
461
+ $('.wpallexport-choose-file').find('.wpallexport-submit-buttons').hide();
462
  }
463
  $('input[name=wp_query_selector]').val(queryType);
464
  }
465
  else
466
  {
467
  $('.wpallexport-user-export-notice').hide();
468
+ $('.wpallexport-comments-export-notice').hide();
469
  $('#wp_query_selector').find('.dd-selected').css({'color':'#cfceca'});
470
  $('.wpallexport-choose-file').find('.wpallexport-upload-resource-step-two').slideUp();
471
  }
722
 
723
  var $save = true;
724
 
725
+ // if ($export_data_type.val() == 'shop_order'){
726
+ // $name.val($value_type.find('option:selected').html());
727
+ // }
728
 
729
  if ($name.val() == '')
730
  {
803
  case 'woo_order':
804
  $clone.find('input[name^=cc_value]').val($value_type.val());
805
  $clone.find('input[name^=cc_label]').val($value_type.val());
806
+ if ($value_type.find('option:selected').attr('rel') == 'cf')
807
+ {
808
+ $clone.find('input[name^=cc_type]').val('cf');
809
+ }
810
+ else
811
+ {
812
+ $clone.find('input[name^=cc_options]').val($value_type.find('option:selected').attr('rel'));
813
+ }
814
  break;
815
  default:
816
+ $clone.find('input[name^=cc_value]').val($value_type.val());
817
  $clone.find('input[name^=cc_label]').val($value_type.val());
818
  break;
819
  }
872
  var $type = '';
873
 
874
  // set field type
875
+ if ($export_data_type.val() == 'shop_order')
876
+ {
877
+ $type = $(this).find('input[name^=cc_value]');
 
 
 
 
 
878
  }
879
+ else
880
+ {
881
+ $type = $(this).find('input[name^=cc_type]');
 
 
 
 
 
882
  }
883
 
884
+ $addAnotherForm.find('select[name=column_value_type]').find('option').each(function(){
885
+ if ($(this).val() == $type.val())
886
+ $(this).attr({'selected':'selected'}).click();
887
+ else
888
+ $(this).removeAttr('selected');
889
+ });
890
+
891
  $('.wp-all-export-chosen-select').trigger('chosen:updated');
892
 
893
  // set php snipped
1207
  });
1208
  //[/End Step 2]
1209
 
1210
+ // template form: auto submit when `load template` list value is picked
1211
+ $('form.wpallexport-template').find('select[name="load_template"]').live('change', function () {
1212
+ $(this).parents('form').submit();
1213
+ });
1214
+
1215
  // step 3 ( export options )
1216
  if ( $('.wpallexport-step-4').length ){
1217
 
1236
 
1237
  }
1238
 
1239
+ $('.wp_all_export_confirm_and_run').click(function(e){
1240
+ e.preventDefault();
1241
+ $('form.choose-export-options').submit();
1242
+ });
1243
  }
1244
  //[/End Step 3]
1245
 
1250
  //[/End Step 4]
1251
 
1252
  // additional functionality
1253
+
1254
+ $('input[name=pmxe_generate_zapier_api_key]').click(function(e){
1255
+
1256
+ e.preventDefault();
1257
+
1258
+ var request = {
1259
+ action: 'generate_zapier_api_key',
1260
+ security: wp_all_export_security
1261
+ };
1262
+
1263
+ $.ajax({
1264
+ type: 'POST',
1265
+ url: ajaxurl + ((typeof export_id != "undefined") ? '?id=' + export_id : ''),
1266
+ data: request,
1267
+ success: function(response) {
1268
+ $('input[name=zapier_api_key]').val(response.api_key);
1269
+ },
1270
+ error: function( jqXHR, textStatus ) {
1271
+
1272
+ },
1273
+ dataType: "json"
1274
+ });
1275
+ });
1276
 
1277
  $('.wpallexport-overlay').click(function(){
1278
  $('.wp-pointer').hide();
views/admin/export/index.php CHANGED
@@ -28,7 +28,7 @@
28
 
29
  <div class="wpallexport-import-types">
30
  <h2><?php _e('First, choose what to export.', 'wp_all_export_plugin'); ?></h2>
31
- <a class="wpallexport-import-from wpallexport-url-type <?php echo 'specific' == $post['export_type'] ? 'selected' : '' ?>" rel="specific_type" href="javascript:void(0);">
32
  <span class="wpallexport-icon"></span>
33
  <span class="wpallexport-icon-label"><?php _e('Specific Post Type', 'wp_all_export_plugin'); ?></span>
34
  </a>
@@ -45,7 +45,7 @@
45
  <div class="wpallexport-file-type-options">
46
 
47
  <?php
48
- $custom_types = get_post_types(array('_builtin' => true), 'objects') + get_post_types(array('_builtin' => false, 'show_ui' => true), 'objects');
49
  foreach ($custom_types as $key => $ct) {
50
  if (in_array($key, array('attachment', 'revision', 'nav_menu_item', 'import_users'))) unset($custom_types[$key]);
51
  }
@@ -65,6 +65,7 @@
65
  <?php endforeach ?>
66
  <?php endif ?>
67
  <option value="users" data-imagesrc="dashicon dashicon-import_users" <?php if ('users' == $post['cpt']) echo 'selected="selected"'; ?>><?php _e("Users", "wp_all_export_plugin"); ?></option>
 
68
  </select>
69
 
70
  <input type="hidden" name="cpt" value="<?php echo $post['cpt']; ?>"/>
@@ -73,8 +74,12 @@
73
 
74
  <div class="wpallexport-free-edition-notice wpallexport-user-export-notice">
75
  <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=export-users&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to export users.','wp_all_export_plugin');?></a>
 
 
 
 
 
76
  </div>
77
-
78
  </div>
79
 
80
  <div class="wpallexport-upload-type-container" rel="advanced_type">
@@ -83,10 +88,17 @@
83
  <select id="wp_query_selector">
84
  <option value="wp_query" <?php if ('wp_query' == $post['wp_query_selector']) echo 'selected="selected"'; ?>><?php _e('Post Type Query', 'wp_all_export_plugin'); ?></option>
85
  <option value="wp_user_query" <?php if ('wp_user_query' == $post['wp_query_selector']) echo 'selected="selected"'; ?>><?php _e('User Query', 'wp_all_export_plugin'); ?></option>
 
86
  </select>
87
 
88
  <div class="wpallexport-free-edition-notice wpallexport-user-export-notice" style="margin-bottom: 20px;">
89
  <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=export-users&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to export users.','wp_all_export_plugin');?></a>
 
 
 
 
 
 
90
  </div>
91
 
92
  <input type="hidden" name="wp_query_selector" value="<?php echo $post['wp_query_selector'];?>">
28
 
29
  <div class="wpallexport-import-types">
30
  <h2><?php _e('First, choose what to export.', 'wp_all_export_plugin'); ?></h2>
31
+ <a class="wpallexport-import-from wpallexport-url-type <?php echo 'advanced' != $post['export_type'] ? 'selected' : '' ?>" rel="specific_type" href="javascript:void(0);">
32
  <span class="wpallexport-icon"></span>
33
  <span class="wpallexport-icon-label"><?php _e('Specific Post Type', 'wp_all_export_plugin'); ?></span>
34
  </a>
45
  <div class="wpallexport-file-type-options">
46
 
47
  <?php
48
+ $custom_types = get_post_types(array('_builtin' => true), 'objects') + get_post_types(array('_builtin' => false, 'show_ui' => true), 'objects') + get_post_types(array('_builtin' => false, 'show_ui' => false), 'objects');
49
  foreach ($custom_types as $key => $ct) {
50
  if (in_array($key, array('attachment', 'revision', 'nav_menu_item', 'import_users'))) unset($custom_types[$key]);
51
  }
65
  <?php endforeach ?>
66
  <?php endif ?>
67
  <option value="users" data-imagesrc="dashicon dashicon-import_users" <?php if ('users' == $post['cpt']) echo 'selected="selected"'; ?>><?php _e("Users", "wp_all_export_plugin"); ?></option>
68
+ <option value="comments" data-imagesrc="dashicon dashicon-comments" <?php if ('comments' == $post['cpt']) echo 'selected="selected"'; ?>><?php _e("Comments", "wp_all_export_plugin"); ?></option>
69
  </select>
70
 
71
  <input type="hidden" name="cpt" value="<?php echo $post['cpt']; ?>"/>
74
 
75
  <div class="wpallexport-free-edition-notice wpallexport-user-export-notice">
76
  <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=export-users&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to export users.','wp_all_export_plugin');?></a>
77
+ <p><?php _e('If you already own it, remove the free edition and install the professional edition.', 'wp_all_export_plugin'); ?></p>
78
+ </div>
79
+ <div class="wpallexport-free-edition-notice wpallexport-comments-export-notice">
80
+ <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=export-users&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to export comments.','wp_all_export_plugin');?></a>
81
+ <p><?php _e('If you already own it, remove the free edition and install the professional edition.', 'wp_all_export_plugin'); ?></p>
82
  </div>
 
83
  </div>
84
 
85
  <div class="wpallexport-upload-type-container" rel="advanced_type">
88
  <select id="wp_query_selector">
89
  <option value="wp_query" <?php if ('wp_query' == $post['wp_query_selector']) echo 'selected="selected"'; ?>><?php _e('Post Type Query', 'wp_all_export_plugin'); ?></option>
90
  <option value="wp_user_query" <?php if ('wp_user_query' == $post['wp_query_selector']) echo 'selected="selected"'; ?>><?php _e('User Query', 'wp_all_export_plugin'); ?></option>
91
+ <option value="wp_comment_query" <?php if ('wp_comment_query' == $post['wp_query_selector']) echo 'selected="selected"'; ?>><?php _e('Comment Query', 'wp_all_export_plugin'); ?></option>
92
  </select>
93
 
94
  <div class="wpallexport-free-edition-notice wpallexport-user-export-notice" style="margin-bottom: 20px;">
95
  <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=export-users&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to export users.','wp_all_export_plugin');?></a>
96
+ <p><?php _e('If you already own it, remove the free edition and install the professional edition.', 'wp_all_export_plugin'); ?></p>
97
+ </div>
98
+
99
+ <div class="wpallexport-free-edition-notice wpallexport-comments-export-notice" style="margin-bottom: 20px;">
100
+ <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=export-users&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to export comments.','wp_all_export_plugin');?></a>
101
+ <p><?php _e('If you already own it, remove the free edition and install the professional edition.', 'wp_all_export_plugin'); ?></p>
102
  </div>
103
 
104
  <input type="hidden" name="wp_query_selector" value="<?php echo $post['wp_query_selector'];?>">
views/admin/export/options.php CHANGED
@@ -51,7 +51,7 @@
51
  <?php wp_nonce_field('options', '_wpnonce_options') ?>
52
  <input type="hidden" name="is_submitted" value="1" />
53
 
54
- <input type="submit" class="rad10" value="<?php _e('Confirm & Run Export', 'wp_all_export_plugin') ?>" />
55
  </form>
56
 
57
  </div>
@@ -73,8 +73,9 @@
73
  <div class="wpallexport-collapsed-content-inner">
74
  <div class="wpallexport-free-edition-notice" style="padding: 20px; margin-bottom: 10px;">
75
  <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-pro/?utm_source=free-plugin&amp;utm_medium=in-plugin&amp;utm_campaign=download-from-url"><?php _e('Upgrade to the professional edition of WP All Export to add filtering rules.','wp_all_export_plugin');?></a>
 
76
  </div>
77
- <input type="hidden" name="selected_post_type" value="<?php echo array_shift($post['cpt']); ?>"/>
78
  <div class="wp_all_export_rule_inputs">
79
  <table>
80
  <tr>
@@ -181,43 +182,7 @@
181
 
182
  <?php endif; ?>
183
 
184
- <div class="wpallexport-template">
185
- <div class="wpallexport-collapsed wpallexport-section">
186
- <div class="wpallexport-content-section">
187
- <div class="wpallexport-collapsed-header" style="padding-left: 25px;">
188
- <h3><?php _e('Advanced Export','wp_all_export_plugin');?></h3>
189
- </div>
190
- <div class="wpallexport-collapsed-content" style="padding: 0;">
191
- <div class="wpallexport-collapsed-content-inner">
192
- <table class="form-table" style="max-width:none;">
193
- <tr>
194
- <td colspan="3">
195
- <div class="input" style="margin:5px 0px;">
196
- <input type="hidden" name="include_bom" value="0" />
197
- <input type="checkbox" id="include_bom" name="include_bom" value="1" <?php echo $post['include_bom'] ? 'checked="checked"': '' ?> />
198
- <label for="include_bom"><?php _e('Include BOM in export file', 'wp_all_export_plugin') ?></label>
199
- <a href="#help" class="wpallexport-help" style="position: relative; top: -2px;" title="<?php _e('The BOM will help some programs like Microsoft Excel read your export file if it includes non-English characters.', 'wp_all_export_plugin'); ?>">?</a>
200
- </div>
201
- <div class="input" style="margin:5px 0px;">
202
- <label for="records_per_request"><?php _e('In each iteration, process', 'wp_all_export_plugin');?> <input type="text" name="records_per_iteration" style="vertical-align:middle; font-size:11px; background:#fff !important; width: 40px; text-align:center;" value="<?php echo esc_attr($post['records_per_iteration']) ?>" /> <?php _e('records', 'wp_all_export_plugin'); ?></label>
203
- <a href="#help" class="wpallexport-help" style="position: relative; top: -2px;" title="<?php _e('WP All Export must be able to process this many records in less than your server\'s timeout settings. If your export fails before completion, to troubleshoot you should lower this number.', 'wp_all_export_plugin'); ?>">?</a>
204
- </div>
205
- <br>
206
- <hr>
207
- <p style="text-align:right;">
208
- <div class="input">
209
- <label for="save_import_as" style="width: 103px;"><?php _e('Friendly Name:','pmxe_plugin');?></label>
210
- <input type="text" name="friendly_name" title="<?php _e('Save friendly name...', 'pmxi_plugin') ?>" style="vertical-align:middle; background:#fff !important;" value="<?php echo esc_attr($post['friendly_name']) ?>" />
211
- </div>
212
- </p>
213
- </td>
214
- </tr>
215
- </table>
216
- </div>
217
- </div>
218
- </div>
219
- </div>
220
- </div>
221
 
222
  <p class="wpallexport-submit-buttons" style="text-align: center;">
223
  <?php wp_nonce_field('options', '_wpnonce_options') ?>
51
  <?php wp_nonce_field('options', '_wpnonce_options') ?>
52
  <input type="hidden" name="is_submitted" value="1" />
53
 
54
+ <input type="submit" class="rad10 wp_all_export_confirm_and_run" value="<?php _e('Confirm & Run Export', 'wp_all_export_plugin') ?>" />
55
  </form>
56
 
57
  </div>
73
  <div class="wpallexport-collapsed-content-inner">
74
  <div class="wpallexport-free-edition-notice" style="padding: 20px; margin-bottom: 10px;">
75
  <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-pro/?utm_source=free-plugin&amp;utm_medium=in-plugin&amp;utm_campaign=download-from-url"><?php _e('Upgrade to the professional edition of WP All Export to add filtering rules.','wp_all_export_plugin');?></a>
76
+ <p><?php _e('If you already own it, remove the free edition and install the professional edition.', 'wp_all_export_plugin'); ?></p>
77
  </div>
78
+ <input type="hidden" name="selected_post_type" value="<?php echo $post['cpt'][0]; ?>"/>
79
  <div class="wp_all_export_rule_inputs">
80
  <table>
81
  <tr>
182
 
183
  <?php endif; ?>
184
 
185
+ <?php include_once 'options/settings.php'; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
 
187
  <p class="wpallexport-submit-buttons" style="text-align: center;">
188
  <?php wp_nonce_field('options', '_wpnonce_options') ?>
views/admin/export/options/settings.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wpallexport-template">
2
+ <div class="wpallexport-collapsed wpallexport-section">
3
+ <div class="wpallexport-content-section">
4
+ <div class="wpallexport-collapsed-header" style="padding-left: 25px;">
5
+ <h3><?php _e('Advanced Export','wp_all_export_plugin');?></h3>
6
+ </div>
7
+ <div class="wpallexport-collapsed-content" style="padding: 0;">
8
+ <div class="wpallexport-collapsed-content-inner">
9
+ <table class="form-table" style="max-width:none;">
10
+ <tr>
11
+ <td colspan="3">
12
+ <div class="input" style="margin:5px 0px;">
13
+ <label for="records_per_request"><?php _e('In each iteration, process', 'wp_all_export_plugin');?> <input type="text" name="records_per_iteration" class="wp_all_export_sub_input" style="width: 40px;" value="<?php echo esc_attr($post['records_per_iteration']) ?>" /> <?php _e('records', 'wp_all_export_plugin'); ?></label>
14
+ <a href="#help" class="wpallexport-help" style="position: relative; top: -2px;" title="<?php _e('WP All Export must be able to process this many records in less than your server\'s timeout settings. If your export fails before completion, to troubleshoot you should lower this number.', 'wp_all_export_plugin'); ?>">?</a>
15
+ </div>
16
+ <div class="input" style="margin:5px 0px;">
17
+ <input type="hidden" name="export_only_new_stuff" value="0" />
18
+ <input type="checkbox" id="export_only_new_stuff" name="export_only_new_stuff" value="1" <?php echo $post['export_only_new_stuff'] ? 'checked="checked"': '' ?> />
19
+ <label for="export_only_new_stuff"><?php printf(__('Only export %s once', 'wp_all_export_plugin'), empty($post['cpt']) ? __('records', 'wp_all_export_plugin') : wp_all_export_get_cpt_name($post['cpt'])); ?></label>
20
+ <a href="#help" class="wpallexport-help" style="position: relative; top: -2px;" title="<?php _e('If re-run, this export will only include records that have not been previously exported.', 'wp_all_export_plugin'); ?>">?</a>
21
+ </div>
22
+ <div class="input" style="margin:5px 0px;">
23
+ <input type="hidden" name="include_bom" value="0" />
24
+ <input type="checkbox" id="include_bom" name="include_bom" value="1" <?php echo $post['include_bom'] ? 'checked="checked"': '' ?> />
25
+ <label for="include_bom"><?php _e('Include BOM in export file', 'wp_all_export_plugin') ?></label>
26
+ <a href="#help" class="wpallexport-help" style="position: relative; top: -2px;" title="<?php _e('The BOM will help some programs like Microsoft Excel read your export file if it includes non-English characters.', 'wp_all_export_plugin'); ?>">?</a>
27
+ </div>
28
+ <div class="input" style="margin:5px 0px;">
29
+ <input type="hidden" name="creata_a_new_export_file" value="0" />
30
+ <input type="checkbox" id="creata_a_new_export_file" name="creata_a_new_export_file" value="1" <?php echo $post['creata_a_new_export_file'] ? 'checked="checked"': '' ?> />
31
+ <label for="creata_a_new_export_file"><?php _e('Create a new file each time export is run', 'wp_all_export_plugin') ?></label>
32
+ <a href="#help" class="wpallexport-help" style="position: relative; top: -2px;" title="<?php _e('If disabled, the export file will be overwritten every time this export run.', 'wp_all_export_plugin'); ?>">?</a>
33
+ </div>
34
+ <div class="input" style="margin:5px 0px;">
35
+ <input type="hidden" name="split_large_exports" value="0" />
36
+ <input type="checkbox" id="split_large_exports" name="split_large_exports" class="switcher" value="1" <?php echo $post['split_large_exports'] ? 'checked="checked"': '' ?> />
37
+ <label for="split_large_exports"><?php _e('Split large exports into multiple files', 'wp_all_export_plugin') ?></label>
38
+ <span class="switcher-target-split_large_exports pl17" style="display:block; clear: both; width: 100%;">
39
+ <div class="input pl17" style="margin:5px 0px;">
40
+ <label for="records_per_request"><?php _e('Limit export to', 'wp_all_export_plugin');?></label> <input type="text" name="split_large_exports_count" class="wp_all_export_sub_input" style="width: 50px;" value="<?php echo esc_attr($post['split_large_exports_count']) ?>" /> <?php _e('records per file', 'wp_all_export_plugin'); ?>
41
+ </div>
42
+ </span>
43
+ </div>
44
+ <br>
45
+ <hr>
46
+ <p style="text-align:right;">
47
+ <div class="input">
48
+ <label for="save_import_as" style="width: 103px;"><?php _e('Friendly Name:','wp_all_export_plugin');?></label>
49
+ <input type="text" name="friendly_name" title="<?php _e('Save friendly name...', 'pmxi_plugin') ?>" style="vertical-align:middle; background:#fff !important;" value="<?php echo esc_attr($post['friendly_name']) ?>" />
50
+ </div>
51
+ </p>
52
+ </td>
53
+ </tr>
54
+ </table>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </div>
views/admin/export/process.php CHANGED
@@ -40,6 +40,12 @@
40
  <div class="input">
41
  <button class="button button-primary button-hero wpallexport-large-button download_data" rel="<?php echo add_query_arg(array('action' => 'download', 'id' => $update_previous->id, '_wpnonce' => wp_create_nonce( '_wpnonce-download_feed' )), $this->baseUrl); ?>"><?php echo strtoupper($update_previous->options['export_to']); ?></button>
42
  </div>
 
 
 
 
 
 
43
  <?php if ( empty($update_previous->options['cpt']) or ! in_array('shop_order', $update_previous->options['cpt'])): ?>
44
  <div class="input" style="margin-left: 10px;">
45
  <button class="button button-primary button-hero wpallexport-large-button download_data" rel="<?php echo add_query_arg(array('page' => 'pmxe-admin-manage', 'id' => $update_previous->id, 'action' => 'bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_bundle' )), $this->baseUrl); ?>"><?php _e('Bundle', 'wp_all_export_plugin'); ?></button>
40
  <div class="input">
41
  <button class="button button-primary button-hero wpallexport-large-button download_data" rel="<?php echo add_query_arg(array('action' => 'download', 'id' => $update_previous->id, '_wpnonce' => wp_create_nonce( '_wpnonce-download_feed' )), $this->baseUrl); ?>"><?php echo strtoupper($update_previous->options['export_to']); ?></button>
42
  </div>
43
+ <?php if ( ! empty($update_previous->options['split_large_exports']) ): ?>
44
+ <div class="input" style="margin-left: 10px;">
45
+ <button class="button button-primary button-hero wpallexport-large-button download_data" rel="<?php echo add_query_arg(array('page' => 'pmxe-admin-manage', 'id' => $update_previous->id, 'action' => 'split_bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_split_bundle' )), $this->baseUrl); ?>"><?php printf(__('Split %ss', 'wp_all_export_plugin'), strtoupper($update_previous->options['export_to'])); ?></button>
46
+ <!--span><?php _e('Settings & Data for WP All Import', 'wp_all_export_plugin'); ?></span-->
47
+ </div>
48
+ <?php endif; ?>
49
  <?php if ( empty($update_previous->options['cpt']) or ! in_array('shop_order', $update_previous->options['cpt'])): ?>
50
  <div class="input" style="margin-left: 10px;">
51
  <button class="button button-primary button-hero wpallexport-large-button download_data" rel="<?php echo add_query_arg(array('page' => 'pmxe-admin-manage', 'id' => $update_previous->id, 'action' => 'bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_bundle' )), $this->baseUrl); ?>"><?php _e('Bundle', 'wp_all_export_plugin'); ?></button>
views/admin/export/template.php CHANGED
@@ -112,7 +112,7 @@
112
 
113
  }
114
  ?>
115
- <li class="placeholder" <?php if ( ! empty($post['ids']) and count($post['ids']) > 1 or $new_export) echo 'style="display:none;"'; ?>><?php _e("Drop & drop data from \"Available Data\" on the right to include it in the export or click \"Add Field To Export\" below.", "wp_all_export_plugin"); ?></li>
116
  <?php
117
  ?>
118
  </ol>
@@ -159,8 +159,14 @@
159
  <div class="input switcher-target-export_to_csv" style="margin-top: 10px;">
160
  <input type="hidden" name="order_item_per_row" value="0"/>
161
  <input type="checkbox" id="order_item_per_row" name="order_item_per_row" value="1" <?php if ($post['order_item_per_row']):?>checked="checked"<?php endif; ?>/>
162
- <label for="order_item_per_row"><?php _e("Display each product in its own row"); ?></label>
163
- <a href="#help" class="wpallexport-help" style="position: relative; top: 0px;" title="<?php _e('If an order contains multiple products, each product have its own row.', 'wp_all_export_plugin'); ?>">?</a>
 
 
 
 
 
 
164
  </div>
165
  <?php endif; ?>
166
  </div>
@@ -197,6 +203,34 @@
197
 
198
  <hr>
199
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
  <div class="wpallexport-submit-buttons">
201
 
202
  <div style="text-align:center; width:100%;">
112
 
113
  }
114
  ?>
115
+ <li class="placeholder" <?php if ( ! empty($post['ids']) and count($post['ids']) > 1 or $new_export) echo 'style="display:none;"'; ?>><?php _e("Drag & drop data from \"Available Data\" on the right to include it in the export or click \"Add Field To Export\" below.", "wp_all_export_plugin"); ?></li>
116
  <?php
117
  ?>
118
  </ol>
159
  <div class="input switcher-target-export_to_csv" style="margin-top: 10px;">
160
  <input type="hidden" name="order_item_per_row" value="0"/>
161
  <input type="checkbox" id="order_item_per_row" name="order_item_per_row" value="1" <?php if ($post['order_item_per_row']):?>checked="checked"<?php endif; ?>/>
162
+ <label for="order_item_per_row"><?php _e("Display each product in its own row", "wp_all_export_plugin"); ?></label>
163
+ <a href="#help" class="wpallexport-help" style="position: relative; top: 0px;" title="<?php _e('If an order contains multiple products, each product will have its own row. If disabled, each product will have its own column.', 'wp_all_export_plugin'); ?>">?</a>
164
+ <div class="input switcher-target-order_item_per_row" style="margin-top: 10px; padding-left: 15px;">
165
+ <input type="hidden" name="order_item_fill_empty_columns" value="0"/>
166
+ <input type="checkbox" id="order_item_fill_empty_columns" name="order_item_fill_empty_columns" value="1" <?php if ($post['order_item_fill_empty_columns']):?>checked="checked"<?php endif; ?>/>
167
+ <label for="order_item_fill_empty_columns"><?php _e("Fill in empty columns", "wp_all_export_plugin"); ?></label>
168
+ <a href="#help" class="wpallexport-help" style="position: relative; top: 0px;" title="<?php _e('If enabled, each order item will appear as its own row with all order info filled in for every column. If disabled, order info will only display on one row with only the order item info displaying in additional rows.', 'wp_all_export_plugin'); ?>">?</a>
169
+ </div>
170
  </div>
171
  <?php endif; ?>
172
  </div>
203
 
204
  <hr>
205
 
206
+ <div class="input wpallexport-section" style="padding-bottom: 8px; padding-left: 8px;">
207
+
208
+ <p style="margin: 11px; float: left;">
209
+ <input type="hidden" name="save_template_as" value="0" />
210
+ <input type="checkbox" id="save_template_as" name="save_template_as" class="switcher-horizontal fix_checkbox" value="1" <?php echo ( ! empty($post['save_template_as'])) ? 'checked="checked"' : '' ?> />
211
+ <label for="save_template_as"><?php _e('Save settings as a template','wp_all_export_plugin');?></label>
212
+ </p>
213
+ <div class="switcher-target-save_template_as" style="float: left; overflow: hidden;">
214
+ <input type="text" name="name" placeholder="<?php _e('Template name...', 'wp_all_export_plugin') ?>" style="vertical-align:middle; line-height: 26px;" value="<?php echo esc_attr($post['name']) ?>" />
215
+ </div>
216
+ <?php $templates = new PMXE_Template_List(); ?>
217
+ <div class="load-template">
218
+ <select name="load_template" id="load_template" style="padding:2px; width: auto; height: 40px;">
219
+ <option value=""><?php _e('Load Template...', 'wp_all_export_plugin') ?></option>
220
+ <?php foreach ($templates->getBy()->convertRecords() as $t): ?>
221
+ <?php
222
+ // When creating a new export you should be able to select existing saved export templates that were created for the same post type.
223
+ if ( $this->isWizard and $t->options['cpt'] != $post['cpt'] ) continue;
224
+ ?>
225
+ <option value="<?php echo $t->id ?>"><?php echo $t->name ?></option>
226
+ <?php endforeach ?>
227
+ </select>
228
+ </div>
229
+
230
+ </div>
231
+
232
+ <hr>
233
+
234
  <div class="wpallexport-submit-buttons">
235
 
236
  <div style="text-align:center; width:100%;">
views/admin/export/template/new_field_shop_order.php CHANGED
@@ -15,18 +15,18 @@
15
 
16
  <?php endforeach; ?>
17
 
18
- <optgroup label="Advanced">
19
  <option value="sql"><?php _e("SQL Query", "wp_all_export_plugin"); ?></option>
20
  </optgroup>
21
 
22
  </select>
23
  </div>
24
 
25
- <!--div class="input">
26
  <label style="padding:4px; display: block;"><?php _e('What would you like to name the column/element in your exported file?','wp_all_export_plugin');?></label>
27
  <div class="clear"></div>
28
  <input type="text" class="column_name" value="" style="width:50%"/>
29
- </div-->
30
  <input type="hidden" class="column_name" value=""/>
31
  <input type="hidden" name="export_data_type" value="shop_order"/>
32
 
15
 
16
  <?php endforeach; ?>
17
 
18
+ <optgroup label="Advanced Query">
19
  <option value="sql"><?php _e("SQL Query", "wp_all_export_plugin"); ?></option>
20
  </optgroup>
21
 
22
  </select>
23
  </div>
24
 
25
+ <div class="input">
26
  <label style="padding:4px; display: block;"><?php _e('What would you like to name the column/element in your exported file?','wp_all_export_plugin');?></label>
27
  <div class="clear"></div>
28
  <input type="text" class="column_name" value="" style="width:50%"/>
29
+ </div>
30
  <input type="hidden" class="column_name" value=""/>
31
  <input type="hidden" name="export_data_type" value="shop_order"/>
32
 
views/admin/manage/index.php CHANGED
@@ -34,7 +34,7 @@ $columns = array(
34
  'info' => __('Info & Options', 'wp_all_export_plugin'),
35
  );
36
 
37
- if ( ! wp_all_export_is_compatible()) unset($columns['info']);
38
 
39
  $columns = apply_filters('pmxe_manage_imports_columns', $columns);
40
 
@@ -133,18 +133,25 @@ $columns = apply_filters('pmxe_manage_imports_columns', $columns);
133
  <div class="row-actions">
134
  <span class="edit"><a class="edit" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'template'), $this->baseUrl)) ?>"><?php _e('Edit Template', 'wp_all_export_plugin') ?></a></span> |
135
  <span class="edit"><a class="edit" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'options'), $this->baseUrl)) ?>"><?php _e('Edit Options', 'wp_all_export_plugin') ?></a></span> |
 
136
  <?php if ( ! $is_secure_import and $item['attch_id']): ?>
137
  <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'get_file', '_wpnonce' => wp_create_nonce( '_wpnonce-download_feed' )), $this->baseUrl)) ?>"><?php echo strtoupper($item['options']['export_to']); ?></a></span> |
138
  <?php if (! empty($item['options']['tpl_data']) and (empty($item['options']['cpt']) or !in_array('shop_order', $item['options']['cpt']))):?>
139
  <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_bundle' )), $this->baseUrl)) ?>"><?php _e('Bundle', 'wp_all_export_plugin'); ?></a></span> |
140
  <?php endif; ?>
141
  <?php endif; ?>
 
142
  <?php if ($is_secure_import and ! empty($item['options']['filepath'])): ?>
143
  <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'get_file', '_wpnonce' => wp_create_nonce( '_wpnonce-download_feed' )), $this->baseUrl)) ?>"><?php echo strtoupper($item['options']['export_to']); ?></a></span> |
144
  <?php if (! empty($item['options']['tpl_data']) and (empty($item['options']['cpt']) or !in_array('shop_order', $item['options']['cpt']))):?>
145
  <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_bundle' )), $this->baseUrl)) ?>"><?php _e('Bundle', 'wp_all_export_plugin'); ?></a></span> |
146
  <?php endif; ?>
147
  <?php endif; ?>
 
 
 
 
 
148
  <span class="delete"><a class="delete" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'delete'), $this->baseUrl)) ?>"><?php _e('Delete', 'wp_all_export_plugin') ?></a></span>
149
  </div>
150
  </td>
34
  'info' => __('Info & Options', 'wp_all_export_plugin'),
35
  );
36
 
37
+ //if ( ! wp_all_export_is_compatible()) unset($columns['info']);
38
 
39
  $columns = apply_filters('pmxe_manage_imports_columns', $columns);
40
 
133
  <div class="row-actions">
134
  <span class="edit"><a class="edit" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'template'), $this->baseUrl)) ?>"><?php _e('Edit Template', 'wp_all_export_plugin') ?></a></span> |
135
  <span class="edit"><a class="edit" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'options'), $this->baseUrl)) ?>"><?php _e('Edit Options', 'wp_all_export_plugin') ?></a></span> |
136
+
137
  <?php if ( ! $is_secure_import and $item['attch_id']): ?>
138
  <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'get_file', '_wpnonce' => wp_create_nonce( '_wpnonce-download_feed' )), $this->baseUrl)) ?>"><?php echo strtoupper($item['options']['export_to']); ?></a></span> |
139
  <?php if (! empty($item['options']['tpl_data']) and (empty($item['options']['cpt']) or !in_array('shop_order', $item['options']['cpt']))):?>
140
  <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_bundle' )), $this->baseUrl)) ?>"><?php _e('Bundle', 'wp_all_export_plugin'); ?></a></span> |
141
  <?php endif; ?>
142
  <?php endif; ?>
143
+
144
  <?php if ($is_secure_import and ! empty($item['options']['filepath'])): ?>
145
  <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'get_file', '_wpnonce' => wp_create_nonce( '_wpnonce-download_feed' )), $this->baseUrl)) ?>"><?php echo strtoupper($item['options']['export_to']); ?></a></span> |
146
  <?php if (! empty($item['options']['tpl_data']) and (empty($item['options']['cpt']) or !in_array('shop_order', $item['options']['cpt']))):?>
147
  <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_bundle' )), $this->baseUrl)) ?>"><?php _e('Bundle', 'wp_all_export_plugin'); ?></a></span> |
148
  <?php endif; ?>
149
  <?php endif; ?>
150
+
151
+ <?php if ( ! empty($item['options']['split_large_exports']) and ! empty($item['options']['split_files_list']) ): ?>
152
+ <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'split_bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_split_bundle' )), $this->baseUrl)) ?>"><?php printf(__('Split %ss', 'wp_all_export_plugin'), strtoupper($item['options']['export_to'])); ?></a></span> |
153
+ <?php endif; ?>
154
+
155
  <span class="delete"><a class="delete" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'delete'), $this->baseUrl)) ?>"><?php _e('Delete', 'wp_all_export_plugin') ?></a></span>
156
  </div>
157
  </td>
views/admin/manage/scheduling.php CHANGED
@@ -3,16 +3,17 @@
3
  </h2>
4
 
5
  <div class="wpallexport-free-edition-notice" style="padding: 20px; margin-left: 0px;">
6
- <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=cron&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to enable automated exports.', 'wp_all_export_plugin');?></a>
 
7
  </div>
8
 
9
  <p>
10
- <?php _e('To schedule an import, you must create two cron jobs in your web hosting control panel. One cron job will be used to run the Trigger script, the other to run the Execution script.', 'wp_all_export_plugin'); ?>
11
  </p>
12
 
13
  <p>
14
  <?php _e('Trigger Script URL', 'wp_all_export_plugin');?><br />
15
- <small><?php _e('Run the trigger script when you want to update your import. Once per 24 hours is recommended.', 'wp_all_export_plugin'); ?></small><br />
16
  <input style='width: 700px;' type='text' value='<?php echo home_url() . '/wp-cron.php?export_key=' . $cron_job_key . '&export_id=' . $id . '&action=trigger'; ?>' disabled="disabled"/>
17
  <br /><br />
18
  <?php _e('Execution Script URL', 'wp_all_export_plugin');?><br />
@@ -24,9 +25,9 @@
24
 
25
  <p><strong><?php _e('Trigger Script', 'wp_all_export_plugin'); ?></strong></p>
26
 
27
- <p><?php _e('Every time you want to schedule the import, run the trigger script.', 'wp_all_export_plugin'); ?></p>
28
 
29
- <p><?php _e('To schedule the import to run once every 24 hours, run the trigger script every 24 hours. Most hosts require you to use “wget” to access a URL. Ask your host for details.', 'wp_all_export_plugin'); ?></p>
30
 
31
  <p><i><?php _e('Example:', 'wp_all_export_plugin'); ?></i></p>
32
 
@@ -34,11 +35,11 @@
34
 
35
  <p><strong><?php _e('Execution Script', 'wp_all_export_plugin'); ?></strong></p>
36
 
37
- <p><?php _e('The Execution script actually executes the import, once it has been triggered with the Trigger script.', 'wp_all_export_plugin'); ?></p>
38
 
39
- <p><?php _e('It processes in iteration (only importing a few records each time it runs) to optimize server load. It is recommended you run the execution script every 2 minutes.', 'wp_all_export_plugin'); ?></p>
40
 
41
- <p><?php _e('It also operates this way in case of unexpected crashes by your web host. If it crashes before the import is finished, the next run of the cron job two minutes later will continue it where it left off, ensuring reliability.', 'wp_all_export_plugin'); ?></p>
42
 
43
  <p><i><?php _e('Example:', 'wp_all_export_plugin'); ?></i></p>
44
 
3
  </h2>
4
 
5
  <div class="wpallexport-free-edition-notice" style="padding: 20px; margin-left: 0px;">
6
+ <a class="upgrade_link" target="_blank" href="http://www.wpallexport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=cron&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to enable automated exports.', 'wp_all_export_plugin');?></a>
7
+ <p><?php _e('If you already own it, remove the free edition and install the professional edition.', 'wp_all_export_plugin'); ?></p>
8
  </div>
9
 
10
  <p>
11
+ <?php _e('To schedule an export, you must create two cron jobs in your web hosting control panel. One cron job will be used to run the Trigger script, the other to run the Execution script.', 'wp_all_export_plugin'); ?>
12
  </p>
13
 
14
  <p>
15
  <?php _e('Trigger Script URL', 'wp_all_export_plugin');?><br />
16
+ <small><?php _e('Run the trigger script when you want to update your export. Once per 24 hours is recommended.', 'wp_all_export_plugin'); ?></small><br />
17
  <input style='width: 700px;' type='text' value='<?php echo home_url() . '/wp-cron.php?export_key=' . $cron_job_key . '&export_id=' . $id . '&action=trigger'; ?>' disabled="disabled"/>
18
  <br /><br />
19
  <?php _e('Execution Script URL', 'wp_all_export_plugin');?><br />
25
 
26
  <p><strong><?php _e('Trigger Script', 'wp_all_export_plugin'); ?></strong></p>
27
 
28
+ <p><?php _e('Every time you want to schedule the export, run the trigger script.', 'wp_all_export_plugin'); ?></p>
29
 
30
+ <p><?php _e('To schedule the export to run once every 24 hours, run the trigger script every 24 hours. Most hosts require you to use “wget” to access a URL. Ask your host for details.', 'wp_all_export_plugin'); ?></p>
31
 
32
  <p><i><?php _e('Example:', 'wp_all_export_plugin'); ?></i></p>
33
 
35
 
36
  <p><strong><?php _e('Execution Script', 'wp_all_export_plugin'); ?></strong></p>
37
 
38
+ <p><?php _e('The Execution script actually executes the export, once it has been triggered with the Trigger script.', 'wp_all_export_plugin'); ?></p>
39
 
40
+ <p><?php _e('It processes in iteration (only exporting a few records each time it runs) to optimize server load. It is recommended you run the execution script every 2 minutes.', 'wp_all_export_plugin'); ?></p>
41
 
42
+ <p><?php _e('It also operates this way in case of unexpected crashes by your web host. If it crashes before the export is finished, the next run of the cron job two minutes later will continue it where it left off, ensuring reliability.', 'wp_all_export_plugin'); ?></p>
43
 
44
  <p><i><?php _e('Example:', 'wp_all_export_plugin'); ?></i></p>
45
 
views/admin/manage/update.php CHANGED
@@ -1,16 +1,217 @@
1
- <h2><?php _e('Re-run Export', 'pmxe_plugin') ?></h2>
2
 
3
- <?php if ($this->errors->get_error_codes()): ?>
4
- <?php $this->error() ?>
5
- <?php endif ?>
6
 
7
- <form method="post">
8
- <p><?php printf(__('Are you sure you want to re-run <strong>%s</strong> export?', 'pmxe_plugin'), $item->friendly_name) ?></p>
 
 
 
 
 
 
 
 
 
 
9
 
10
- <p class="submit">
11
- <?php wp_nonce_field('update-export', '_wpnonce_update-export') ?>
12
- <input type="hidden" name="is_confirmed" value="1" />
13
- <input type="submit" class="button-primary ajax-update" value="Export Posts" />
14
- </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
- </form>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
 
3
+ $baseUrl = $this->baseUrl;
 
 
4
 
5
+ $l10n = array(
6
+ 'confirm_and_run' => __('Confirm & Run Export', 'wp_all_export_plugin'),
7
+ 'save_configuration' => __('Save Export Configuration', 'wp_all_export_plugin')
8
+ );
9
+
10
+ ?>
11
+ <script type="text/javascript">
12
+ var wp_all_export_L10n = <?php echo json_encode($l10n); ?>;
13
+ </script>
14
+
15
+
16
+ <div class="wpallexport-step-4 wpallexport-re-run-export">
17
 
18
+ <h2 class="wpallexport-wp-notices"></h2>
19
+
20
+ <div class="wpallexport-wrapper">
21
+ <h2 class="wpallexport-wp-notices"></h2>
22
+ <div class="wpallexport-header">
23
+ <div class="wpallexport-logo"></div>
24
+ <div class="wpallexport-title">
25
+ <p><?php _e('WP All Export', 'wp_all_export_plugin'); ?></p>
26
+ <h2><?php _e('Export to XML / CSV', 'wp_all_export_plugin'); ?></h2>
27
+ </div>
28
+ <div class="wpallexport-links">
29
+ <a href="http://www.wpallimport.com/support/" target="_blank"><?php _e('Support', 'wp_all_export_plugin'); ?></a> | <a href="http://www.wpallimport.com/documentation/" target="_blank"><?php _e('Documentation', 'wp_all_export_plugin'); ?></a>
30
+ </div>
31
+ </div>
32
+ <div class="clear"></div>
33
+ </div>
34
+
35
+ <table class="wpallexport-layout">
36
+ <tr>
37
+ <td class="left" style="width: 100%;">
38
 
39
+ <?php do_action('pmxe_options_header', $isWizard, $post); ?>
40
+
41
+ <div class="ajax-console">
42
+ <?php if ($this->errors->get_error_codes()): ?>
43
+ <?php $this->error() ?>
44
+ <?php endif ?>
45
+ </div>
46
+
47
+ <div class="wpallexport-content-section" style="padding: 0 30px 0 0; overflow: hidden; margin-bottom: 0;">
48
+
49
+ <div id="filtering_result" class="wpallexport-ready-to-go <?php if (empty(PMXE_Plugin::$session->found_posts)):?>nothing_to_export<?php endif;?>">
50
+ <?php if (empty(PMXE_Plugin::$session->found_posts)):?>
51
+ <h3><?php _e('Nothing to export.', 'wp_all_export_plugin'); ?></h3>
52
+ <h4><?php printf(__("No matching %s found for selected filter rules.", "wp_all_export_plugin"), wp_all_export_get_cpt_name($post['cpt'])); ?></h4>
53
+ <?php else: ?>
54
+ <h3><?php _e('Your export is ready to run.', 'wp_all_export_plugin'); ?></h3>
55
+ <h4><?php printf(__('WP All Export will export %d %s.'), PMXE_Plugin::$session->found_posts, wp_all_export_get_cpt_name($post['cpt'])); ?></h4>
56
+ <?php endif; ?>
57
+ </div>
58
+
59
+ <form class="confirm <?php echo ! $isWizard ? 'edit' : '' ?>" method="post" style="float:right;">
60
+
61
+ <?php wp_nonce_field('update-export', '_wpnonce_update-export') ?>
62
+ <input type="hidden" name="is_confirmed" value="1" />
63
+
64
+ <input type="submit" class="rad10 wp_all_export_confirm_and_run" value="<?php _e('Confirm & Run Export', 'wp_all_export_plugin') ?>" <?php if (empty(PMXE_Plugin::$session->found_posts)):?>style="display:none;"<?php endif;?>/>
65
+ </form>
66
+
67
+ </div>
68
+
69
+ <div class="clear"></div>
70
+
71
+ <form class="<?php echo ! $isWizard ? 'edit' : 'options' ?> choose-export-options" method="post" enctype="multipart/form-data" autocomplete="off" <?php echo ! $isWizard ? 'style="overflow:visible;"' : '' ?>>
72
+
73
+ <?php if ( ! $isWizard and $post['export_type'] == 'specific'): ?>
74
+
75
+ <div class="wpallexport-collapsed wpallexport-section closed">
76
+ <div class="wpallexport-content-section">
77
+ <div class="wpallexport-collapsed-header" style="padding-left: 25px;">
78
+ <h3><?php _e('Filters','wp_all_export_plugin');?></h3>
79
+ </div>
80
+ <div class="wpallexport-collapsed-content" style="padding: 0;">
81
+ <div class="wpallexport-collapsed-content-inner">
82
+ <div class="wpallexport-free-edition-notice" style="padding: 20px; margin-bottom: 10px;">
83
+ <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-pro/?utm_source=free-plugin&amp;utm_medium=in-plugin&amp;utm_campaign=download-from-url"><?php _e('Upgrade to the professional edition of WP All Export to add filtering rules.','wp_all_export_plugin');?></a>
84
+ </div>
85
+ <input type="hidden" name="selected_post_type" value="<?php echo $post['cpt'][0]; ?>"/>
86
+ <div class="wp_all_export_rule_inputs">
87
+ <table>
88
+ <tr>
89
+ <th><?php _e('Element', 'wp_all_export_plugin'); ?></th>
90
+ <th><?php _e('Rule', 'wp_all_export_plugin'); ?></th>
91
+ <th><?php _e('Value', 'wp_all_export_plugin'); ?></th>
92
+ <th>&nbsp;</th>
93
+ </tr>
94
+ <tr>
95
+ <td style="width: 25%;">
96
+ <select id="wp_all_export_xml_element">
97
+ <option value=""><?php _e('Select Element', 'wp_all_export_plugin'); ?></option>
98
+ <?php echo $engine->render_filters(); ?>
99
+ </select>
100
+ </td>
101
+ <td style="width: 25%;" id="wp_all_export_available_rules">
102
+ <select id="wp_all_export_rule">
103
+ <option value=""><?php _e('Select Rule', 'wp_all_export_plugin'); ?></option>
104
+ </select>
105
+ </td>
106
+ <td style="width: 25%;">
107
+ <input id="wp_all_export_value" type="text" placeholder="value" value="" disabled="disabled"/>
108
+ </td>
109
+ <td style="width: 15%;">
110
+ <a id="wp_all_export_add_rule" href="javascript:void(0);"><?php _e('Add Rule', 'wp_all_export_plugin');?></a>
111
+ </td>
112
+ </tr>
113
+ </table>
114
+ </div>
115
+ <div id="wpallexport-filters" style="padding:0;">
116
+ <div class="wpallexport-content-section" style="padding:0; border: none;">
117
+ <fieldset id="wp_all_export_filtering_rules">
118
+ <?php
119
+ $filter_rules = $post['filter_rules_hierarhy'];
120
+ $filter_rules_hierarhy = json_decode($filter_rules);
121
+ if ( empty($filter_rules_hierarhy) or ! is_array($filter_rules_hierarhy) ):
122
+ ?>
123
+ <p style="margin:20px 0 5px; text-align:center;"><?php _e('No filtering options. Add filtering options to only export records matching some specified criteria.', 'wp_all_export_plugin');?></p>
124
+ <?php
125
+ endif;
126
+ ?>
127
+ <ol class="wp_all_export_filtering_rules">
128
+ <?php
129
+ if ( ! empty($filter_rules_hierarhy) and is_array($filter_rules_hierarhy) ):
130
+ $rulenumber = 0;
131
+ foreach ($filter_rules_hierarhy as $rule) {
132
+
133
+ if ( is_null($rule->parent_id) )
134
+ {
135
+ $rulenumber++;
136
+ ?>
137
+ <li id="item_<?php echo $rulenumber;?>" class="dragging">
138
+ <div class="drag-element">
139
+ <input type="hidden" value="<?php echo $rule->element; ?>" class="wp_all_export_xml_element" name="wp_all_export_xml_element[<?php echo $rulenumber; ?>]"/>
140
+ <input type="hidden" value="<?php echo $rule->title; ?>" class="wp_all_export_xml_element_title" name="wp_all_export_xml_element_title[<?php echo $rulenumber; ?>]"/>
141
+ <input type="hidden" value="<?php echo $rule->condition; ?>" class="wp_all_export_rule" name="wp_all_export_rule[<?php echo $rulenumber; ?>]"/>
142
+ <input type="hidden" value="<?php echo $rule->value; ?>" class="wp_all_export_value" name="wp_all_export_value[<?php echo $rulenumber; ?>]"/>
143
+ <span class="rule_element"><?php echo $rule->title; ?></span>
144
+ <span class="rule_as_is"><?php echo $rule->condition; ?></span>
145
+ <span class="rule_condition_value"><?php echo $rule->value; ?></span>
146
+ <span class="condition <?php if ($rulenumber == count($filter_rules_hierarhy)):?>last_condition<?php endif; ?>">
147
+ <label for="rule_and_<?php echo $rulenumber; ?>">AND</label>
148
+ <input id="rule_and_<?php echo $rulenumber; ?>" type="radio" value="and" name="rule[<?php echo $rulenumber; ?>]" <?php if ($rule->clause == 'AND'): ?>checked="checked"<?php endif; ?> class="rule_condition"/>
149
+ <label for="rule_or_<?php echo $rulenumber; ?>">OR</label>
150
+ <input id="rule_or_<?php echo $rulenumber; ?>" type="radio" value="or" name="rule[<?php echo $rulenumber; ?>]" <?php if ($rule->clause == 'OR'): ?>checked="checked"<?php endif; ?> class="rule_condition"/>
151
+ </span>
152
+ </div>
153
+ <a href="javascript:void(0);" class="icon-item remove-ico"></a>
154
+ <?php echo wp_all_export_reverse_rules_html($filter_rules_hierarhy, $rule, $rulenumber); ?>
155
+ </li>
156
+ <?php
157
+ }
158
+ }
159
+ endif;
160
+ ?>
161
+ </ol>
162
+ <div class="clear"></div>
163
+ <div class="wp_all_export_filter_preloader"></div>
164
+ </fieldset>
165
+
166
+ <?php if ( @in_array("product", $post["cpt"]) and class_exists('WooCommerce')) : ?>
167
+
168
+ <div class="input wp_all_export_product_matching_mode" <?php if (empty($filter_rules_hierarhy)): ?>style="display:none;"<?php endif; ?>>
169
+ <?php $product_matching_mode = $post['product_matching_mode']; ?>
170
+ <label><?php _e("Variable product matching rules: ", "wp_all_export_plugin"); ?></label>
171
+ <select name="product_matching_mode">
172
+ <option value="strict" <?php echo ( $product_matching_mode == 'strict' ) ? 'selected="selected"' : ''; ?>><?php _e("Strict", "wp_all_export_plugin"); ?></option>
173
+ <option value="permissive" <?php echo ( $product_matching_mode == 'permissive' ) ? 'selected="selected"' : ''; ?>><?php _e("Permissive", "wp_all_export_plugin"); ?></option>
174
+ </select>
175
+ <a href="#help" class="wpallexport-help" style="position: relative; top: 0px;" title="<?php _e('Strict matching requires all variations to pass in order for the product to be exported. Permissive matching allows the product to be exported if any of the variations pass.', 'wp_all_export_plugin'); ?>">?</a>
176
+ </div>
177
+
178
+ <?php endif; ?>
179
+
180
+ </div>
181
+ </div>
182
+ </div>
183
+
184
+ <input type="hidden" class="hierarhy-output" name="filter_rules_hierarhy" value="<?php echo esc_html($post['filter_rules_hierarhy']);?>"/>
185
+
186
+ </div>
187
+ </div>
188
+ </div>
189
+
190
+ <?php endif; ?>
191
+
192
+ <?php include_once PMXE_ROOT_DIR . '/views/admin/export/options/settings.php'; ?>
193
+
194
+ <p class="wpallexport-submit-buttons" style="text-align: center;">
195
+ <?php wp_nonce_field('update-export', '_wpnonce_update-export') ?>
196
+ <input type="hidden" name="is_confirmed" value="1" />
197
+
198
+ <a href="<?php echo apply_filters('pmxi_options_back_link', add_query_arg('id', $item->id, add_query_arg('action', 'template', $this->baseUrl)), $isWizard); ?>" class="back rad3"><?php _e('Edit Template', 'wp_all_export_plugin') ?></a>
199
+ <?php if (empty(PMXE_Plugin::$session->found_posts)):?>
200
+ <input type="submit" class="button button-primary button-hero wpallexport-large-button confirm_and_run_bottom" value="<?php _e('Save Export Configuration', 'wp_all_export_plugin') ?>" />
201
+ <?php else:?>
202
+ <input type="submit" class="button button-primary button-hero wpallexport-large-button confirm_and_run_bottom" value="<?php _e('Confirm & Run Export', 'wp_all_export_plugin') ?>" />
203
+ <?php endif;?>
204
+ </p>
205
+
206
+
207
+ </form>
208
+
209
+ <a href="http://soflyy.com/" target="_blank" class="wpallexport-created-by"><?php _e('Created by', 'wp_all_export_plugin'); ?> <span></span></a>
210
+
211
+ </td>
212
+ </tr>
213
+ </table>
214
+
215
+ </div>
216
+
217
+ <div class="wpallexport-overlay"></div>
views/admin/settings/index.php CHANGED
@@ -1,15 +1,50 @@
1
  <form class="settings" method="post" action="<?php echo $this->baseUrl ?>" enctype="multipart/form-data">
2
 
3
- <h2><?php _e('WP All Export Settings', 'pmxe_plugin') ?></h2>
4
- <hr />
5
- <?php if ($this->errors->get_error_codes()): ?>
6
- <?php $this->error() ?>
7
- <?php endif ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
  </form>
10
  <br />
11
 
12
- <form name="settings" method="post" action="<?php echo $this->baseUrl ?>">
13
 
14
  <h3><?php _e('Cron Exports', 'wp_all_export_plugin') ?></h3>
15
 
@@ -43,13 +78,39 @@
43
  <?php
44
  $wp_uploads = wp_upload_dir();
45
  ?>
46
- <?php printf(__('Exported files and temporary files will be placed in a folder with a randomized name inside of %s.', 'wp_all_export_plugin'), $wp_uploads['basedir'] . DIRECTORY_SEPARATOR . WP_ALL_EXPORT_UPLOADS_BASE_DIRECTORY ); ?>
47
  </p>
48
  </td>
49
  </tr>
50
  </tbody>
51
  </table>
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  <div class="clear"></div>
54
 
55
  <p class="submit-buttons">
@@ -70,6 +131,7 @@
70
 
71
  <div class="wpallexport-free-edition-notice" style="margin: 15px 0; padding: 20px;">
72
  <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=custom-php&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to enable the Function Editor.','wp_all_export_plugin');?></a>
 
73
  </div>
74
 
75
  <textarea id="wp_all_export_code" name="wp_all_export_code"><?php echo "<?php\n\n?>";?></textarea>
1
  <form class="settings" method="post" action="<?php echo $this->baseUrl ?>" enctype="multipart/form-data">
2
 
3
+ <div class="wpallexport-header">
4
+ <div class="wpallexport-logo"></div>
5
+ <div class="wpallexport-title">
6
+ <p><?php _e('WP All Export', 'wp_all_export_plugin'); ?></p>
7
+ <h3><?php _e('Settings', 'wp_all_export_plugin'); ?></h3>
8
+ </div>
9
+ </div>
10
+ <h2 style="padding:0px;"></h2>
11
+
12
+ <div class="wpallexport-setting-wrapper">
13
+ <?php if ($this->errors->get_error_codes()): ?>
14
+ <?php $this->error() ?>
15
+ <?php endif ?>
16
+
17
+ <h3><?php _e('Import/Export Templates', 'wp_all_export_plugin') ?></h3>
18
+ <?php $templates = new PMXE_Template_List(); $templates->getBy()->convertRecords() ?>
19
+ <?php wp_nonce_field('delete-templates', '_wpnonce_delete-templates') ?>
20
+ <?php if ($templates->total()): ?>
21
+ <table>
22
+ <?php foreach ($templates as $t): ?>
23
+ <tr>
24
+ <td>
25
+ <label class="selectit" for="template-<?php echo $t->id ?>"><input id="template-<?php echo $t->id ?>" type="checkbox" name="templates[]" value="<?php echo $t->id ?>" /> <?php echo $t->name ?></label>
26
+ </td>
27
+ </tr>
28
+ <?php endforeach ?>
29
+ </table>
30
+ <p class="submit-buttons">
31
+ <input type="submit" class="button-primary" name="delete_templates" value="<?php _e('Delete Selected', 'wp_all_export_plugin') ?>" />
32
+ <input type="submit" class="button-primary" name="export_templates" value="<?php _e('Export Selected', 'wp_all_export_plugin') ?>" />
33
+ </p>
34
+ <?php else: ?>
35
+ <em><?php _e('There are no templates saved', 'wp_all_export_plugin') ?></em>
36
+ <?php endif ?>
37
+ <p>
38
+ <input type="hidden" name="is_templates_submitted" value="1" />
39
+ <input type="file" name="template_file"/>
40
+ <input type="submit" class="button-primary" name="import_templates" value="<?php _e('Import Templates', 'wp_all_export_plugin') ?>" />
41
+ </p>
42
+ </div>
43
 
44
  </form>
45
  <br />
46
 
47
+ <form name="settings" class="settings" method="post" action="<?php echo $this->baseUrl ?>">
48
 
49
  <h3><?php _e('Cron Exports', 'wp_all_export_plugin') ?></h3>
50
 
78
  <?php
79
  $wp_uploads = wp_upload_dir();
80
  ?>
81
+ <?php printf(__('If enabled, exported files and temporary files will be saved in a folder with a randomized name in %s.<br/><br/>If disabled, exported files will be saved in the Media Library.', 'wp_all_export_plugin'), $wp_uploads['basedir'] . DIRECTORY_SEPARATOR . WP_ALL_EXPORT_UPLOADS_BASE_DIRECTORY ); ?>
82
  </p>
83
  </td>
84
  </tr>
85
  </tbody>
86
  </table>
87
 
88
+ <h3><?php _e('Zapier Integration', 'wp_all_export_plugin') ?></h3>
89
+
90
+ <table class="form-table">
91
+ <tbody>
92
+ <tr>
93
+ <th scope="row"><label><?php _e('API Key', 'wp_all_export_plugin'); ?></label></th>
94
+ <td>
95
+ <input type="text" class="regular-text" name="zapier_api_key" readOnly="readOnly" value="<?php if (!empty($post['zapier_api_key'])) esc_attr_e( $post['zapier_api_key'] ); ?>"/>
96
+ <input type="submit" class="button-secondary" name="pmxe_generate_zapier_api_key" value="<?php _e('Generate New API Key', 'wp_all_export_plugin'); ?>"/>
97
+ <p class="description"><?php _e('Changing the key will require you to update your existing Zaps on Zapier.', 'wp_all_export_plugin'); ?></p>
98
+ </td>
99
+ </tr>
100
+ <tr>
101
+ <th scope="row"><label><?php _e('Zapier beta invitation URL', 'wp_all_export_plugin'); ?></label></th>
102
+ <td>
103
+ <p class="description"><?php printf(__('You can get the invitation URL in the <a href="%s" target="_blank">customer portal</a>.', 'wp_all_export_plugin'), "http://www.wpallimport.com/portal"); ?></p>
104
+ </td>
105
+ </tr>
106
+ </tbody>
107
+ </table>
108
+
109
+ <div class="wpallexport-free-edition-notice" style="margin: 15px 0; padding: 20px;">
110
+ <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=custom-php&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to add Zapier integration.','wp_all_export_plugin');?></a>
111
+ <p><?php _e('If you already own it, remove the free edition and install the professional edition.', 'wp_all_export_plugin'); ?></p>
112
+ </div>
113
+
114
  <div class="clear"></div>
115
 
116
  <p class="submit-buttons">
131
 
132
  <div class="wpallexport-free-edition-notice" style="margin: 15px 0; padding: 20px;">
133
  <a class="upgrade_link" target="_blank" href="http://www.wpallimport.com/upgrade-to-wp-all-export-pro/?utm_source=wordpress.org&amp;utm_medium=custom-php&amp;utm_campaign=free+wp+all+export+plugin"><?php _e('Upgrade to the professional edition of WP All Export to enable the Function Editor.','wp_all_export_plugin');?></a>
134
+ <p><?php _e('If you already own it, remove the free edition and install the professional edition.', 'wp_all_export_plugin'); ?></p>
135
  </div>
136
 
137
  <textarea id="wp_all_export_code" name="wp_all_export_code"><?php echo "<?php\n\n?>";?></textarea>
wp-all-export.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WP All Export
4
  Plugin URI: http://www.wpallimport.com/export/
5
  Description: Export any post type to a CSV or XML file. Edit the exported data, and then re-import it later using WP All Import.
6
- Version: 1.0.2
7
  Author: Soflyy
8
  */
9
 
@@ -50,7 +50,7 @@ else {
50
  */
51
  define('PMXE_PREFIX', 'pmxe_');
52
 
53
- define('PMXE_VERSION', '1.0.2');
54
 
55
  define('PMXE_EDITION', 'free');
56
 
@@ -228,9 +228,7 @@ else {
228
  * @param string $rootDir Plugin root dir
229
  * @param string $pluginFilePath Plugin main file
230
  */
231
- protected function __construct() {
232
-
233
- $this->load_plugin_textdomain();
234
 
235
  // regirster autoloading method
236
  if (function_exists('__autoload') and ! in_array('__autoload', spl_autoload_functions())) { // make sure old way of autoloading classes is not broken
@@ -288,8 +286,14 @@ else {
288
 
289
  // register admin page pre-dispatcher
290
  add_action('admin_init', array($this, '__adminInit'));
 
 
291
  }
292
 
 
 
 
 
293
  /**
294
  * pre-dispatching logic for admin page controllers
295
  */
@@ -552,6 +556,48 @@ else {
552
  load_plugin_textdomain( 'wp_all_export_plugin', false, dirname( plugin_basename( __FILE__ ) ) . "/i18n/languages" );
553
  }
554
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
555
  /**
556
  * Method returns default import options, main utility of the method is to avoid warnings when new
557
  * option is introduced but already registered imports don't have it
@@ -564,6 +610,7 @@ else {
564
  'filter_rules_hierarhy' => '',
565
  'product_matching_mode' => 'strict',
566
  'order_item_per_row' => 1,
 
567
  'filepath' => '',
568
  'export_type' => 'specific',
569
  'wp_query' => '',
@@ -592,7 +639,18 @@ else {
592
  'ids' => array(),
593
  'rules' => array(),
594
  'records_per_iteration' => 50,
595
- 'include_bom' => 0
 
 
 
 
 
 
 
 
 
 
 
596
  );
597
  }
598
 
3
  Plugin Name: WP All Export
4
  Plugin URI: http://www.wpallimport.com/export/
5
  Description: Export any post type to a CSV or XML file. Edit the exported data, and then re-import it later using WP All Import.
6
+ Version: 1.0.3
7
  Author: Soflyy
8
  */
9
 
50
  */
51
  define('PMXE_PREFIX', 'pmxe_');
52
 
53
+ define('PMXE_VERSION', '1.0.3');
54
 
55
  define('PMXE_EDITION', 'free');
56
 
228
  * @param string $rootDir Plugin root dir
229
  * @param string $pluginFilePath Plugin main file
230
  */
231
+ protected function __construct() {
 
 
232
 
233
  // regirster autoloading method
234
  if (function_exists('__autoload') and ! in_array('__autoload', spl_autoload_functions())) { // make sure old way of autoloading classes is not broken
286
 
287
  // register admin page pre-dispatcher
288
  add_action('admin_init', array($this, '__adminInit'));
289
+ add_action('admin_init', array($this, '__fix_db_schema'));
290
+ add_action('init', array($this, 'init'));
291
  }
292
 
293
+ public function init(){
294
+ $this->load_plugin_textdomain();
295
+ }
296
+
297
  /**
298
  * pre-dispatching logic for admin page controllers
299
  */
556
  load_plugin_textdomain( 'wp_all_export_plugin', false, dirname( plugin_basename( __FILE__ ) ) . "/i18n/languages" );
557
  }
558
 
559
+ public function __fix_db_schema(){
560
+
561
+ global $wpdb;
562
+
563
+ if ( ! empty($wpdb->charset))
564
+ $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
565
+ if ( ! empty($wpdb->collate))
566
+ $charset_collate .= " COLLATE $wpdb->collate";
567
+
568
+ $table_prefix = $this->getTablePrefix();
569
+
570
+ $wpdb->query("CREATE TABLE IF NOT EXISTS {$table_prefix}templates (
571
+ id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
572
+ name VARCHAR(200) NOT NULL DEFAULT '',
573
+ options LONGTEXT,
574
+ PRIMARY KEY (id)
575
+ ) $charset_collate;");
576
+
577
+ $wpdb->query("CREATE TABLE IF NOT EXISTS {$table_prefix}posts (
578
+ id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
579
+ post_id BIGINT(20) UNSIGNED NOT NULL,
580
+ export_id BIGINT(20) UNSIGNED NOT NULL,
581
+ iteration BIGINT(20) NOT NULL DEFAULT 0,
582
+ PRIMARY KEY (id)
583
+ ) $charset_collate;");
584
+
585
+ $table = $this->getTablePrefix() . 'exports';
586
+ $tablefields = $wpdb->get_results("DESCRIBE {$table};");
587
+ $iteration = false;
588
+
589
+ // Check if field exists
590
+ foreach ($tablefields as $tablefield) {
591
+ if ('iteration' == $tablefield->Field) $iteration = true;
592
+ }
593
+
594
+ if ( ! $iteration ){
595
+
596
+ $wpdb->query("ALTER TABLE {$table} ADD `iteration` BIGINT(20) NOT NULL DEFAULT 0;");
597
+
598
+ }
599
+ }
600
+
601
  /**
602
  * Method returns default import options, main utility of the method is to avoid warnings when new
603
  * option is introduced but already registered imports don't have it
610
  'filter_rules_hierarhy' => '',
611
  'product_matching_mode' => 'strict',
612
  'order_item_per_row' => 1,
613
+ 'order_item_fill_empty_columns' => 0,
614
  'filepath' => '',
615
  'export_type' => 'specific',
616
  'wp_query' => '',
639
  'ids' => array(),
640
  'rules' => array(),
641
  'records_per_iteration' => 50,
642
+ 'include_bom' => 0,
643
+ 'include_functions' => 1,
644
+ 'split_large_exports' => 0,
645
+ 'split_large_exports_count' => 10000,
646
+ 'split_files_list' => array(),
647
+ 'main_xml_tag' => 'data',
648
+ 'record_xml_tag' => 'post',
649
+ 'save_template_as' => 0,
650
+ 'name' => '',
651
+ 'export_only_new_stuff' => 0,
652
+ 'creata_a_new_export_file' => 0,
653
+ 'attachment_list' => array()
654
  );
655
  }
656