Done !
| Server IP : 46.105.57.169 / Your IP : 216.73.216.67 Web Server : Apache System : Linux webm002.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : verseaumee ( 152031) PHP Version : 8.5.7 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/verseaumee/blueversion/wp-content/plugins/give/src/MultiFormGoals/ProgressBar/ |
Upload File : |
<?php
namespace Give\MultiFormGoals\ProgressBar;
use wpdb;
/**
* Get the Total, Count, and Average of the payment totals for published donations of a given set of forms.
*/
class Query
{
/** @var array */
protected $formIDs;
/**
* @var wpdb
*/
protected $wpdb;
/**
* @var array $formIDs
*/
public function __construct($formIDs)
{
global $wpdb;
$this->wpdb = $wpdb;
$this->formIDs = $formIDs;
}
/**
* @since 3.14.0 Consider the donation mode (test or live) instead of querying both modes together
* @return string
*/
public function getSQL()
{
global $wpdb;
$mode = give_is_test_mode() ? 'test' : 'live';
$sql = "
SELECT
sum( revenue.amount ) as total,
count( payment.ID ) as count
FROM {$wpdb->posts} as payment
JOIN {$wpdb->give_revenue} as revenue
ON revenue.donation_id = payment.ID
JOIN {$wpdb->paymentmeta} paymentMode
ON payment.ID = paymentMode.donation_id AND paymentMode.meta_key = '_give_payment_mode'
WHERE
payment.post_type = 'give_payment'
AND
payment.post_status IN ( 'publish', 'give_subscription' )
AND
paymentMode.meta_value = '{$mode}'
";
if ( ! empty($this->formIDs)) {
$sql .= '
AND
revenue.form_id IN ( ' . $this->getFormsString() . ' )
';
}
return $sql;
}
/**
* @return string
*/
protected function getFormsString()
{
return implode(',', $this->formIDs);
}
/**
* @return stdClass
*/
public function getResults()
{
$sql = $this->getSQL();
return $this->wpdb->get_row($sql);
}
}