PHP code example of miladtech / laravel-subscriptions
1. Go to this page and download the library: Download miladtech/laravel-subscriptions library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
miladtech / laravel-subscriptions example snippets
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use MiladTech\Subscriptions\Traits\HasPlanSubscriptions;
class User extends Authenticatable
{
use HasPlanSubscriptions;
}
$subscription = $user->planSubscription('main');
$subscription->active(); // on trial, in period, or in grace — and not suspended
$subscription->onTrial();
$subscription->ended();
$subscription->onGracePeriod(); // ended but within the plan's grace window
$subscription->graceEndsAt(); // moment access is truly lost
$subscription->canceled();
$subscription->suspended();
$subscription->remainingDays();
$user->hasActivePlanSubscription();
$user->subscribedTo($planId);
$user->subscribedPlans();
$subscription->canUseFeature('sms'); // one use
$subscription->canUseFeature('sms', 5); // five uses at once
$subscription->recordFeatureUsage('sms'); // +1
$subscription->recordFeatureUsage('sms', 3); // +3
$subscription->setFeatureUsage('sms', 10); // absolute
$subscription->reduceFeatureUsage('sms', 2);
$subscription->getFeatureUsage('sms'); // used in the current window
$subscription->getFeatureRemainings('sms'); // PHP_INT_MAX for unlimited
$subscription->getFeatureValue('sms'); // raw value
$subscription->renew(); // one invoice period
$subscription->renew(3); // three periods at once
$subscription->cancel(); // access remains until ends_at
$subscription->cancel(true); // terminate immediately (ends trial too)
$subscription->uncancel(); // revert a scheduled cancellation
$subscription->suspend(); // e.g. failed payment — subscription becomes inactive
$subscription->resume(); // paused time is credited back to ends_at
$subscription->resume(false); // resume without crediting paused time
$subscription->changePlan($newPlan);
use Illuminate\Support\Facades\Schedule;
Schedule::command('subscriptions:check')->everyFifteenMinutes();
PlanSubscription::ofSubscriber($user)->get();
PlanSubscription::findActive()->get();
PlanSubscription::findSuspended()->get();
PlanSubscription::findEndingTrial(3)->get(); // trials ending within 3 days
PlanSubscription::findEndedTrial()->get();
PlanSubscription::findEndingPeriod(3)->get();
PlanSubscription::findEndedPeriod()->get();