PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.10.4
GiveWP – Donation Plugin and Fundraising Platform v2.10.4
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 / donors / class-give-donor-stats.php
give / includes / donors Last commit date
actions.php 6 years ago backward-compatibility.php 7 years ago class-give-donor-stats.php 6 years ago class-give-donor-wall.php 5 years ago class-give-donors-query.php 5 years ago frontend-donor-functions.php 6 years ago
class-give-donor-stats.php
118 lines
1 <?php
2 /**
3 * Donor stats
4 *
5 * Note: Currently wr are working on this API. This is internal use only
6 *
7 * @package Give
8 * @subpackage Classes/Donor/Stats
9 * @copyright Copyright (c) 2018, GiveWP
10 * @license https://opensource.org/licenses/gpl-license GNU Public License
11 * @since 2.2.0
12 */
13 class Give_Donor_Stats {
14 /**
15 * Instance.
16 *
17 * @since 2.2.0
18 * @access private
19 * @var
20 */
21 private static $instance;
22
23 /**
24 * Singleton pattern.
25 *
26 * @since 2.2.0
27 * @access private
28 */
29 private function __construct() {
30 }
31
32
33 /**
34 * Get instance.
35 *
36 * @since 2.2.0
37 * @access public
38 * @return Give_Donor_Stats
39 */
40 public static function get_instance() {
41 if ( null === static::$instance ) {
42 self::$instance = new static();
43 }
44
45 return self::$instance;
46 }
47
48 /**
49 * Get total donated amount
50 *
51 * @since 2.2.0
52 * @access public
53 *
54 * @param array $args
55 *
56 * @return string
57 */
58 public static function donated( $args = array() ) {
59 global $wpdb;
60 $donation_id_col = Give()->payment_meta->get_meta_type() . '_id';
61
62 $donated_amount = 0;
63
64 if ( empty( $args['donor'] ) ) {
65 return $donated_amount;
66 }
67
68 $args['output'] = 'posts';
69 $args['status'] = 'publish';
70 $args['fields'] = 'ids';
71 $args['number'] = - 1;
72
73 $donation_query = new Give_Payments_Query( $args );
74 $donations = $donation_query->get_payments();
75 $donation_id_str = implode( '\',\'', $donations );
76
77 $query = "SELECT {$donation_id_col} as id, meta_value as total
78 FROM {$wpdb->donationmeta}
79 WHERE meta_key='_give_payment_total'
80 AND {$donation_id_col} IN ('{$donation_id_str}')";
81
82 $donated_amounts = $wpdb->get_results( $query, ARRAY_A );
83
84 if ( ! empty( $donated_amounts ) ) {
85 foreach ( $donated_amounts as $donation ) {
86 // Do not include anonymous donation in calculation.
87 if ( give_is_anonymous_donation( $donation['id'] ) ) {
88 continue;
89 }
90
91 $currency_code = give_get_payment_currency_code( $donation['id'] );
92
93 /**
94 * Filter the donation amount
95 * Note: this filter documented in payments/functions.php:give_donation_amount()
96 *
97 * @since 2.1
98 */
99 $formatted_amount = apply_filters(
100 'give_donation_amount',
101 give_format_amount( $donation['total'], array( 'currency' => $currency_code ) ),
102 $donation['total'],
103 $donation['id'],
104 array(
105 'type' => 'stats',
106 'currency' => false,
107 'amount' => false,
108 )
109 );
110
111 $donated_amount += (float) give_maybe_sanitize_amount( $formatted_amount, array( 'currency' => $currency_code ) );
112 }
113 }
114
115 return $donated_amount;
116 }
117 }
118