PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.2.1
GiveWP – Donation Plugin and Fundraising Platform v2.2.1
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 7 years ago backward-compatibility.php 8 years ago class-give-donor-stats.php 7 years ago class-give-donor-wall.php 7 years ago class-give-donors-query.php 7 years ago frontend-donor-functions.php 7 years ago
class-give-donor-stats.php
116 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, WordImpress
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 static private $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 *
52 * @since 2.2.0
53 * @access public
54 *
55 * @param array $args
56 *
57 * @return string
58 *
59 */
60 public static function donated( $args = array() ) {
61 global $wpdb;
62 $donation_id_col = Give()->payment_meta->get_meta_type() . '_id';
63
64 $donated_amount = '';
65
66 if ( empty( $args['donor'] ) ) {
67 return $donated_amount;
68 }
69
70 $args['output'] = 'posts';
71 $args['status'] = 'publish';
72 $args['fields'] = 'ids';
73 $args['number'] = - 1;
74
75 $donation_query = new Give_Payments_Query( $args );
76 $donations = $donation_query->get_payments();
77 $donation_id_str = implode( '\',\'', $donations );
78
79 $query = "SELECT {$donation_id_col} as id, meta_value as total
80 FROM {$wpdb->donationmeta}
81 WHERE meta_key='_give_payment_total'
82 AND {$donation_id_col} IN ('{$donation_id_str}')";
83
84 $donated_amounts = $wpdb->get_results( $query, ARRAY_A );
85
86 if ( ! empty( $donated_amounts ) ) {
87 foreach ( $donated_amounts as $donation ) {
88 // Do not include anonymous donation in calculation.
89 if( give_is_anonymous_donation( $donation['id']) ){
90 continue;
91 }
92
93 $currency_code = give_get_payment_currency_code( $donation['id'] );
94
95 /**
96 * Filter the donation amount
97 * Note: this filter documented in payments/functions.php:give_donation_amount()
98 *
99 * @since 2.1
100 */
101 $formatted_amount = apply_filters(
102 'give_donation_amount',
103 give_format_amount( $donation['total'], array( 'currency' => $currency_code ) ),
104 $donation['total'],
105 $donation['id'],
106 array( 'type' => 'stats', 'currency' => false, 'amount' => false )
107 );
108
109 $donated_amount += (float) give_maybe_sanitize_amount( $formatted_amount, array( 'currency' => $currency_code ) );
110 }
111 }
112
113 return $donated_amount;
114 }
115 }
116