PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.13.2
GiveWP – Donation Plugin and Fundraising Platform v2.13.2
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 / TestData / Addons / RecurringDonations / RecurringDonations.php
give / src / TestData / Addons / RecurringDonations Last commit date
PageFactory.php 5 years ago PageSeedCommand.php 5 years ago RecurringDonationFactory.php 5 years ago RecurringDonationRepository.php 5 years ago RecurringDonations.php 5 years ago ServiceProvider.php 5 years ago
RecurringDonations.php
83 lines
1 <?php
2
3 namespace Give\TestData\Addons\RecurringDonations;
4
5 use Throwable;
6 use Give\TestData\Framework\MetaRepository;
7
8 /**
9 * Class RecurringDonations
10 * @package Give\TestData\RecurringDonations
11 */
12 class RecurringDonations {
13 /**
14 * @var RecurringDonationFactory
15 */
16 private $donationFactory;
17 /**
18 * @var RecurringDonationRepository
19 */
20 private $donationRepository;
21
22 public function __construct(
23 RecurringDonationFactory $donationFactory,
24 RecurringDonationRepository $donationRepository
25 ) {
26 $this->donationFactory = $donationFactory;
27 $this->donationRepository = $donationRepository;
28 }
29
30 /**
31 * @return string
32 */
33 public function getRecurringDonationStatus() {
34 return 'give_subscription';
35 }
36
37
38 /**
39 * @param int $donationID
40 * @param array $donation
41 */
42 public function insertRecurringDonation( $donationID, $donation ) {
43 global $wpdb;
44
45 // Check if donation status is recurring donation status
46 if ( $donation['payment_status'] !== $this->getRecurringDonationStatus() ) {
47 return;
48 }
49
50 // Factory config
51 $this->donationFactory->setAmount( $donation['payment_total'] );
52 $this->donationFactory->setCustomerId( $donation['donor_id'] );
53 $this->donationFactory->setParentDonationId( $donationID );
54 $this->donationFactory->setProductId( $donation['payment_form_id'] );
55
56 // Start DB transaction
57 $wpdb->query( 'START TRANSACTION' );
58
59 try {
60 // Insert recurring donation
61 $this->donationRepository->insertDonation(
62 $this->donationFactory->definition()
63 );
64
65 // Update donation meta
66 $metaRepository = new MetaRepository( 'give_donationmeta', 'donation_id' );
67 $metaRepository->persist(
68 $donationID,
69 [
70 '_give_subscription_payment' => 1,
71 '_give_is_donation_recurring' => 1,
72 ]
73 );
74
75 $wpdb->query( 'COMMIT' );
76
77 } catch ( Throwable $e ) {
78 $wpdb->query( 'ROLLBACK' );
79 }
80 }
81
82 }
83