Server IP : 192.158.238.246 / Your IP : 18.117.156.19 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 : /proc/7779/root/proc/7779/cwd/plugins/give/src/TestData/Repositories/ |
Upload File : |
<?php namespace Give\TestData\Repositories; use Give\TestData\Factories\DonationFactory; use Give\TestData\Framework\MetaRepository; use Give\ValueObjects\Money; use Give_Donor; class DonationRepository { /** * @var DonationFactory */ private $donationFactory; /** * @var RevenueRepository */ private $revenueRepository; /** * @param DonationFactory $donationFactory * @param RevenueRepository $revenueRepository */ public function __construct(DonationFactory $donationFactory, RevenueRepository $revenueRepository) { $this->donationFactory = $donationFactory; $this->revenueRepository = $revenueRepository; } /** * @param array $donation * @param array $params */ public function insertDonation($donation, $params) { global $wpdb; $donation = wp_parse_args( apply_filters('give-test-data-donation-definition', $donation, $params), $this->donationFactory->definition() ); // Insert donation $wpdb->insert( "{$wpdb->prefix}posts", [ 'post_type' => 'give_payment', 'post_date' => $donation['completed_date'], 'post_status' => $donation['payment_status'], ] ); $donationID = $wpdb->insert_id; // Insert donation in revenue table $this->revenueRepository->insertRevenue( [ 'donation_id' => $donationID, 'form_id' => $donation['payment_form_id'], 'amount' => Money::of($donation['payment_total'], $donation['payment_currency'])->getMinorAmount(), ] ); $metaRepository = new MetaRepository('give_donationmeta', 'donation_id'); $metaRepository->persist( $donationID, [ '_give_payment_form_id' => $donation['payment_form_id'], '_give_payment_form_title' => $donation['payment_form_title'], '_give_payment_donor_id' => $donation['donor_id'], '_give_payment_total' => $donation['payment_total'], '_give_payment_currency' => $donation['payment_currency'], '_give_payment_gateway' => $donation['payment_gateway'], '_give_payment_mode' => $donation['payment_mode'], '_give_payment_purchase_key' => $donation['payment_purchase_key'], '_give_completed_date' => $donation['completed_date'], '_give_donor_billing_first_name' => $donation['donor_name'], '_give_donor_billing_last_name' => '', '_give_payment_donor_email' => $donation['donor_email'], ] ); // Increase donor donated amount and count $donor = new Give_Donor($donation['donor_id']); $donor->increase_value(floatval($donation['payment_total'])); $donor->increase_purchase_count(); do_action('give-test-data-insert-donation', $donationID, $donation, $params); } }