PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.3.2
GiveWP – Donation Plugin and Fundraising Platform v4.3.2
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / includes / admin / tools / export / class-export.php
give / includes / admin / tools / export Last commit date
class-batch-export-donors.php 5 years ago class-batch-export.php 4 years ago class-core-settings-export.php 7 years ago class-export-earnings.php 3 years ago class-export.php 3 years ago class-give-export-donations.php 5 years ago export-actions.php 3 years ago export-functions.php 2 years ago give-export-donations-exporter.php 1 year ago give-export-donations-functions.php 2 years ago pdf-reports.php 1 year ago
class-export.php
201 lines
1 <?php
2 /**
3 * Export Class
4 *
5 * This is the base class for all export methods. Each data export type (donors, payments, etc) extend this class
6 *
7 * @package Give
8 * @subpackage Admin/Reports
9 * @copyright Copyright (c) 2016, GiveWP
10 * @license https://opensource.org/licenses/gpl-license GNU Public License
11 * @since 1.0
12 */
13
14 // Exit if accessed directly.
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit;
17 }
18
19 /**
20 * Give_Export Class
21 *
22 * @since 1.0
23 */
24 class Give_Export {
25 /**
26 * Our export type. Used for export-type specific filters/actions
27 *
28 * @var string
29 * @since 1.0
30 */
31 public $export_type = 'default';
32
33 /**
34 * Can we export?
35 *
36 * @access public
37 * @since 1.0
38 * @return bool Whether we can export or not
39 */
40 public function can_export() {
41 return (bool) apply_filters( 'give_export_capability', current_user_can( 'export_give_reports' ));
42 }
43
44 /**
45 * Set the export headers
46 *
47 * @access public
48 * @since 1.0
49 * @return void
50 */
51 public function headers() {
52 give_ignore_user_abort();
53
54 /**
55 * Filter to Modify CSV file name
56 *
57 * @since 2.1.0
58 *
59 * @param $file_name string file name
60 * @param$export_type string export type name
61 *
62 * @return $file_name string file name
63 */
64 $file_name = apply_filters( 'give_export_filename', 'give-export-' . $this->export_type . '-' . date( 'm-d-Y' ), $this->export_type );
65
66 nocache_headers();
67 header( 'Content-Type: text/csv; charset=utf-8' );
68 header( 'Content-Disposition: attachment; filename=' . $file_name . '.csv' );
69 header( 'Expires: 0' );
70 }
71
72 /**
73 * Set the CSV columns
74 *
75 * @access public
76 * @since 1.0
77 * @return array $cols All the columns
78 */
79 public function csv_cols() {
80 $cols = array(
81 'id' => __( 'ID', 'give' ),
82 'date' => __( 'Date', 'give' ),
83 );
84
85 return $cols;
86 }
87
88 /**
89 * Retrieve the CSV columns
90 *
91 * @access public
92 * @since 1.0
93 * @return array $cols Array of the columns
94 */
95 public function get_csv_cols() {
96 $cols = $this->csv_cols();
97
98 return apply_filters( "give_export_csv_cols_{$this->export_type}", $cols );
99 }
100
101 /**
102 * Output the CSV columns
103 *
104 * @access public
105 * @since 1.0
106 * @uses Give_Export::get_csv_cols()
107 * @return void
108 */
109 public function csv_cols_out() {
110 $cols = $this->get_csv_cols();
111 $i = 1;
112 foreach ( $cols as $col_id => $column ) {
113 echo '"' . addslashes( $column ) . '"';
114 echo $i == count( $cols ) ? '' : ',';
115 $i ++;
116 }
117 echo "\r\n";
118 }
119
120 /**
121 * Get the data being exported
122 *
123 * @access public
124 * @since 1.0
125 * @return array $data Data for Export
126 */
127 public function get_data() {
128 // Just a sample data array
129 $data = array(
130 0 => array(
131 'id' => '',
132 'data' => date( 'F j, Y' ),
133 ),
134 1 => array(
135 'id' => '',
136 'data' => date( 'F j, Y' ),
137 ),
138 );
139
140 $data = apply_filters( 'give_export_get_data', $data );
141 $data = apply_filters( "give_export_get_data_{$this->export_type}", $data );
142
143 return $data;
144 }
145
146 /**
147 * Output the CSV rows
148 *
149 * @access public
150 * @since 1.0
151 * @return void
152 */
153 public function csv_rows_out() {
154 $data = $this->get_data();
155
156 $cols = $this->get_csv_cols();
157
158 // Output each row
159 foreach ( $data as $row ) {
160 $i = 1;
161 foreach ( $row as $col_id => $column ) {
162 // Make sure the column is valid
163 if ( array_key_exists( $col_id, $cols ) ) {
164 echo '"' . addslashes( $column ) . '"';
165 echo $i == count( $cols ) ? '' : ',';
166 $i ++;
167 }
168 }
169 echo "\r\n";
170 }
171 }
172
173 /**
174 * Perform the export
175 *
176 * @access public
177 * @since 1.0
178 * @uses Give_Export::can_export()
179 * @uses Give_Export::headers()
180 * @uses Give_Export::csv_cols_out()
181 * @uses Give_Export::csv_rows_out()
182 * @return void
183 */
184 public function export() {
185 if ( ! $this->can_export() ) {
186 wp_die( __( 'You do not have permission to export data.', 'give' ), __( 'Error', 'give' ), array( 'response' => 403 ) );
187 }
188
189 // Set headers
190 $this->headers();
191
192 // Output CSV columns (headers)
193 $this->csv_cols_out();
194
195 // Output CSV rows
196 $this->csv_rows_out();
197
198 give_die();
199 }
200 }
201