403Webshell
Server IP : 138.197.107.151  /  Your IP : 216.73.217.7
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux BloxBy-Builder 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
User : wpbetasites_mrakzqskir ( 1022)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/shark-admin/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/shark-admin/app/Http/Controllers/PricingPlanController.php
<?php
// app/Http/Controllers/PricingPlanController.php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\PricingPlan;

class PricingPlanController extends Controller
{
    public function list()
    {
        $title = "Pricing plans";

        $customOrder = ["monthly","yearly","one-time"];

        //
        $plans = PricingPlan::orderByRaw("FIELD(type, '" . implode("','", $customOrder) . "')")->where("type","!=","monthly")->get();

        //dd($plans);
        
        return view('pricing_plans.list', compact('plans','title'));
    }
    public function create()
    {
        $title = "Create pricing plan";

        return view('pricing_plans.create');
    }
    public function save(Request $request)
    {
        $request->validate([
            'title' => 'required|string|max:255',
            'subtitle' => 'required|string|max:255',
            'price' => 'required|numeric',
            'features' => 'nullable|string|max:255',
            'features_labels' => 'nullable|string|max:255',
            'plan_interval' => 'required'
        ]);

        $features = array_filter(array_map('trim', explode('|', $request->input('features'))));

        $features_labels = array_filter(array_map('trim', explode(',', $request->input('features_labels'))));

        //dd($features);

        \Stripe\Stripe::setApiKey(env('STRIPE_SECRET'));

        // Step 1: Create Product
        $product = \Stripe\Product::create([
            'name' => $request->title,
            'description' => $request->subtitle,
        ]);

        $plan = [
            'unit_amount' => $request->price*100, // in paisa = ₹500.00
            'currency' => 'usd',
            
            'product' => $product->id,
        ];

        if($request->plan_interval=="monthly"){
            $plan['recurring'] = 
                [
                    'interval' => 'month', // or 'year'
                ];
        } else if($request->plan_interval=="yearly"){
            $plan['recurring'] = 
                [
                    'interval' => 'year', // or 'year'
                ];
        }
        $price = \Stripe\Price::create($plan);

        if($price){
            $plan = new PricingPlan;

            $plan->title = $request->title;

            $plan->subtitle = $request->subtitle;

            $plan->below_price_title = $request->below_price_title;


            $plan->stripe_pricing_id = $price->id;

            $plan->price = $request->price;


            $plan->features = $features;

            $plan->features_labels = $features_labels;

            $plan->type = $request->plan_interval;

            $plan->save();
        }

        

        return redirect()->route('pricing_plans.list')->with('success', 'Plan added successfully.');
    }
    public function edit(Request $request, $id)
    {
        $title = "Edit pricing plan";

        $plan = PricingPlan::where('id', $id)->firstOrFail();

        return view('pricing_plans.edit', compact('plan','title'));
    }

    public function update(Request $request, $id)
    {
        $plan = PricingPlan::findOrFail($id);

        $request->validate([
            'title' => 'required|string|max:255',
            'subtitle' => 'required|string|max:255',
            'price' => 'required|numeric',
            'features' => 'nullable|string|max:255',
            'features_labels' => 'nullable|string|max:255',
           // 'is_enabled' => 'nullable|boolean'
        ]);

        $features = array_filter(array_map('trim', explode('|', $request->input('features'))));


        $features_labels = array_filter(array_map('trim', explode(',', $request->input('features_labels'))));
        
        $plan->update([
            'title' => $request->title,
            'subtitle' => $request->subtitle,
            'price' => $request->price,
            'below_price_title' => $request->below_price_title,
            'features' => $features,
            'features_labels' => $features_labels,
            //'is_enabled' => $request->has('is_enabled')
        ]);

        return redirect()->back()->with('success', 'Plan updated successfully.');
    }
    public function toggleEnable($id)
    {
        $plan = PricingPlan::findOrFail($id);
        $plan->is_enabled = !$plan->is_enabled;
        $plan->save();

        $status = $plan->is_enabled ? 'enabled' : 'disabled';
        return redirect()->back()->with('success', "Plan has been $status.");
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit