lee-to/laravel-subscription

Laravel 订阅模块

1.0.3 2022-09-22 15:01 UTC

This package is auto-updated.

Last update: 2024-09-22 18:57:55 UTC


README

安装

  • composer require lee-to/laravel-subscription

  • php artisan vendor:publish --provider="Leeto\Subscription\Providers\SubscriptionServiceProvider"

  • php artisan subscription:make plan

  • 设置 config\subscription 默认计划 ID

  • 将 Leeto\Subscription\Traits\Subscription 特性添加到用户模型

  • 将 Leeto\Subscription\Traits\SubscriptionItem 特性添加到订阅项模型

使用

  • $user->subscriptions() 获取所有用户订阅

  • $user->subscriptionItems() 获取所有用户订阅项

  • $user->bankCards() 获取所有用户银行卡

  • $user->addBankCard($recurring_payment_id, $first_4, $last_4, $month, $year, $type = null, $default = true)

  • $user->deleteBankCard($id) - 删除

  • $user->defaultBankCard($id) 设置默认

  • $user->makeSubscription($plan_id, $unlimited = true, $ends_at = null, $bank_card_id = null) 创建或更新订阅

  • $user->makeSubscriptionItem(Model $model, $unlimited = true, $ends_at = null, $bank_card_id = null, $customPrice = null) 创建或更新订阅项

  • $user->subscriptionEnd($plan_id = null, $format = "Y-m-d") 结束日期

  • $user->subscriptionHas($plan_id = null) 检查是否存在

  • $user->subscriptionHasItem(Model $model) 检查是否存在

  • User::query()->subscribed()->get() 订阅范围

  • User::query()->unsubscribed()->get() 未订阅范围

  • User::query()->payToday()->get() 今天付款范围

外观

  • Subscription::getPlanPrice($plan_id) - 获取计划价格

  • subscription()->getPlans() || Subscription::getPlans() 获取所有计划 \Illuminate\Database\Eloquent\Builder

  • subscription()->getSubscriptions() || Subscription::getSubscriptions() 获取所有订阅 \Illuminate\Database\Eloquent\Builder

  • subscription()->getSubscriptionItems() || Subscription::getSubscriptionItems() 获取所有订阅项 \Illuminate\Database\Eloquent\Builder

  • subscription()->getSubscriptionsPayToday() || Subscription::getSubscriptionsPayToday() 当天付款行

  • subscription()->getSubscriptionItemsPayToday() || Subscription::getSubscriptionItemsPayToday() 当天付款行

中间件

  • \Leeto\Subscription\Http\Middleware\SubscribedMiddleware

事件

  • \Leeto\Subscription\Events\SubscriptionCreated

  • \Leeto\Subscription\Events\SubscriptionUpdated

  • \Leeto\Subscription\Events\SubscriptionItemCreated

  • \Leeto\Subscription\Events\SubscriptionItemUpdated

与 laravel-admin 集成

  • 在 admin 配置中设置 admin 路径
  • 添加到 admin 路由 Route::resource('subscriptions', \Leeto\Subscription\Admin\Controllers\SubscriptionController::class);
  • 添加到 admin 菜单 ["class" =>\Leeto\Subscription\Admin\Controllers\SubscriptionController::class, "title" => "Subscription"],