Files
zemailnator/app/Livewire/Dashboard/Dashboard.php

72 lines
2.2 KiB
PHP

<?php
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')->with('message', $this->message);
}
}