PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.2.2
GiveWP – Donation Plugin and Fundraising Platform v2.2.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 7 years ago class-batch-export-forms.php 8 years ago class-batch-export.php 8 years ago class-core-settings-export.php 8 years ago class-export-earnings.php 8 years ago class-export.php 8 years ago class-give-export-donations.php 8 years ago export-actions.php 8 years ago export-functions.php 8 years ago give-export-donations-exporter.php 7 years ago give-export-donations-functions.php 7 years ago pdf-reports.php 7 years ago
class-export.php
200 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, WordImpress
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 * @var string
28 * @since 1.0
29 */
30 public $export_type = 'default';
31
32 /**
33 * Can we export?
34 *
35 * @access public
36 * @since 1.0
37 * @return bool Whether we can export or not
38 */
39 public function can_export() {
40 return (bool) apply_filters( 'give_export_capability', current_user_can( 'export_give_reports' ) );
41 }
42
43 /**
44 * Set the export headers
45 *
46 * @access public
47 * @since 1.0
48 * @return void
49 */
50 public function headers() {
51 give_ignore_user_abort();
52
53 /**
54 * Filter to Modify CSV file name
55 *
56 * @since 2.1.0
57 *
58 * @param $file_name string file name
59 * @param$export_type string export type name
60 *
61 * @return $file_name string file name
62 */
63 $file_name = apply_filters( 'give_export_filename', 'give-export-' . $this->export_type . '-' . date( 'm-d-Y' ), $this->export_type );
64
65 nocache_headers();
66 header( 'Content-Type: text/csv; charset=utf-8' );
67 header( 'Content-Disposition: attachment; filename=' . $file_name . '.csv' );
68 header( "Expires: 0" );
69 }
70
71 /**
72 * Set the CSV columns
73 *
74 * @access public
75 * @since 1.0
76 * @return array $cols All the columns
77 */
78 public function csv_cols() {
79 $cols = array(
80 'id' => __( 'ID', 'give' ),
81 'date' => __( 'Date', 'give' )
82 );
83
84 return $cols;
85 }
86
87 /**
88 * Retrieve the CSV columns
89 *
90 * @access public
91 * @since 1.0
92 * @return array $cols Array of the columns
93 */
94 public function get_csv_cols() {
95 $cols = $this->csv_cols();
96
97 return apply_filters( "give_export_csv_cols_{$this->export_type}", $cols );
98 }
99
100 /**
101 * Output the CSV columns
102 *
103 * @access public
104 * @since 1.0
105 * @uses Give_Export::get_csv_cols()
106 * @return void
107 */
108 public function csv_cols_out() {
109 $cols = $this->get_csv_cols();
110 $i = 1;
111 foreach ( $cols as $col_id => $column ) {
112 echo '"' . addslashes( $column ) . '"';
113 echo $i == count( $cols ) ? '' : ',';
114 $i ++;
115 }
116 echo "\r\n";
117 }
118
119 /**
120 * Get the data being exported
121 *
122 * @access public
123 * @since 1.0
124 * @return array $data Data for Export
125 */
126 public function get_data() {
127 // Just a sample data array
128 $data = array(
129 0 => array(
130 'id' => '',
131 'data' => date( 'F j, Y' )
132 ),
133 1 => array(
134 'id' => '',
135 'data' => date( 'F j, Y' )
136 )
137 );
138
139 $data = apply_filters( 'give_export_get_data', $data );
140 $data = apply_filters( "give_export_get_data_{$this->export_type}", $data );
141
142 return $data;
143 }
144
145 /**
146 * Output the CSV rows
147 *
148 * @access public
149 * @since 1.0
150 * @return void
151 */
152 public function csv_rows_out() {
153 $data = $this->get_data();
154
155 $cols = $this->get_csv_cols();
156
157 // Output each row
158 foreach ( $data as $row ) {
159 $i = 1;
160 foreach ( $row as $col_id => $column ) {
161 // Make sure the column is valid
162 if ( array_key_exists( $col_id, $cols ) ) {
163 echo '"' . addslashes( $column ) . '"';
164 echo $i == count( $cols ) ? '' : ',';
165 $i ++;
166 }
167 }
168 echo "\r\n";
169 }
170 }
171
172 /**
173 * Perform the export
174 *
175 * @access public
176 * @since 1.0
177 * @uses Give_Export::can_export()
178 * @uses Give_Export::headers()
179 * @uses Give_Export::csv_cols_out()
180 * @uses Give_Export::csv_rows_out()
181 * @return void
182 */
183 public function export() {
184 if ( ! $this->can_export() ) {
185 wp_die( __( 'You do not have permission to export data.', 'give' ), __( 'Error', 'give' ), array( 'response' => 403 ) );
186 }
187
188 // Set headers
189 $this->headers();
190
191 // Output CSV columns (headers)
192 $this->csv_cols_out();
193
194 // Output CSV rows
195 $this->csv_rows_out();
196
197 give_die();
198 }
199 }
200