added cashier subscription, subscription plans
This commit is contained in:
@@ -2,12 +2,70 @@
|
||||
|
||||
namespace App\Livewire\Dashboard;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Livewire\Component;
|
||||
|
||||
class Dashboard extends Component
|
||||
{
|
||||
public $message;
|
||||
public $subscription;
|
||||
public $plans;
|
||||
|
||||
public function paymentStatus(Request $request)
|
||||
{
|
||||
$status = $request->route('status');
|
||||
$currentUrl = $request->fullUrl();
|
||||
if ($status == 'success') {
|
||||
return redirect()->route('dashboard')->with('status', 'success');
|
||||
} elseif ($status == 'cancel') {
|
||||
return redirect()->route('dashboard')->with('status', 'cancel');
|
||||
}
|
||||
}
|
||||
|
||||
public function mount(Request $request)
|
||||
{
|
||||
try {
|
||||
$status = $request->session()->get('status');
|
||||
if (isset($status)) {
|
||||
if ($status == 'success') {
|
||||
$this->message = ['type' => 'success', 'message' => 'Order completed successfully.'];
|
||||
} else {
|
||||
$this->message = ['type' => 'error', 'message' => 'Order cancelled.'];
|
||||
}
|
||||
$request->session()->forget('status');
|
||||
}
|
||||
} catch (\Exception $exception) {
|
||||
|
||||
}
|
||||
|
||||
if (auth()->user()->subscribedToProduct(config('app.plans')[0]['product_id'])) {
|
||||
try {
|
||||
$result = auth()->user()->subscriptions()->where(['stripe_status' => 'active'])->orderByDesc('updated_at')->first();
|
||||
$userPriceID = $result['items'][0]['stripe_price'];
|
||||
$subscriptionEnd = $result['ends_at'];
|
||||
|
||||
$planName = null; // Default value if not found
|
||||
|
||||
foreach (config('app.plans') as $plan) {
|
||||
if ($plan['pricing_id'] === $userPriceID) {
|
||||
$planName = $plan['name'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
$this->subscription['name'] = $planName;
|
||||
$this->subscription['ends_at'] = $subscriptionEnd;
|
||||
|
||||
} catch (\Exception $e) {
|
||||
|
||||
\Log::error($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
return view('livewire.dashboard.dashboard')->layout('components.layouts.dashboard');
|
||||
return view('livewire.dashboard.dashboard')->layout('components.layouts.dashboard')->with('message', $this->message);
|
||||
}
|
||||
}
|
||||
|
||||
25
app/Livewire/Dashboard/Pricing.php
Normal file
25
app/Livewire/Dashboard/Pricing.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Livewire\Dashboard;
|
||||
|
||||
use Livewire\Component;
|
||||
|
||||
class Pricing extends Component
|
||||
{
|
||||
public $plans;
|
||||
|
||||
public function mount(): void
|
||||
{
|
||||
$this->plans = config('app.plans');
|
||||
}
|
||||
|
||||
public function choosePlan($pricing_id): void
|
||||
{
|
||||
$this->redirect(route('checkout', $pricing_id));
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
return view('livewire.dashboard.pricing');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user