osenco / subscriptions
A simple, plug and play subscription package
v0.0.1-alpha
2023-08-06 04:19 UTC
Requires
- php: >=8.2
- illuminate/console: ^8.0|^10.0
- illuminate/database: ^8.0|^10.0
- illuminate/support: ^8.0|^10.0
This package is auto-updated.
Last update: 2025-02-06 09:05:41 UTC
README
Laravel subscription package
Installation
composer require osenco/subscriptions
Setup & configuration
php artisan vendor:publish --provider="Osen\Subscriptions\SubscriptionsServiceProvider"
php artisan migrate
// OR use the install command
php artisan subscriptions:install
Usage
Add trait to your user model
use Osen\Subscriptions\Concerns\HasSubscriptions; class User extends Authenticatable { use HasSubscriptions; // <- here }
Create a plan
use Osen\Subscriptions\Models\SubscriptionPlan; $plan = SubsriptionPlan::create([ 'name' => 'Basic', 'description' => 'Basic plan', 'price' => 1000, 'interval' => 'month', 'interval_count' => 1, 'trial_period_days' => 30, 'active' => true, ]);
OR use the Plan Facade
use Osen\Subscriptions\Facades\Plan; ... Plan::called('Basic') ->describedAs('Basic plan') ->pricedAt(1000) ->interval('month') // or interval('months', 5) ->trialDays(30) ->active() ->save();
Subscribe a user to a plan
use Osen\Subscriptions\Facades\Subscription; use Osen\Subscriptions\Facades\Subscribe; $user = User::find(1); $plan = Plan::find(1); $subscription = $user->subscribeTo($plan, 1); //OR use the Subscribe Facade for one or multiple users $subscription = Subscribe::subscriber($user)->to($plan, 1); $subscription = Subscribe::subscribers($userIds)->to($plan, 1);
Add grace period to subscription
$subscription = $user->subscribeTo($plan, 1)->gracePeriodDays(7);