| 1 |
<?php |
| 2 |
|
| 3 |
namespace FluentCart\App\Modules\Subscriptions\Services; |
| 4 |
|
| 5 |
use FluentCart\App\App; |
| 6 |
use FluentCart\App\Helpers\Status; |
| 7 |
use FluentCart\App\Models\Subscription; |
| 8 |
|
| 9 |
class EarlyPaymentFeature |
| 10 |
{ |
| 11 |
public static function isEnabled(): bool |
| 12 |
{ |
| 13 |
$isEnabledBySettings = App::storeSettings()->get('enable_early_payment_for_installment', 'yes') === 'yes'; |
| 14 |
$isEnabled = apply_filters('fluent_cart/subscription/early_payment_enabled', $isEnabledBySettings); |
| 15 |
|
| 16 |
return App::isProActive() && (bool) $isEnabled; |
| 17 |
} |
| 18 |
|
| 19 |
public static function canPay(Subscription $subscription): bool |
| 20 |
{ |
| 21 |
$canPay = self::isEnabled() |
| 22 |
&& $subscription->bill_times > 0 |
| 23 |
&& $subscription->bill_count < $subscription->bill_times |
| 24 |
&& in_array($subscription->status, [Status::SUBSCRIPTION_ACTIVE, Status::SUBSCRIPTION_TRIALING], true); |
| 25 |
|
| 26 |
return (bool) apply_filters('fluent_cart/subscription/can_early_pay', $canPay, [ |
| 27 |
'subscription' => $subscription |
| 28 |
]); |
| 29 |
} |
| 30 |
} |
| 31 |
|