【发布时间】:2021-11-18 23:20:05
【问题描述】:
我正在使用Laravel Spark Next,我正在尝试创建一个免费计划。我的应用程序按“每个席位”向用户收费(项目数)
但是,我的应用程序将始终包含一个免费项目。这意味着我需要提供两种计划:一种是免费的,一种是付费的
在我的 SparkServiceProvider 中,我添加了这个:
Spark::billable(User::class)->chargePerSeat('lejemål', function (User $billable) {
$projects = return $billable->projects()->count();
//The first project is always free.
return match ($projects) {
0, 1 => 0,
default => $leases,
};
});
据我了解,“chargePerSeat”方法只是计算向用户收费的价格。所以在这种情况下,如果用户有 0 个或 1 个项目并选择订阅,则要支付的价格为零(应该是)。
但是,我想了解免费计划应该如何运作。在经典 Spark 中,我们可以在配置中定义一个“免费计划”。
当用户创建项目时,我按照documentation添加了subscribed中间件:
Route::get('projects/create', CreateProject::class)
->name('projects.create')
->middleware('subscribed');
这个中间件似乎只是检查是否有活动订阅。如果没有,它会将用户重定向到/billing 页面。但是,如果用户只是想继续使用免费计划,则他/她不需要创建有效订阅。
如何使用 Laravel Spark Next 提供“免费计划”?
【问题讨论】: