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