!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/uploads/script/app/Http/Controllers/   drwxr-xr-x
Free 13.21 GB of 57.97 GB (22.79%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     CronController.php (7.04 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers;

use 
Illuminate\Http\Request;
use 
App\Models\User;
use 
App\Models\Userplan;
use 
App\Models\Userplanmeta;
use 
App\Models\Price;
use 
App\Category;
use 
App\Domain;
use 
App\Option;
use 
App\Plan;
use 
Carbon\Carbon;
use 
App\Mail\Sendmailtowillexpire;
use 
App\Mail\Planexpired;
use 
App\Mail\Planrenew;
use 
Illuminate\Support\Facades\Mail;
use 
Artisan;
class 
CronController extends Controller
{
    

    public function 
makeExpireAbleCustomer()
    {
        
          
$tenants=Domain::where('will_expire','<' ,Carbon::today())->where('status',1)->with('orderwithplan','user')->get();
         
Userplan::where('will_expire','<' ,Carbon::today())->where('status',1)->update(array('status' => 3)); //expired
         
Domain::where('will_expire','<' ,Carbon::today())->where('status',1)->update(array('status' => 3));

         
$option Option::where('key','cron_info')->first();
         
$cron_option json_decode($option->value);

         
$trial_tenants=[];
         
$expireable_tenants=[];
         
$users=[];
        foreach(
$tenants as $row){
            
$plan=$row->orderwithplan->plan;
            
array_push($users$row->user_id);
            if (!empty(
$plan)) {
                if(
$row->is_trial == 1){
                   
$order_info['email']=$row->user->email;
                   
$order_info['name']=$row->user->name;
                   
$order_info['plan_name']=$plan->name;
                   
$order_info['tenant_id']=$row->domain;
                   
$order_info['will_expire']=$row->will_expire;
                   
array_push($trial_tenants$order_info);
                  
               }
               else{

                   
$order_info['email']=$row->user->email;
                   
$order_info['name']=$row->user->name;
                   
$order_info['plan_name']=$plan->name;
                   
$order_info['tenant_id']=$row->domain;
                   
$order_info['will_expire']=$row->will_expire;
                   
$order_info['amount']=$plan->price;
                   
$order_info['plan_name']=$plan->name;
                   
array_push($expireable_tenants$order_info);
               }
            }
         }

         
User::whereIn('id',$users)->update(array('status' => 2));


         
$this->expiredTenant($trial_tenants,$cron_option->trial_expired_message);
         
$this->expiredTenant($expireable_tenants,$cron_option->expire_message);
         
 
         return 
"success";
        

        
        

        
    }

    
//send notification for the expired tenant owner
     
public function expiredTenant($data,$massege)
     {
         foreach(
$data ?? []  as $row){
                
                
$references['Store']=$row['tenant_id']; 
                
$references['Plan name']=$row['plan_name'];
                
$references['Date of expire']=$row['will_expire'];
                 
                
$maildata=[
                 
                    
'subject'=>'['.strtoupper(env('APP_NAME')).'] - Subscription Expired For '.$row['tenant_id'],
                    
'message'=>$massege,
                    
'references'=>json_encode($references),
                    
'name'=>$row['name'],
                    
'email'=>$row['email'],
                ];

             

                 
Mail::to($row['email'])->send(new Planrenew($maildata)); 
             
        }
     }
   

   


    public function 
reset_product_price(){
        
$start=Price::where('starting_date','<=',date('Y-m-d'))->where('special_price','!=',null)->get();
        foreach(
$start as $row){
         
            if(
$row->price_type == 1){
                
$price=$row->regular_price-$row->special_price;
            }
            else{
                
$percent$row->regular_price $row->special_price 100;
                
$price$row->regular_price-$percent;
                
$price=str_replace(',','',number_format($price,2));
            }

            
$new_price=Price::find($row->id);
            
$new_price->price=$price;
            
$new_price->save();

        }
        
$ending_date=Price::where('ending_date','<=',now())->get();
        foreach(
$ending_date as $row){
            
$price=Price::find($row->id);
            
$price->price=$price->regular_price;
            
$price->special_price=null;
            
$price->price_type=1;
            
$price->starting_date=null;
            
$price->ending_date=null;
            
$price->save();
        } 
        return 
response()->json('success');   
    }


    public function 
index()
    {
        
        if (!
Auth()->user()->can('cron_job.control')) {
            return 
abort(401);
        }
        
$option=Option::where('key','cron_info')->first();
        
$info=json_decode($option->value);
       return 
view('admin.cron.index',compact('info'));
    }

    public function 
make_expirable_user()
    {
        
Artisan::call('make:make_expirable_user');
        return 
"done";
    }

    public function 
send_mail_to_will_expire_plan_soon()
    {
         
$cron_info=Option::where('key','cron_info')->first();
         
$cron_info=json_decode($cron_info->value);
         
$days=$cron_info->send_mail_to_will_expire_within_days;

         
$dateCarbon::now()->addDays($days)->format('Y-m-d');
         
         
$tenants=\App\Domain::where([['status',1],['will_expire','<',$date],['will_expire','!=',Carbon::now()->format('Y-m-d')]])->with('orderwithplan','user')->get();
         
        
         
$expireable_tenants=[];

         foreach(
$tenants as $row){
            
$plan=$row->orderwithplan->plan;
            
            if (!empty(
$plan)) {
                if(
$row->is_trial == 0){
                   
$order_info['email']=$row->user->email;
                   
$order_info['name']=$row->user->name;
                   
$order_info['plan_name']=$plan->name;
                   
$order_info['will_expire']=$row->will_expire;
                   
$order_info['amount']=$plan->price;
                   
$order_info['plan_name']=$plan->name;
                   
$order_info['tenant_id']=$row->domain;
                   
array_push($expireable_tenants$order_info);
                  
               }
               
            }
         }
        

         
$this->expireSoon($expireable_tenants,$cron_info->alert_message);
        
         return 
"success";
    }

      
//send notification mail before expire the order
    
public function expireSoon($data,$message)
    {
        foreach(
$data ?? []  as $row){
                
                
$references['Store']=$row['tenant_id']; 
                
$references['Plan name']=$row['plan_name'];
                
$references['Last date of due']=$row['will_expire'];
                
$references['Amount']=number_format($row['amount'],2); 
                 
                
$maildata=[
                   
                    
'subject'=>'['.strtoupper(env('APP_NAME')).'] - Upcoming Subscription Renewal Notice',
                    
'message'=>$message,
                    
'references'=>json_encode($references),
                    
'name'=>$row['name'],
                    
'email'=>$row['email'],
                ];

             

                
Mail::to($row['email'])->send(new Planrenew($maildata)); 
             
        }
    }


   
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0053 ]--