Server IP : 192.158.238.246 / Your IP : 216.73.216.24 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/jenniferflocom/public_html/wp-content/plugins/give/src/Tracking/TrackingData/ |
Upload File : |
<?php namespace Give\Tracking\TrackingData; use Give\Framework\Database\DB; use Give\Tracking\Contracts\TrackData; use Give\Tracking\Helpers\DonationStatuses; /** * Class DonationData * * Represents donation data. * * @package Give\Tracking\TrackingData * * @since 2.10.0 */ class DonationData implements TrackData { private $donationStatuses; /** * DonationData constructor. */ public function __construct() { $this->donationStatuses = DonationStatuses::getCompletedDonationsStatues(true); } /** * @inheritdoc * @return array|void */ public function get() { return [ 'first_donation_date' => $this->getFirstDonationDate(), 'last_donation_date' => $this->getLastDonationDate(), 'revenue' => $this->getRevenueTillNow(), ]; } /** * Get first donation date. * * @since 2.10.0 * @return string */ private function getFirstDonationDate() { global $wpdb; $date = DB::get_var( " SELECT post_date_gmt FROM {$wpdb->posts} as p INNER JOIN {$wpdb->donationmeta} as dm ON p.id=dm.donation_id WHERE post_status IN ({$this->donationStatuses}) AND dm.meta_key='_give_payment_mode' AND dm.meta_value='live' ORDER BY post_date_gmt ASC LIMIT 1 " ); return $date ? strtotime($date) : ''; } /** * Get last donation date. * * @since 2.10.0 * @return string */ private function getLastDonationDate() { global $wpdb; $date = DB::get_var( " SELECT post_date_gmt FROM {$wpdb->posts} as p INNER JOIN {$wpdb->donationmeta} as dm ON p.id=dm.donation_id WHERE post_status IN ({$this->donationStatuses}) AND dm.meta_key='_give_payment_mode' AND dm.meta_value='live' ORDER BY post_date_gmt DESC LIMIT 1 " ); return $date ? strtotime($date) : ''; } /** * Returns revenue till current date. * * @since 2.10.0 * @return int */ public function getRevenueTillNow() { global $wpdb; $result = (int)DB::get_var( " SELECT SUM(r.amount) FROM {$wpdb->give_revenue} as r INNER JOIN {$wpdb->donationmeta} as dm ON r.donation_id=dm.donation_id WHERE dm.meta_key='_give_payment_mode' AND dm.meta_value='live' " ); return $result ?: 0; } }