PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.0.0
GiveWP – Donation Plugin and Fundraising Platform v2.0.0
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 8 years ago class-batch-export-forms.php 9 years ago class-batch-export-payments.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 export-actions.php 8 years ago export-functions.php 8 years ago pdf-reports.php 8 years ago
class-export.php
188 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 nocache_headers();
54 header( 'Content-Type: text/csv; charset=utf-8' );
55 header( 'Content-Disposition: attachment; filename=give-export-' . $this->export_type . '-' . date( 'm-d-Y' ) . '.csv' );
56 header( "Expires: 0" );
57 }
58
59 /**
60 * Set the CSV columns
61 *
62 * @access public
63 * @since 1.0
64 * @return array $cols All the columns
65 */
66 public function csv_cols() {
67 $cols = array(
68 'id' => __( 'ID', 'give' ),
69 'date' => __( 'Date', 'give' )
70 );
71
72 return $cols;
73 }
74
75 /**
76 * Retrieve the CSV columns
77 *
78 * @access public
79 * @since 1.0
80 * @return array $cols Array of the columns
81 */
82 public function get_csv_cols() {
83 $cols = $this->csv_cols();
84
85 return apply_filters( "give_export_csv_cols_{$this->export_type}", $cols );
86 }
87
88 /**
89 * Output the CSV columns
90 *
91 * @access public
92 * @since 1.0
93 * @uses Give_Export::get_csv_cols()
94 * @return void
95 */
96 public function csv_cols_out() {
97 $cols = $this->get_csv_cols();
98 $i = 1;
99 foreach ( $cols as $col_id => $column ) {
100 echo '"' . addslashes( $column ) . '"';
101 echo $i == count( $cols ) ? '' : ',';
102 $i ++;
103 }
104 echo "\r\n";
105 }
106
107 /**
108 * Get the data being exported
109 *
110 * @access public
111 * @since 1.0
112 * @return array $data Data for Export
113 */
114 public function get_data() {
115 // Just a sample data array
116 $data = array(
117 0 => array(
118 'id' => '',
119 'data' => date( 'F j, Y' )
120 ),
121 1 => array(
122 'id' => '',
123 'data' => date( 'F j, Y' )
124 )
125 );
126
127 $data = apply_filters( 'give_export_get_data', $data );
128 $data = apply_filters( "give_export_get_data_{$this->export_type}", $data );
129
130 return $data;
131 }
132
133 /**
134 * Output the CSV rows
135 *
136 * @access public
137 * @since 1.0
138 * @return void
139 */
140 public function csv_rows_out() {
141 $data = $this->get_data();
142
143 $cols = $this->get_csv_cols();
144
145 // Output each row
146 foreach ( $data as $row ) {
147 $i = 1;
148 foreach ( $row as $col_id => $column ) {
149 // Make sure the column is valid
150 if ( array_key_exists( $col_id, $cols ) ) {
151 echo '"' . addslashes( $column ) . '"';
152 echo $i == count( $cols ) ? '' : ',';
153 $i ++;
154 }
155 }
156 echo "\r\n";
157 }
158 }
159
160 /**
161 * Perform the export
162 *
163 * @access public
164 * @since 1.0
165 * @uses Give_Export::can_export()
166 * @uses Give_Export::headers()
167 * @uses Give_Export::csv_cols_out()
168 * @uses Give_Export::csv_rows_out()
169 * @return void
170 */
171 public function export() {
172 if ( ! $this->can_export() ) {
173 wp_die( __( 'You do not have permission to export data.', 'give' ), __( 'Error', 'give' ), array( 'response' => 403 ) );
174 }
175
176 // Set headers
177 $this->headers();
178
179 // Output CSV columns (headers)
180 $this->csv_cols_out();
181
182 // Output CSV rows
183 $this->csv_rows_out();
184
185 give_die();
186 }
187 }
188