PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.29.2
GiveWP – Donation Plugin and Fundraising Platform v2.29.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 4 years ago give-export-donations-exporter.php 3 years ago give-export-donations-functions.php 5 years ago pdf-reports.php 5 years ago
export-functions.php
168 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 2.2.6
146 *
147 * @return array
148 */
149 function give_export_donors_get_default_columns() {
150
151 $default_columns = [
152 'full_name' => __( 'Name', 'give' ),
153 'email' => __( 'Email', 'give' ),
154 'address' => __( 'Address', 'give' ),
155 'userid' => __( 'User ID', 'give' ),
156 'donor_created_date' => __( 'Donor Created Date', 'give' ),
157 'donations' => __( 'Number of donations', 'give' ),
158 'donation_sum' => __( 'Total Donated', 'give' ),
159 ];
160
161 /**
162 * This filter will be used to define default columns for export.
163 *
164 * @since 2.2.6
165 */
166 return apply_filters( 'give_export_donors_get_default_columns', $default_columns );
167 }
168