← All changes
|
src/Framework/PaymentGateways/Webhooks/EventHandlers/SubscriptionActive.php
+17
-2
4.15.1
→
4.18.0
View file →
| @@ -2,8 +2,9 @@ | ||
| 2 | 2 | |
| 3 | 3 | namespace Give\Framework\PaymentGateways\Webhooks\EventHandlers; |
| 4 | 4 | |
| 5 | 5 | use Exception; |
| 6 | +use Give\Framework\PaymentGateways\Log\PaymentGatewayLog; | |
| 6 | 7 | use Give\Framework\PaymentGateways\Webhooks\EventHandlers\Actions\UpdateSubscriptionStatus; |
| 7 | 8 | use Give\Subscriptions\ValueObjects\SubscriptionStatus; |
| 8 | 9 | |
| 9 | 10 | /** |
| @@ -11,8 +12,9 @@ | ||
| 11 | 12 | */ |
| 12 | 13 | class SubscriptionActive |
| 13 | 14 | { |
| 14 | 15 | /** |
| 16 | + * @since 4.18.0 Bail when the subscription has no initial donation instead of fataling on it. | |
| 15 | 17 | * @since 3.6.0 |
| 16 | 18 | * |
| 17 | 19 | * @throws Exception |
| 18 | 20 | */ |
| @@ -27,10 +29,23 @@ | ||
| 27 | 29 | if ( ! $subscription || $subscription->status->isActive()) { |
| 28 | 30 | return; |
| 29 | 31 | } |
| 30 | 32 | |
| 31 | - if ($initialDonationShouldBeCompleted && ! $subscription->initialDonation()->status->isComplete()) { | |
| 32 | - return; | |
| 33 | + if ($initialDonationShouldBeCompleted) { | |
| 34 | + $initialDonation = $subscription->initialDonation(); | |
| 35 | + | |
| 36 | + if ( ! $initialDonation || ! $initialDonation->status->isComplete()) { | |
| 37 | + PaymentGatewayLog::error( | |
| 38 | + sprintf('The subscription was not activated for the gateway subscription ID %s because its initial donation is missing or has not completed yet.', | |
| 39 | + $gatewaySubscriptionId), | |
| 40 | + [ | |
| 41 | + 'Gateway Subscription ID' => $gatewaySubscriptionId, | |
| 42 | + 'Message' => $message, | |
| 43 | + ] | |
| 44 | + ); | |
| 45 | + | |
| 46 | + return; | |
| 47 | + } | |
| 33 | 48 | } |
| 34 | 49 | |
| 35 | 50 | (new UpdateSubscriptionStatus())($subscription, SubscriptionStatus::ACTIVE(), $message); |
| 36 | 51 | } |