PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.17.2
GiveWP – Donation Plugin and Fundraising Platform v3.17.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 / export-functions.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 5 years ago
export-functions.php
170 lines
1 <?php
2 /**
3 * Exports Functions
4 *
5 * These functions are used for exporting data from Give
6 *
7 * @package Give
8 * @subpackage Admin/Export
9 * @copyright Copyright (c) 2016, GiveWP
10 * @license https://opensource.org/licenses/gpl-license GNU Public License
11 */
12
13 // Exit if accessed directly.
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit;
16 }
17
18
19 /**
20 * Process batch exports via ajax
21 *
22 * @since 2.21.0 Sanitize file name. Allow plain file name only.
23 * @since 1.5
24 * @return void
25 */
26 function give_do_ajax_export() {
27
28 require_once GIVE_PLUGIN_DIR . 'includes/admin/tools/export/class-batch-export.php';
29
30 parse_str( $_POST['form'], $form );
31
32 $_REQUEST = $form = (array) $form;
33
34 if (
35 ! wp_verify_nonce( $_REQUEST['give_ajax_export'], 'give_ajax_export' ) ||
36 ! current_user_can( 'manage_give_settings' )
37 ) {
38 die( '-2' );
39 }
40
41 /**
42 * Fires before batch export.
43 *
44 * @since 1.5
45 *
46 * @param string $class Export class.
47 */
48 do_action( 'give_batch_export_class_include', $form['give-export-class'] );
49
50 if( ! is_subclass_of( $form['give-export-class'], \Give_Batch_Export::class ) ) {
51 die(-2);
52 }
53
54 $step = absint( $_POST['step'] );
55 $class = sanitize_text_field( $form['give-export-class'] );
56 $filename = isset( $_POST['file_name'] ) ?
57 basename(sanitize_file_name( $_POST['file_name'] ), '.csv') :
58 null;
59
60 /* @var Give_Batch_Export $export */
61 $export = new $class( $step, $filename );
62
63 if ( ! $export->can_export() ) {
64 die( '-1' );
65 }
66
67 if ( ! $export->is_writable ) {
68 $json_args = [
69 'error' => true,
70 'message' => esc_html__( 'Export location or file not writable.', 'give' ),
71 ];
72 echo json_encode( $json_args );
73 exit;
74 }
75
76 $export->set_properties( give_clean( $_REQUEST ) );
77
78 $export->pre_fetch();
79
80 $ret = $export->process_step();
81
82 $percentage = $export->get_percentage_complete();
83
84 if ( $ret ) {
85
86 $step += 1;
87 $json_data = [
88 'step' => $step,
89 'percentage' => $percentage,
90 'file_name' => $export->filename,
91 ];
92
93 } elseif ( true === $export->is_empty ) {
94
95 $json_data = [
96 'error' => true,
97 'message' => esc_html__( 'No data found for export parameters.', 'give' ),
98 ];
99
100 } elseif ( true === $export->done && true === $export->is_void ) {
101
102 $message = ! empty( $export->message ) ?
103 $export->message :
104 esc_html__( 'Batch Processing Complete', 'give' );
105
106 $json_data = [
107 'success' => true,
108 'message' => $message,
109 ];
110
111 } else {
112
113 $args = array_merge(
114 $_REQUEST,
115 [
116 'step' => $step,
117 'class' => $class,
118 'nonce' => wp_create_nonce( 'give-batch-export' ),
119 'give_action' => 'form_batch_export',
120 'file_name' => $export->filename,
121 ]
122 );
123
124 $json_data = [
125 'step' => 'done',
126 'url' => esc_url_raw(add_query_arg( $args, admin_url() )),
127 ];
128
129 }
130
131 $export->unset_properties( give_clean( $_REQUEST ), $export );
132 echo json_encode( $json_data );
133 exit;
134 }
135
136 add_action( 'wp_ajax_give_do_ajax_export', 'give_do_ajax_export' );
137
138
139 /**
140 * This function is used to define default columns for export.
141 *
142 * Note: This function is for internal purposes only.
143 * Use filter "give_export_donors_get_default_columns" instead.
144 *
145 * @since 3.12.1 add donor_phone_number column.
146 * @since 2.2.6
147 *
148 * @return array
149 */
150 function give_export_donors_get_default_columns() {
151
152 $default_columns = [
153 'full_name' => __( 'Name', 'give' ),
154 'email' => __( 'Email', 'give' ),
155 'address' => __( 'Address', 'give' ),
156 'userid' => __( 'User ID', 'give' ),
157 'donor_created_date' => __( 'Donor Created Date', 'give' ),
158 'donor_phone_number' => __( 'Donor Phone Number', 'give' ),
159 'donations' => __( 'Number of donations', 'give' ),
160 'donation_sum' => __( 'Total Donated', 'give' ),
161 ];
162
163 /**
164 * This filter will be used to define default columns for export.
165 *
166 * @since 2.2.6
167 */
168 return apply_filters( 'give_export_donors_get_default_columns', $default_columns );
169 }
170