PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.4.0
GiveWP – Donation Plugin and Fundraising Platform v3.4.0
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 / src / Tracking / TrackingData / DonationData.php
give / src / Tracking / TrackingData Last commit date
ActiveDonationFormsData.php 4 years ago DonationData.php 4 years ago DonationFormsData.php 2 years ago DonationMetricsData.php 4 years ago EditedDonationFormsData.php 4 years ago GivePluginSettingsData.php 4 years ago PluginsData.php 4 years ago ServerData.php 4 years ago ThemeData.php 4 years ago WebsiteData.php 4 years ago WebsiteInfoData.php 4 years ago
DonationData.php
118 lines
1 <?php
2
3 namespace Give\Tracking\TrackingData;
4
5 use Give\Framework\Database\DB;
6 use Give\Tracking\Contracts\TrackData;
7 use Give\Tracking\Helpers\DonationStatuses;
8
9 /**
10 * Class DonationData
11 *
12 * Represents donation data.
13 *
14 * @package Give\Tracking\TrackingData
15 *
16 * @since 2.10.0
17 */
18 class DonationData implements TrackData
19 {
20 private $donationStatuses;
21
22 /**
23 * DonationData constructor.
24 */
25 public function __construct()
26 {
27 $this->donationStatuses = DonationStatuses::getCompletedDonationsStatues(true);
28 }
29
30 /**
31 * @inheritdoc
32 * @return array|void
33 */
34 public function get()
35 {
36 return [
37 'first_donation_date' => $this->getFirstDonationDate(),
38 'last_donation_date' => $this->getLastDonationDate(),
39 'revenue' => $this->getRevenueTillNow(),
40 ];
41 }
42
43 /**
44 * Get first donation date.
45 *
46 * @since 2.10.0
47 * @return string
48 */
49 private function getFirstDonationDate()
50 {
51 global $wpdb;
52
53 $date = DB::get_var(
54 "
55 SELECT post_date_gmt
56 FROM {$wpdb->posts} as p
57 INNER JOIN {$wpdb->donationmeta} as dm ON p.id=dm.donation_id
58 WHERE post_status IN ({$this->donationStatuses})
59 AND dm.meta_key='_give_payment_mode'
60 AND dm.meta_value='live'
61 ORDER BY post_date_gmt ASC
62 LIMIT 1
63 "
64 );
65
66 return $date ? strtotime($date) : '';
67 }
68
69 /**
70 * Get last donation date.
71 *
72 * @since 2.10.0
73 * @return string
74 */
75 private function getLastDonationDate()
76 {
77 global $wpdb;
78
79 $date = DB::get_var(
80 "
81 SELECT post_date_gmt
82 FROM {$wpdb->posts} as p
83 INNER JOIN {$wpdb->donationmeta} as dm ON p.id=dm.donation_id
84 WHERE post_status IN ({$this->donationStatuses})
85 AND dm.meta_key='_give_payment_mode'
86 AND dm.meta_value='live'
87 ORDER BY post_date_gmt DESC
88 LIMIT 1
89 "
90 );
91
92 return $date ? strtotime($date) : '';
93 }
94
95 /**
96 * Returns revenue till current date.
97 *
98 * @since 2.10.0
99 * @return int
100 */
101 public function getRevenueTillNow()
102 {
103 global $wpdb;
104
105 $result = (int)DB::get_var(
106 "
107 SELECT SUM(r.amount)
108 FROM {$wpdb->give_revenue} as r
109 INNER JOIN {$wpdb->donationmeta} as dm ON r.donation_id=dm.donation_id
110 WHERE dm.meta_key='_give_payment_mode'
111 AND dm.meta_value='live'
112 "
113 );
114
115 return $result ?: 0;
116 }
117 }
118