1. Go to this page and download the library: Download emeefe/subscriptions library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Emeefe\Subscriptions\Models\PlanType;
...
$planType = new PlanType();
$planType->type = 'user_plan';
$planType->description = 'The user plan for basic subscriptions on profile'
$planType->save();
use Emeefe\Subscriptions\Models\PlanFeature;
...
$planFeature = new PlanFeature();
$planFeature->display_name = 'Allowed images on galery';
$planFeature->code = 'gallery_images';
$planFeature->description = 'The number of images a user can have in his gallery';
$planFeature->type = PlanFeature::TYPE_LIMIT;
$planFeature->metadata = [
'formats' => ['jpg', 'png'],
'max_size_bytes' => '1024'
];
$planFeature->save();
use Emeefe\Subscriptions\Models\Plan;
...
$plan = new Plan();
$plan->display_name = 'Free';
$plan->code = 'free';
$plan->description = 'Free plan for users';
$plan->type_id = $planType->id;
$plan->is_default = true;
$plan->metadata = [
'order' => 1
];
$plan->is_visible = true;
$plan->save();
$plan->assignFeatureLimitByCode('images_feature', 10);
$plan->getFeatureLimitByCode('images_feature');
...
if(!$plan->hasFeature('images_feature')){
throw new \Exception("You do not have the feature");
}
use Subscriptions;
use Emeefe\Subscriptions\Models\PlanPeriod;
...
$period = Subscriptions::period('Monthly', 'monthly', $plan)
->setPrice(100)
->setTrialDays(10)
->setRecurringPeriod(1, PlanPeriod::UNIT_MONTH)
->setToleranceDays(5)
->create();
use Emeefe\Subscriptions\Traits\CanSubscribe;
...
class User extends Model{
use CanSubscribe;
}
if($user->subscribeTo($period)){
echo "Suscrito";
}else{
echo "No se pueden tener dos suscripciones sobre el mismo tipo de plan";
}
if($user->hasSubscription('user_membership')){
echo "El usuario está suscrito al tipo de plan con tipo = user_membership";
}else{
echo "El usuario no está suscrito al tipo de plan con tipo = user_membership";
}
if($user->currentSubscription($planType)){
echo "El usuario tiene una suscripción";
}else{
echo "El usuario no tiene una suscripción";
}
$subscription = $user->currentSubscription($planType);
if($subscription->renew(3)){
echo "La suscripción ha sido renovada 3 periodos";
}else{
echo "La suscripción no puede ser renovada";
}
$subscription = $user->currentSubscription($planType);
if($subscription->cancel()){
echo "La suscripción ha sido cancelada";
}else{
echo "La suscripción ya ha sido cancelada";
}
...
if($user->updateSubscriptionTo($newPeriod)){
echo "La suscripción ha sido actualizada";
}else{
echo "La actualización de suscripción no se pudo realizar";
}