PluginProbe
Import WP – CSV & XML Import Export for WordPress / 2.7.5
Import WP – CSV & XML Import Export for WordPress v2.7.5
2.15.1 2.15.0 2.14.24 2.14.23 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.9.0 2.9.1 All 144 releases
jc-importer / class / Common / Exporter / File / CSVFile.php

CSVFile.php in Import WP – CSV & XML Import Export for WordPress 2.7.5, at class/Common/Exporter/File/CSVFile.php

48 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ImportWP\Common\Exporter\File;
4
5 use ImportWP\Common\Exporter\Mapper\MapperData;
6
7 class CSVFile extends File
8 {
9 private $columns;
10 public function start()
11 {
12 $fields = $this->exporter->getFields();
13
14 $this->columns = array_reduce($fields, function ($carry, $item) {
15 $carry[$this->getFieldLabel($item)] = isset($item['selection']) ? $item['selection'] : '';
16 return $carry;
17 }, []);
18 // write headers
19 fputcsv($this->fh, array_keys($this->columns));
20 }
21
22 /**
23 * @param MapperData $mapper
24 * @return void
25 */
26 public function add($mapper)
27 {
28 $data = [];
29 $data = array_map(function ($item) use ($mapper) {
30 $record = $mapper->data([]);
31 $tmp = $mapper->get_value($item, $record[0]);
32 return is_array($tmp) ? implode(',', $tmp) : $tmp;
33 }, $this->columns);
34
35 fputcsv($this->fh, $data);
36 }
37
38 public function end()
39 {
40 fclose($this->fh);
41 }
42
43 public function get_file_name()
44 {
45 return $this->exporter->getId() . '.csv';
46 }
47 }
48