PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.7
GiveWP – Donation Plugin and Fundraising Platform v2.19.7
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 / Subscriptions / Factories / SubscriptionFactory.php
give / src / Subscriptions / Factories Last commit date
SubscriptionFactory.php 4 years ago
SubscriptionFactory.php
80 lines
1 <?php
2
3 namespace Give\Subscriptions\Factories;
4
5 use Exception;
6 use Give\Donations\Models\Donation;
7 use Give\Donations\ValueObjects\DonationStatus;
8 use Give\Framework\Models\Factories\ModelFactory;
9 use Give\Subscriptions\Models\Subscription;
10 use Give\Subscriptions\ValueObjects\SubscriptionPeriod;
11 use Give\Subscriptions\ValueObjects\SubscriptionStatus;
12
13 class SubscriptionFactory extends ModelFactory
14 {
15
16 /**
17 * @since 2.19.6
18 *
19 * @return array
20 */
21 public function definition()
22 {
23 return [
24 'amount' => $this->faker->numberBetween(25, 50000),
25 'period' => SubscriptionPeriod::MONTH(),
26 'frequency' => $this->faker->numberBetween(1, 4),
27 'donorId' => 1,
28 'installments' => $this->faker->numberBetween(0, 12),
29 'feeAmount' => 0,
30 'status' => SubscriptionStatus::PENDING(),
31 'donationFormId' => 1
32 ];
33 }
34
35 /**
36 * @since 2.19.6
37 *
38 * @throws Exception
39 */
40 public function createRenewal($subscriptionId, array $attributes = [])
41 {
42 return Donation::factory()->create(
43 array_merge([
44 'status' => DonationStatus::RENEWAL(),
45 'subscriptionId' => $subscriptionId,
46 'parentId' => give()->subscriptions->getInitialDonationId($subscriptionId),
47 ], $attributes)
48 );
49 }
50
51 /**
52 * @since 2.19.6
53 *
54 * @param $model
55 * @return void
56 * @throws Exception
57 */
58 public function afterCreating($model)
59 {
60 /** @var Subscription $subscription */
61 $subscription = $model;
62
63 // check if initial donation ID (parent_payment_id has been recorded
64 $initialDonationId = give()->subscriptions->getInitialDonationId($subscription->id);
65
66 // for backwards compatability update the subscription parent_payment_id column
67 if (!$initialDonationId) {
68 $donation = Donation::factory()->create(['donorId' => $subscription->donorId]);
69 give()->donations->updateLegacyDonationMetaAsInitialSubscriptionDonation($donation->id);
70 give()->subscriptions->updateLegacyColumns(
71 $subscription->id,
72 [
73 'parent_payment_id' => $donation->id,
74 'expiration' => $subscription->expiration()
75 ]
76 );
77 }
78 }
79 }
80