netcore / module-subscription
There is no license information available for the latest version (v1.0.6) of this package.
v1.0.6
2018-04-07 20:42 UTC
Requires
- doctrine/dbal: ^2.6
This package is not auto-updated.
Last update: 2024-12-16 08:30:22 UTC
README
This module allows you to manage subscription plans and let users to subscribe to plans.
Pre-installation
Only use this module if you are using a fully custom payment method. If you use Laravel Cashier, there's support coming for that!
This package is part of Netcore CMS ecosystem and is only functional in a project that has the following packages installed:
- https://github.com/netcore/netcore
- https://github.com/netcore/module-admin
- https://github.com/netcore/module-translate
Installation
- Require this package using composer
composer require netcore/module-subscription
- Publish configuration/migrations
php artisan module:publish-config Subscription
php artisan module:publish-migration Subscription
php artisan migrate
-
Configure plans and billing periods in
config/netcore/module-subscription.php
file. -
Seed the configuration to database
php artisan module:seed Subscription
- Add
Modules\Subscription\Traits\Subscribable
trait to yourUser
model
Usage
- Subscribe to a plan with price specification
$plan = Modules\Subscription\Models\Plan::where('key', 'premium')->first();
$planPrice = $plan->prices()->inPeriod('monthly')->first();
$user = App\User::first();
$user->subscribe($planPrice, true);
/*
The boolean stands for whether the user has already paid for the subscription or not.
If a boolean is not provided, it'll be automatically set to false.
*/
- Get user plan
$plan = $user->plan;
- Get user subscription
$subscription = $user->subscription;
$expirationDate = $subscription->expires_at;
$userHasPaid = $subscription->is_paid;
- Cancel subscription
$user->cancelSubscription();
- Renew subscription
$user->renewSubscription(true);
// The boolean stands for whether the user has already paid for the subscription or not