# give/4.16.9/src/Framework/PaymentGateways/SubscriptionModule.php

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

- Page: https://pluginprobe.com/plugins/give/4.16.9/code/src/Framework/PaymentGateways/SubscriptionModule.php
- Raw: https://pluginprobe.com/plugins/give/4.16.9/raw/src/Framework/PaymentGateways/SubscriptionModule.php
- Modified: 2024-10-17T01:45:16+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/SubscriptionModule.php#L10-L20`.

```php
<?php

namespace Give\Framework\PaymentGateways;

use Give\Framework\PaymentGateways\Contracts\Subscription\SubscriptionAmountEditable;
use Give\Framework\PaymentGateways\Contracts\Subscription\SubscriptionDashboardLinkable;
use Give\Framework\PaymentGateways\Contracts\Subscription\SubscriptionPausable;
use Give\Framework\PaymentGateways\Contracts\Subscription\SubscriptionPaymentMethodEditable;
use Give\Framework\PaymentGateways\Contracts\Subscription\SubscriptionResumable;
use Give\Framework\PaymentGateways\Contracts\Subscription\SubscriptionTransactionsSynchronizable;
use Give\Framework\PaymentGateways\Contracts\SubscriptionModuleInterface;
use Give\Framework\PaymentGateways\Traits\HasRouteMethods;

/**
 * @since 2.20.0
 *
 * @template G
 */
abstract class SubscriptionModule implements SubscriptionModuleInterface
{
    use HasRouteMethods;

    /**
     * @var G
     */
    protected $gateway;

    /**
     * @param G $gateway
     */
    public function setGateway(PaymentGateway $gateway)
    {
        $this->gateway = $gateway;
    }

    /**
     * @since 3.17.0
     */
    public function canPauseSubscription(): bool
    {
        return $this instanceof SubscriptionPausable;
    }

    /**
     * @inheritDoc
     */
    public function canSyncSubscriptionWithPaymentGateway(): bool
    {
        return $this instanceof SubscriptionTransactionsSynchronizable;
    }

    /**
     * @inheritDoc
     */
    public function canUpdateSubscriptionAmount(): bool
    {
        return $this instanceof SubscriptionAmountEditable;
    }

    /**
     * @inheritDoc
     */
    public function canUpdateSubscriptionPaymentMethod(): bool
    {
        return $this instanceof SubscriptionPaymentMethodEditable;
    }

    /**
     * @since 2.21.2
     */
    public function hasGatewayDashboardSubscriptionUrl(): bool
    {
        return $this instanceof SubscriptionDashboardLinkable;
    }
}

```
