osenco/subscriptions

一个简单易用的订阅包

v0.0.1-alpha 2023-08-06 04:19 UTC

This package is auto-updated.

Last update: 2024-09-06 07:55:45 UTC


README

Laravel 订阅包

安装

composer require osenco/subscriptions

设置与配置

php artisan vendor:publish --provider="Osen\Subscriptions\SubscriptionsServiceProvider"
php artisan migrate

// 或者使用安装命令

php artisan subscriptions:install

用法

将特质添加到您的用户模型中

use Osen\Subscriptions\Concerns\HasSubscriptions;

class User extends Authenticatable
{
    use HasSubscriptions; // <- here
}

创建一个计划

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,
]);

或者使用 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();

将用户订阅到一个计划

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);

为订阅添加宽限期

$subscription = $user->subscribeTo($plan, 1)->gracePeriodDays(7);