PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.14.3
GiveWP – Donation Plugin and Fundraising Platform v4.14.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 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 / MultiFormGoals / ProgressBar / Query.php
give / src / MultiFormGoals / ProgressBar Last commit date
Block.php 2 years ago Model.php 1 year ago Query.php 5 months ago
Query.php
84 lines
1 <?php
2
3 namespace Give\MultiFormGoals\ProgressBar;
4
5 use wpdb;
6
7 /**
8 * Get the Total, Count, and Average of the payment totals for published donations of a given set of forms.
9 */
10 class Query
11 {
12 /** @var array */
13 protected $formIDs;
14
15 /**
16 * @var wpdb
17 */
18 protected $wpdb;
19
20 /**
21 * @var array $formIDs
22 */
23 public function __construct($formIDs)
24 {
25 global $wpdb;
26 $this->wpdb = $wpdb;
27 $this->formIDs = $formIDs;
28 }
29
30 /**
31 * @since 4.14.0 Replace {$wpdb->paymentmeta} with {$wpdb->donationmeta}
32 * @since 3.14.0 Consider the donation mode (test or live) instead of querying both modes together
33 * @return string
34 */
35 public function getSQL()
36 {
37 global $wpdb;
38 $mode = give_is_test_mode() ? 'test' : 'live';
39 $sql = "
40 SELECT
41 sum( revenue.amount ) as total,
42 count( payment.ID ) as count
43 FROM {$wpdb->posts} as payment
44 JOIN {$wpdb->give_revenue} as revenue
45 ON revenue.donation_id = payment.ID
46 JOIN {$wpdb->donationmeta} paymentMode
47 ON payment.ID = paymentMode.donation_id AND paymentMode.meta_key = '_give_payment_mode'
48 WHERE
49 payment.post_type = 'give_payment'
50 AND
51 payment.post_status IN ( 'publish', 'give_subscription' )
52 AND
53 paymentMode.meta_value = '{$mode}'
54 ";
55
56 if (!empty($this->formIDs)) {
57 $sql .= '
58 AND
59 revenue.form_id IN ( ' . $this->getFormsString() . ' )
60 ';
61 }
62
63 return $sql;
64 }
65
66 /**
67 * @return string
68 */
69 protected function getFormsString()
70 {
71 return implode(',', $this->formIDs);
72 }
73
74 /**
75 * @return stdClass
76 */
77 public function getResults()
78 {
79 $sql = $this->getSQL();
80
81 return $this->wpdb->get_row($sql);
82 }
83 }
84