# give/4.16.9/src/Framework/PaymentGateways/CommandHandlers/SubscriptionCompleteHandler.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.16.9. 32 lines.

- Page: https://pluginprobe.com/plugins/give/4.16.9/code/src/Framework/PaymentGateways/CommandHandlers/SubscriptionCompleteHandler.php
- Raw: https://pluginprobe.com/plugins/give/4.16.9/raw/src/Framework/PaymentGateways/CommandHandlers/SubscriptionCompleteHandler.php
- Modified: 2022-06-17T00:03:36+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.16.9/code/src/Framework/PaymentGateways/CommandHandlers/SubscriptionCompleteHandler.php#L10-L20`.

```php
<?php

namespace Give\Framework\PaymentGateways\CommandHandlers;

use Exception;
use Give\Donations\Models\Donation;
use Give\Donations\ValueObjects\DonationStatus;
use Give\Framework\PaymentGateways\Commands\SubscriptionComplete;
use Give\Subscriptions\Models\Subscription;
use Give\Subscriptions\ValueObjects\SubscriptionStatus;

class SubscriptionCompleteHandler
{
    /**
     * @since 2.21.0 replace logic with models
     * @since 2.18.0
     *
     * @throws Exception
     */
    public function __invoke(SubscriptionComplete $subscriptionComplete, Subscription $subscription, Donation $donation)
    {
        $donation->status = DonationStatus::COMPLETE();
        $donation->gatewayTransactionId = $subscriptionComplete->gatewayTransactionId;
        $donation->save();

        $subscription->status = SubscriptionStatus::ACTIVE();
        $subscription->gatewaySubscriptionId = $subscriptionComplete->gatewaySubscriptionId;
        $subscription->transactionId = $subscriptionComplete->gatewayTransactionId;
        $subscription->save();
    }
}

```
