PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.0.5
GiveWP – Donation Plugin and Fundraising Platform v2.0.5
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-batch-export-forms.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-batch-export-forms.php
219 lines
1 <?php
2 /**
3 * Batch Forms Export Class
4 *
5 * This class handles form export.
6 *
7 * @package Give
8 * @subpackage Admin/Reports
9 * @copyright Copyright (c) 2017, WordImpress
10 * @license https://opensource.org/licenses/gpl-license GNU Public License
11 * @since 1.5
12 */
13
14 // Exit if accessed directly.
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit;
17 }
18
19 /**
20 * Give_Batch_Forms_Export Class
21 *
22 * @since 1.5
23 */
24 class Give_Batch_Forms_Export extends Give_Batch_Export {
25
26 /**
27 * Our export type. Used for export-type specific filters/actions./
28 *
29 * @var string
30 * @since 1.5
31 */
32 public $export_type = 'forms';
33
34 /**
35 * Set the CSV columns
36 *
37 * @access public
38 * @since 1.5
39 * @return array $cols All the columns
40 */
41 public function csv_cols() {
42
43 $cols = array(
44 'ID' => __( 'ID', 'give' ),
45 'post_name' => __( 'Slug', 'give' ),
46 'post_title' => __( 'Name', 'give' ),
47 'post_date' => __( 'Date Created', 'give' ),
48 'post_author' => __( 'Author', 'give' ),
49 'post_content' => __( 'Description', 'give' ),
50 'post_excerpt' => __( 'Excerpt', 'give' ),
51 'post_status' => __( 'Status', 'give' ),
52 'categories' => __( 'Categories', 'give' ),
53 'tags' => __( 'Tags', 'give' ),
54 'give_price' => __( 'Price', 'give' ),
55 '_thumbnail_id' => __( 'Featured Image', 'give' ),
56 '_give_form_sales' => __( 'Donations', 'give' ),
57 '_give_download_earnings' => __( 'Income', 'give' ),
58 );
59
60 return $cols;
61 }
62
63 /**
64 * Get the Export Data
65 *
66 * @access public
67 * @since 1.5
68 * @return array $data The data for the CSV file
69 */
70 public function get_data() {
71
72 $data = array();
73
74 $meta = array(
75 'give_price',
76 '_thumbnail_id',
77 '_give_form_sales',
78 '_give_form_earnings'
79 );
80
81 $args = array(
82 'post_type' => 'give_forms',
83 'posts_per_page' => 30,
84 'paged' => $this->step
85 );
86
87 $forms = new WP_Query( $args );
88
89 if ( $forms->posts ) {
90 foreach ( $forms->posts as $form ) {
91
92 $row = [];
93
94 foreach ( $this->csv_cols() as $key => $value ) {
95
96 // Setup default value/
97 $row[ $key ] = '';
98
99 if ( in_array( $key, $meta ) ) {
100
101 switch ( $key ) {
102
103 case '_thumbnail_id' :
104
105 $image_id = get_post_thumbnail_id( $form->ID );
106 $row[ $key ] = wp_get_attachment_url( $image_id );
107
108 break;
109
110 case 'give_price' :
111
112 if ( give_has_variable_prices( $form->ID ) ) {
113
114 $prices = [];
115 foreach ( give_get_variable_prices( $form->ID ) as $price ) {
116 $prices[] = $price['name'] . ': ' . $price['amount'];
117 }
118
119 $row[ $key ] = implode( ' | ', $prices );
120
121 } else {
122
123 $row[ $key ] = give_get_form_price( $form->ID );
124
125 }
126
127 break;
128
129 default :
130
131 $row[ $key ] = give_get_meta( $form->ID, $key, TRUE );
132
133 break;
134
135 }
136
137 } elseif ( isset( $form->$key ) ) {
138
139 switch ( $key ) {
140
141 case 'post_author' :
142
143 $row[ $key ] = get_the_author_meta( 'user_login', $form->post_author );
144
145 break;
146
147 default :
148
149 $row[ $key ] = $form->$key;
150
151 break;
152 }
153
154 } elseif ( 'tags' == $key ) {
155
156 $terms = get_the_terms( $form->ID, 'form_tag' );
157 if ( $terms ) {
158 $terms = wp_list_pluck( $terms, 'name' );
159 $row[ $key ] = implode( ' | ', $terms );
160 }
161
162
163 } elseif ( 'categories' == $key ) {
164
165 $terms = get_the_terms( $form->ID, 'form_category' );
166 if ( $terms ) {
167 $terms = wp_list_pluck( $terms, 'name' );
168 $row[ $key ] = implode( ' | ', $terms );
169 }
170
171 }
172
173 }
174
175 $data[] = $row;
176
177 }
178
179 $data = apply_filters( 'give_export_get_data', $data );
180 $data = apply_filters( "give_export_get_data_{$this->export_type}", $data );
181
182 return $data;
183
184 }
185
186 return false;
187
188 }
189
190 /**
191 * Return the calculated completion percentage.
192 *
193 * @since 1.5
194 * @return int
195 */
196 public function get_percentage_complete() {
197
198 $args = array(
199 'post_type' => 'give_forms',
200 'posts_per_page' => - 1,
201 'post_status' => 'any',
202 'fields' => 'ids',
203 );
204
205 $forms = new WP_Query( $args );
206 $total = (int) $forms->post_count;
207 $percentage = 100;
208
209 if ( $total > 0 ) {
210 $percentage = ( ( 30 * $this->step ) / $total ) * 100;
211 }
212
213 if ( $percentage > 100 ) {
214 $percentage = 100;
215 }
216
217 return $percentage;
218 }
219 }