PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.17.0
GiveWP – Donation Plugin and Fundraising Platform v4.17.0
4.17.0 4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 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 All 256 releases
← All changes | includes/payments/class-payment-stats.php +40 -35 2.3.04.17.0 View file →
@@ -3,9 +3,9 @@
3 3 * Earnings / Sales Stats
4 4 *
5 5 * @package Give
6 6 * @subpackage Classes/Stats
7 - * @copyright Copyright (c) 2016, WordImpress
7 + * @copyright Copyright (c) 2016, GiveWP
8 8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 9 * @since 1.0
10 10 */
11 11
@@ -51,16 +51,16 @@
51 51 if ( is_wp_error( $this->end_date ) ) {
52 52 return $this->end_date;
53 53 }
54 54
55 - $args = array(
55 + $args = [
56 56 'status' => 'publish',
57 57 'start_date' => $this->start_date,
58 58 'end_date' => $this->end_date,
59 59 'fields' => 'ids',
60 60 'number' => - 1,
61 - 'output' => ''
62 - );
61 + 'output' => '',
62 + ];
63 63
64 64 if ( ! empty( $form_id ) ) {
65 65 $args['give_forms'] = $form_id;
66 66 }
@@ -99,33 +99,31 @@
99 99 if ( is_wp_error( $this->end_date ) ) {
100 100 return $this->end_date;
101 101 }
102 102
103 - $args = array(
103 + $args = [
104 104 'status' => 'publish',
105 - 'give_forms' => $form_id,
106 105 'start_date' => $this->start_date,
107 106 'end_date' => $this->end_date,
108 107 'fields' => 'ids',
109 108 'number' => - 1,
110 109 'output' => '',
111 - );
110 + ];
112 111
113 -
114 112 // Filter by Gateway ID meta_key
115 113 if ( $gateway_id ) {
116 - $args['meta_query'][] = array(
114 + $args['meta_query'][] = [
117 115 'key' => '_give_payment_gateway',
118 116 'value' => $gateway_id,
119 - );
117 + ];
120 118 }
121 119
122 120 // Filter by Gateway ID meta_key
123 121 if ( $form_id ) {
124 - $args['meta_query'][] = array(
122 + $args['meta_query'][] = [
125 123 'key' => '_give_payment_form_id',
126 124 'value' => $form_id,
127 - );
125 + ];
128 126 }
129 127
130 128 if ( ! empty( $args['meta_query'] ) && 1 < count( $args['meta_query'] ) ) {
131 129 $args['meta_query']['relation'] = 'AND';
@@ -145,16 +143,16 @@
145 143 $earnings = 0;
146 144
147 145 if ( ! empty( $payments ) ) {
148 146 $donation_id_col = Give()->payment_meta->get_meta_type() . '_id';
149 - $query = "SELECT {$donation_id_col} as id, meta_value as total
147 + $query = "SELECT {$donation_id_col} as id, meta_value as total
150 148 FROM {$wpdb->donationmeta}
151 149 WHERE meta_key='_give_payment_total'
152 - AND {$donation_id_col} IN ('". implode( '\',\'', $payments ) ."')";
150 + AND {$donation_id_col} IN ('" . implode( '\',\'', $payments ) . "')";
153 151
154 - $payments = $wpdb->get_results($query, ARRAY_A);
152 + $payments = $wpdb->get_results( $query, ARRAY_A );
155 153
156 - if( ! empty( $payments ) ) {
154 + if ( ! empty( $payments ) ) {
157 155 foreach ( $payments as $payment ) {
158 156 $currency_code = give_get_payment_currency_code( $payment['id'] );
159 157
160 158 /**
@@ -164,18 +162,21 @@
164 162 * @since 2.1
165 163 */
166 164 $formatted_amount = apply_filters(
167 165 'give_donation_amount',
168 - give_format_amount( $payment['total'], array( 'donation_id' => $payment['id'] ) ),
166 + give_format_amount( $payment['total'], [ 'donation_id' => $payment['id'] ] ),
169 167 $payment['total'],
170 168 $payment['id'],
171 - array( 'type' => 'stats', 'currency'=> false, 'amount' => false )
169 + [
170 + 'type' => 'stats',
171 + 'currency' => false,
172 + 'amount' => false,
173 + ]
172 174 );
173 175
174 - $earnings += (float) give_maybe_sanitize_amount( $formatted_amount, array( 'currency' => $currency_code ) );
176 + $earnings += (float) give_maybe_sanitize_amount( $formatted_amount, [ 'currency' => $currency_code ] );
175 177 }
176 178 }
177 -
178 179 }
179 180
180 181 // Cache the results for one hour.
181 182 Give_Cache::set( $key, give_sanitize_amount_for_db( $earnings ), 60 * 60 );
@@ -193,9 +194,9 @@
193 194 * @param string|bool $gateway_id Payment gateway id.
194 195 */
195 196 $earnings = apply_filters( 'give_get_earnings', $earnings, $form_id, $start_date, $end_date, $gateway_id );
196 197
197 - //return earnings
198 + // return earnings
198 199 return round( $earnings, give_get_price_decimals( $form_id ) );
199 200
200 201 }
201 202
@@ -225,32 +226,30 @@
225 226 if ( is_wp_error( $this->end_date ) ) {
226 227 return $this->end_date;
227 228 }
228 229
229 - $args = array(
230 + $args = [
230 231 'status' => 'publish',
231 - 'give_forms' => $form_id,
232 232 'start_date' => $this->start_date,
233 233 'end_date' => $this->end_date,
234 234 'fields' => 'ids',
235 235 'number' => - 1,
236 - );
236 + ];
237 237
238 -
239 238 // Filter by Gateway ID meta_key
240 239 if ( $gateway_id ) {
241 - $args['meta_query'][] = array(
240 + $args['meta_query'][] = [
242 241 'key' => '_give_payment_gateway',
243 242 'value' => $gateway_id,
244 - );
243 + ];
245 244 }
246 245
247 246 // Filter by Gateway ID meta_key
248 247 if ( $form_id ) {
249 - $args['meta_query'][] = array(
248 + $args['meta_query'][] = [
250 249 'key' => '_give_payment_form_id',
251 250 'value' => $form_id,
252 - );
251 + ];
253 252 }
254 253
255 254 if ( ! empty( $args['meta_query'] ) && 1 < count( $args['meta_query'] ) ) {
256 255 $args['meta_query']['relation'] = 'AND';
@@ -258,9 +257,9 @@
258 257
259 258 $args = apply_filters( 'give_stats_earnings_args', $args );
260 259 $key = Give_Cache::get_key( 'give_stats', $args );
261 260
262 - //return earnings
261 + // return earnings
263 262 return $key;
264 263
265 264 }
266 265
@@ -267,8 +266,10 @@
267 266 /**
268 267 * Get the best selling forms
269 268 *
270 269 * @since 1.0
270 + * @since 2.9.6 Added an explicit ORDER BY on which to apply a DESC order.
271 + * @since 2.18.0 Updated sales calculation so that the results are ordered as integers.
271 272 * @access public
272 273 * @global wpdb $wpdb
273 274 *
274 275 * @param $number int The number of results to retrieve with the default set to 10.
@@ -277,16 +278,20 @@
277 278 */
278 279 public function get_best_selling( $number = 10 ) {
279 280 global $wpdb;
280 281
281 - $meta_table = __give_v20_bc_table_details( 'form' );
282 + $meta_table = give_v20_bc_table_details( 'form' );
282 283
283 - $give_forms = $wpdb->get_results( $wpdb->prepare(
284 - "SELECT {$meta_table['column']['id']} as form_id, max(meta_value) as sales
284 + $give_forms = $wpdb->get_results(
285 + $wpdb->prepare(
286 + "SELECT {$meta_table['column']['id']} as form_id, max(ABS(meta_value)) as sales
285 287 FROM {$meta_table['name']} WHERE meta_key='_give_form_sales' AND meta_value > 0
286 288 GROUP BY meta_value+0
287 - DESC LIMIT %d;", $number
288 - ) );
289 + ORDER BY sales DESC
290 + LIMIT %d;",
291 + $number
292 + )
293 + );
289 294
290 295 return $give_forms;
291 296 }
292 297